Tag Archives: VCF

In-Rack Imaging for Cloud Foundation

So you have your VMware Cloud Foundation environment humming along and you need to add some additional capacity, how do you add that?  By following the VCF Administrators Guide and the VIA Guide it looks like you need to set this up on a laptop and plug into port 48 on the management switch, however I believe I have an easier option, that doesn’t require you to sit in the datacenter for hours on end.  Let’s look at how to setup In-Rack Imaging.

Pre-requisites:

  1. This applies to VCF 2.2.x and 2.3.x
  2. Download the VCF Bundle ISO as well as the MD5SUM.txt from your entitled MyVMware account
  3. Download the VIA OVA from your entitled MyVMware account
  4. You have completed the Jump VM setup detailed here (coming soon)

Now let’s get started:

  1. Ensure the servers to be imaged have been cabled to the wiremap (document available under downloads for Cloud Foundation)
  2. If Imaging with VCF 2.2: Ensure the servers to be imaged have iDRAC/BMC static IP information set to
    IP Range: 192.168.0.51-192.168.0.99
    Subnet Mask: 255.255.252.0
    Gateway: 192.168.3.254
    **Failure to set these IP addresses will result in a failure during the Add Host wizard later in this process.
  3. Ensure appropriate BIOS settings have been set and PXE boot is enabled on 10g NIC’s
  4. Deploy the VIA OVA in your Management Workload Domain
  5. Ensure vsanDatastore is selected for storage location
  6. Select the vRack-DPortGroup-NonRoutable portgroup
  7. Select defaults on all other screens and click finish
  8. Before booting the VIA Appliance we will need to edit settings of the VM
  9. Map the CD-ROM drive to Datastore ISO
  10. If the system was imaged at the same version it is now, you can point to bundle-iso folder and select the latest version.  If it was imaged at an older version and you want to bring the hosts in at a newer version, upload the ISO and select.
  11. Click OK and then Power On VIA
  12. If you are on version 2.2 or 2.2.1 and have All Flash R730 or R730xd follow this post before proceeding
  13. Now connect to your jump host that has access to the 192.168.0.0/22 and 192.168.100.0/22 subnets in your environment (post coming soon)
  14. Load the VIA interface http://192.168.100.2:8080/via
  15. You should see CD Mounted Successfully, if not click Refresh if VIA was booted before mounting CD-ROM/ISO
  16. Click Browse under ‘Bundle Hash’ Locate your MD5SUM.txt for the respective Imaging version and then click Upload Bundle

  17. Now that the bundle has been uploaded click Activate Bundle
  18. Select the Imaging Tab at the top
  19. Fill in an Appropriate Name in our case EUC Workload Domain
  20. Description is optional
  21. Change Deployment type to ‘Cloud Foundation Individual Deployment’
  22. Ensure Device Type is set to ESXI_SERVER
  23. Under Server ensure the ‘All Flash’ is Selected and the appropriate number of servers to image based upon the quantity you are adding
  24. Ensure the Vendor and Model are correct
  25. The default IP’s should be acceptable as this is considered a temporary range, however if you have two sets of servers you are imaging, make sure they don’t overlap before completing the ‘Add Host’ wizard towards the end of this post.
  26. Confirm all settings are correct before clicking Start Imaging
  27. Click Start Imaging
  28. One thing to note here is that if the servers had ESXi on them before, you will need to manually reboot them to get them to PXE boot.  Otherwise if they are new servers they should be looping through PXE boot
  29. As servers PXE boot, they will show up with a progress bar
  30. Looking at the console of a servers denoted to be in progress we can see that it is Loading ESXi
  31. Clicking on one of the servers denoted to be in progress will show the task list of what has been completed and what is remaining:
  32. Imaging process for all servers will take about 1 hour total
  33. As servers finish Imaging, their progress bar will turn into a green check
  34. Once Imaging has completed it will proceed onto Verify
  35. After which it will go to the Finish task, please wait until this screen shows completed
  36. Now Click the Inventory Tab, and then click download at the end of the Run ID that corresponds to the name given at step 19.  Save this file to location from which has access to the SDDC Manager Interface.  If this is the Jump VM saving on any local drive should be acceptable.
  37. If this is your only imaging operation it would be best practice to Shutdown the VIA appliance as it runs a PXE boot server while in the Imaging process.  Also to note, don’t reboot any other server in the rack during imaging to ensure it isn’t picked up by VIA.

