Back in 2018 William Lam released a special virtual appliance version of the ESXi 6.7 image as an OVA.
Now you might wonder why would you need a special virtual appliance for a nested ESXi server? The most essential components are already there especially with ESXi 6.7:
- VMware tools
- Native MAC Learning (no more need for promiscuous mode)
Well the answer is simple; automation.
If you want to automate deployment of a nested vSphere environment you want to be able to use the advanced configuration options feature when deploying an OVA. William explained all the available features when he created his first OVA for nested ESXi based on version 6.0 Update 1 and created a blog post about it.
This was a great solution for the vCommunity that suddenly had the ability to automate their homelabs. But what if you have a hybrid cloud using vSphere on-prem and using vCloud director at one of VMware’s Cloud Provider Partners (VCPP)? Being able to spin up a nested vSphere environment would be a great use case to test out certain features or new releases.
Now that might sound great, this would have been impossible because up until vCloud Director 9.5 OVA advanced configuration options were not supported. Luckily Sebastian Kirsch over at justvirtualthings.com wrote a great blog post on how to use this feature with vCD 9.5. So now it’s up to me to put the two blog post together to create a nice nested vSphere lab in vCD.
Step 1: Upload the OVA to vCloud Director
So first we head over to William’s website and grab the OVA.
Then we import the OVA as a vApp template. I prefer to do this from the tenant UI as this doesn’t require any browser plugins. But you can probably upload the OVA from the flex client as well. I recorded the steps so you can see what it looks like.
Step 2: Create the VM
Next up we need to create a VM (actually I prefer to use a vApp) based on the nested ESXi vApp template. Now as Sebastian pointed out it is crucial NOT TO POWER ON THE VM after creation!
Step 3: Customize the VM
When the VM is created successfully you need to select an Org vDC network to be used for the first virtual NIC and reserve an IP address from the pool. This is necessary because the management IP for the VM is provisioned by the OVA advanced configuration options and not the vCD guest customization and IPAM.
Then head over to the flex UI and open the VM properties by clicking on the VM name. On the hardware tab you can configure the first network card with a free IP address from the IP pool you selected in the previous step (static – manual assignment). Next you head over to the guest properties and fill in the appropriate settings.
Step 4: Boot!
Now finally you can boot the VM and watch how the 098.vghetto_config script does it’s job perfectly.
After you executed these steps you have a vSphere environment that can be further customized by using PowerCLI for instance.
Now I’ll be the first to admit that all these steps required a lot of manual labor and this is not the automated nirvana you might have hoped for. But bear in mind that this was just a simple PoC. I’m sure that when you make use of vCD’s extensive API documentation you’ll be able to automate the process even further.
UPDATE: William has released version 6.7 Update 2 of the ESXi virtual appliance via the short URL https://vmwa.re/nestedesxi