The process of Imaging is now complete, however SDDC Manager does not know about the new inventory.  We will now need to login to your SDDC Manager UI to complete the task

  1. After logging into SDDC Manager click Settings on the left, then Add Host in the ribbon bar.
  2. Select Rack-1 if you are in a single rack configuration, or if you have multi-rack select the appropriate physical location
  3. Click Browse and point to the vcf-imaging-details manifest file that we downloaded above in step 36
  4. Confirm the details and click Add Host
  5. After a few minutes you should see something similar
  6. If the Continue button doesn’t light up blue after a 3 minutes, click Refresh on the browser and something like this should be displayed allowing you to click Continue
  7. Now we see the final steps in Add Host, this will take about 30 minutes to complete depending upon the number of hosts

  8. Once Host bring up completes the following should be displayed, you can click OK at this poing
  9. Clicking on dashboard shows that our environment now has 14 Hosts, when we started with 10 Hosts

VCF Imaging VIA Doesn’t Display My Server!

When going through imaging, or when adding capacity, on Cloud Foundation 2.2 or 2.2.1 you may notice that your server choice is unavailable.

Example: When selecting All Flash, the only Dell option is Dell R630

This is due to the JSON file having all flash set to false.  In order to resolve this and add for example Dell R730 or R730xd as an option we will need to follow a process to make a REST POST to add this as an option.  First, save the below code as: via-manifest-vcf-bundle-2.2.1-7236974.json

{
  "scriptsFolder": "scripts",
  "vibsFolder": "esxi_vibs",
  "isoFolder": "esxi_image",
  "servers": [
    {
      "vendorName": "Dell Inc.",
      "vendorCode": "dell",
      "scriptsFolder": "dell_scripts",
      "vibsFolder": "dell_vibs",
      "isoFolder": "",
      "serverModels": [
        {
          "modelCode": "PowerEdge R620",
          "scriptsFolder": "",
          "vibsFolder": "",
          "isoFolder": "",
          "platform" : "x86",
          "supportsAllFlash": "false"
        },
        {
          "modelCode": "PowerEdge R630",
          "scriptsFolder": "",
          "vibsFolder": "",
          "isoFolder": "",
          "platform" : "x86",
          "supportsAllFlash": "true"
        },
        {
          "modelCode": "PowerEdge R720",
          "scriptsFolder": "",
          "vibsFolder": "",
          "isoFolder": "",
          "platform" : "x86",
          "supportsAllFlash": "false"
        },
        {
          "modelCode": "PowerEdge R720xd",
          "scriptsFolder": "",
          "vibsFolder": "",
          "isoFolder": "",
          "platform" : "x86",
          "supportsAllFlash": "false"
        },
        {
          "modelCode": "PowerEdge R730",
          "scriptsFolder": "",
          "vibsFolder": "",
          "isoFolder": "",
          "platform" : "x86",
          "supportsAllFlash": "true"
        },
        {
          "modelCode": "PowerEdge R730xd",
          "scriptsFolder": "",
          "vibsFolder": "",
          "isoFolder": "",
          "platform" : "x86",
          "supportsAllFlash": "true"
        },
        {
          "modelCode": "PowerEdge R820",
          "scriptsFolder": "",
          "vibsFolder": "",
          "isoFolder": "",
          "platform" : "x86",
          "supportsAllFlash": "false"
        },
        {
          "modelCode": "PowerEdge C6320",
          "scriptsFolder": "",
          "vibsFolder": "",
          "isoFolder": "",
          "platform" : "x86",
          "supportsAllFlash": "true"
        }
      ]
    },
    {
      "vendorName": "Quanta Computers Inc.",
      "vendorCode": "quanta",
      "scriptsFolder": "quanta_scripts",
      "vibsFolder": "quanta_vibs",
      "isoFolder": "",
      "serverModels": [
        {
          "modelCode": "D51B-1U (dual 1G LoM)",
          "scriptsFolder": "quanta_scripts_d51b",
          "vibsFolder": "quanta_vibs_d51b",
          "isoFolder": "",
          "platform" : "x86",
          "supportsAllFlash": "true"
        },
        {
          "modelCode": "D51B-2U (dual 10G LoM)",
          "scriptsFolder": "quanta_scripts_d51b_2u",
          "vibsFolder": "quanta_vibs_d51b_2u",
          "isoFolder": "",
          "platform" : "x86",
          "supportsAllFlash": "true"
        },
        {
          "modelCode": "S210-X12RS V2",
          "scriptsFolder": "quanta_scripts_s210",
          "vibsFolder": "quanta_vibs_s210",
          "isoFolder": "",
          "supportsAllFlash": "true"
        },
        {
          "modelCode": "S210-X12RS",
          "scriptsFolder": "quanta_scripts_s210",
          "vibsFolder": "quanta_vibs_s210",
          "isoFolder": "",
          "platform" : "x86",
          "supportsAllFlash": "true"
        }
      ]
    },
    {
      "vendorName": "LENOVO",
      "vendorCode": "lenovo",
      "scriptsFolder": "lenovo_scripts",
      "vibsFolder": "lenovo_vibs",
      "isoFolder": "",
      "serverModels": [
        {
          "modelCode": "System x3650 M5",
          "scriptsFolder": "",
          "vibsFolder": "",
          "isoFolder": "",
          "platform" : "x86",
          "supportsAllFlash": "true"
        }
      ]
    },
    {
      "vendorName": "Cisco",
      "vendorCode": "cisco",
      "scriptsFolder": "cisco_scripts",
      "vibsFolder": "cisco_vibs",
      "isoFolder": "",
      "serverModels": [
        {
          "modelCode": "UCSC-C240-M4SX",
          "scriptsFolder": "",
          "vibsFolder": "",
          "isoFolder": "",
          "platform" : "x86",
          "supportsAllFlash": "true"
        },
        {
          "modelCode": "UCSC-C220-M4S",
          "scriptsFolder": "",
          "vibsFolder": "",
          "isoFolder": "",
          "platform" : "x86",
          "supportsAllFlash": "true"
        }
      ]
    },
    {
      "vendorName": "HP",
      "vendorCode": "hp",
      "scriptsFolder": "hp_scripts",
      "vibsFolder": "hp_vibs",
      "isoFolder": "",
      "serverModels": [
        {
          "modelCode": "ProLiant DL160 Gen9",
          "scriptsFolder": "",
          "vibsFolder": "",
          "isoFolder": "",
          "platform" : "x86",
          "supportsAllFlash": "false"
        },
        {
          "modelCode": "ProLiant DL360 Gen9",
          "scriptsFolder": "",
          "vibsFolder": "",
          "isoFolder": "",
          "platform" : "x86",
          "supportsAllFlash": "true"
        },
        {
          "modelCode": "ProLiant DL380 Gen9",
          "scriptsFolder": "",
          "vibsFolder": "",
          "isoFolder": "",
          "platform" : "x86",
          "supportsAllFlash": "true"
        },
        {
          "modelCode": "ProLiant DL360p Gen8",
          "scriptsFolder": "",
          "vibsFolder": "",
          "isoFolder": "",
          "platform" : "x86",
          "supportsAllFlash": "false"
        },
        {
          "modelCode": "ProLiant DL380p Gen8",
          "scriptsFolder": "",
          "vibsFolder": "",
          "isoFolder": "",
          "platform" : "x86",
          "supportsAllFlash": "false"
        }
      ]
    },
    {
      "vendorName": "Fujitsu, Inc.",
      "vendorCode": "fujitsu",
      "scriptsFolder": "fujitsu_scripts",
      "vibsFolder": "fujitsu_vibs",
      "isoFolder": "",
      "serverModels": [
        {
          "modelCode": "Primergy RX2540 M1",
          "scriptsFolder": "",
          "vibsFolder": "",
          "isoFolder": "",
          "platform" : "x86",
          "supportsAllFlash": "false"
        },
        {
          "modelCode": "Primergy RX2540 M2",
          "scriptsFolder": "",
          "vibsFolder": "",
          "isoFolder": "",
          "platform" : "x86",
          "supportsAllFlash": "false"
        }
      ]
    }
  ],
  "switches": [
    {
      "vendorName": "Quanta Computers Inc.",
      "vendorCode": "quanta-cumulus",
      "scriptsFolder": "cumulus_quanta_scripts",
      "imageElements": [],
      "switchModelsMap": {
        "TOR_SWITCH": [
          {
            "modelCode": "Quanta_LY8-x86",
            "platform" : "x86",
            "scriptsFolder": "quanta_x86_tor_switch_scripts",
            "imageElements": []
          },
          {
            "modelCode": "Quanta_LY8-ppc",
            "platform" : "ppc",
            "scriptsFolder": "quanta_ppc_tor_switch_scripts",
            "imageElements": []
          }
        ],
        "SPINE_SWITCH": [
          {
            "modelCode": "Quanta_LY6",
            "platform" : "ppc",
            "scriptsFolder": "quanta_spine_switch_scripts",
            "imageElements": []
          }
        ],
        "MGMT_SWITCH": [
          {
            "modelCode": "Quanta-LB9",
            "platform" : "ppc",
            "scriptsFolder": "quanta_mgmt_switch_scripts",
            "imageElements": []
          }
        ]
      }
    },
    {
      "vendorName": "Dell Inc.",
      "vendorCode": "dell-cumulus",
      "scriptsFolder": "cumulus_dell_scripts",
      "imageElements": [],
      "switchModelsMap": {
        "TOR_SWITCH": [
          {
            "modelCode": "Dell_S4000",
            "platform" : "x86",
            "scriptsFolder": "dell_tor_scripts",
            "imageElements": []
          }
        ],
        "SPINE_SWITCH": [
          {
            "modelCode": "Dell_S6000",
            "platform" : "x86",
            "scriptsFolder": "dell_spine_scripts",
            "imageElements": []
          }
        ],
        "MGMT_SWITCH": [
          {
            "modelCode": "Dell_S3000",
            "platform" : "x86",
            "scriptsFolder": "dell_mgmt_scripts",
            "imageElements": []
          }
        ]
      }
    },
    {
      "vendorName": "Cisco Inc.",
      "vendorCode": "cisco",
      "scriptsFolder": "cisco_switch_scripts",
      "imageElements": [],
      "switchModelsMap": {
        "TOR_SWITCH": [
          {
            "modelCode": "C9372",
            "platform" : "x86",
            "scriptsFolder": "",
            "imageElements": []
          },
	  {
            "modelCode": "C93180YC",
            "platform" : "x86",
            "scriptsFolder": "",
            "imageElements": []
          }
        ],
        "SPINE_SWITCH": [
          {
            "modelCode": "C9332PQ",
            "platform" : "x86",
            "scriptsFolder": "",
            "imageElements": []
          }
        ],
        "MGMT_SWITCH": [
          {
            "modelCode": "C3048",
            "platform" : "x86",
            "scriptsFolder": "cisco_mgmt_switch_scripts",
            "imageElements": []
          }
        ]
      }
    },
    {
      "vendorName": "Arista Networks Inc.",
      "vendorCode": "arista",
      "scriptsFolder": "arista_scripts",
      "imageElements": [],
      "switchModelsMap": {
        "TOR_SWITCH": [
          {
            "modelCode": "DCS-7280SE",
            "platform" : "x86",
            "scriptsFolder": "",
            "imageElements": []
          }
        ],
        "SPINE_SWITCH": [
          {
            "modelCode": "DCS-7050Q",
            "platform" : "x86",
            "scriptsFolder": "",
            "imageElements": []
          }
        ]
      }
    },
    {
      "vendorName": "Brocade Communications Systems, Inc",
      "vendorCode": "brocade",
      "scriptsFolder": "brocade_scripts",
      "imageElements": [],
      "switchModelsMap": {
        "MGMT_SWITCH": [
          {
            "modelCode": "VDX6740T-1G",
            "platform" : "x86",
            "scriptsFolder": "brocade_mgmt_scripts",
            "imageElements": []
          }
        ],
        "TOR_SWITCH": [
          {
            "modelCode": "VDX6740",
            "platform" : "x86",
            "scriptsFolder": "brocade_tor_scripts",
            "imageElements": []
          }
        ],
        "SPINE_SWITCH": [
          {
            "modelCode": "VDX6940",
            "platform" : "x86",
            "scriptsFolder": "brocade_spine_scripts",
            "imageElements": []
          }
        ]
      }
    }
  ]
}

I will assume you know how to deploy the VIA appliance, or you can follow my post: coming soon to setup in rack imaging in Cloud Foundation 2.2/2.3 environments.

It is easiest to start with an ’empty’ VIA appliance, given that this is a small VM it would be worthwhile to delete the existing VIA appliance and re-deploy the OVA.  Once VIA has booted for the first time you will point your browser at the VIA interface http://192.168.100.2:8080/via

  1. Ensure that the VCF Bundle ISO has been mounted as the CD-ROM for the VIA VM.
  2. Ensure the MD5SUM.txt file for the specified bundle has been downloaded and is saved.
  3. By saving the above JSON file this will enable the ‘All Flash’ option for Dell R730 and R730xd
    **Important note, by editing this file and adding a server that does not appear on the VCF Hardware Compatibility List this will not allow it to work as the imaging process adds specific VIB’s for these servers.
  4. Now with the ISO mounted, the MD5SUM and JSON files saved on machine with Postman installed (or similar REST Client) we will need to perform the following operation:
    1. URL: http://192.168.100.2:8080/via/bundle/upload
    2. Request Type: POST
    3. Request Body Type: form-data
    4. Parameters:
    5. bundleHashType: <Text> MD5
    6. txtBundleHashFile: <FILE> C:\files\MD5SUM.txt
    7. txtInventoryJson: <FILE> C:\files\via-manifest-vcf-bundle-2.2.1-7236974.json
  5. Click the send button and you should receive a “status”: “Success”, message as seen below.
  6. Switching back to the VIA interface at this point you will see the upload is in progress
  7. Once upload is complete R730/R730xd is now available to image: