vSphere 6.5 Auto Deploy (EFI based) on (Lab) Nested ESXi – Part 1
As one of the new feature of vSphere 6.5, Auto Deploy has been enhanced both in UI management and deployment support. In management aspect, you don’t need to perform the tasks in PowerCLI and more, but you can do all now on the vSphere Web Client. We will walk thru’ a bit on this. More important, in vSphere 6.5 Auto Deploy, finally it supports EFI based servers. Honestly, I have been waiting this long as actually I can barely see any BIOS based servers anymore in these 4-5 years… Last but not the least, now we have a supported way to backup and restore the configuration of the Auto Deploy related configurations and images. All of these stuffs together, makes Auto Deploy more useful for production environments.
So, just a very high level introduction about Auto Deploy in case you don’t realise it. It is not a new function is vSphere 6.5, it is there since 5.0. This function targets to provide an alternative for deploying ESXi in a much more efficient and managed way. In old days, you may use a physical disc to perform the GSX, ESX or ESXi installation. Yes, you can of course turn the disc into an ISO or USB thumb to do the same stuff. But the nature doesn’t change, right? You still need to perform the installation and setup of ESXi hosts one by one. To speed this up, you can use scripted install or putting the ESXi images into a PXE server which let you setup ESXi further easier. But this requires a lot of manual scripting and planning. So VMware provides a better approaches for image management and batch deployment in large environments through auto deploy. While auto deploy is a come with function in vCenter, you would have to install or enable it separately. It enables batch ESXi deployment with the following functions:
- Images mangament for preparing customized ESXi images
- Deployment rules for governing the image scope e.g vendor or model of physical hardware
- IPXE boot and install mechanism with application of vSphere Host Profile
While since vSphere 5.0 till 6.0, all of the above have to been handled by VMware PowerCLI, in vSphere 6.5, you can perform these finally in GUI.
My Lab Test Setup
I’ve tested auto deploy from version to version as it really sounds so cool to deploy ESXi in such an efficient approach. However, as mentioned, I’ve been kept rejected by customers that we did not support their EFI based hardwares and the CLI based management is a killer. That’s why I felt so excited when vSphere 6.5 is announced. And in this lab, I will test the Auto deploy 6.5 with EFI based machine and let you know how it can be done through the vSphere Web Client GUI. As some pre-requisites, you would need the followings:
- vCenter Server 6.5 – windows or appliance based both Okay
- ESXi 6.5 – for carrying the vCenter appliance and the nested ESXi 6.5 be tested for Auto Deploy
- DHCP server – IP distribution with Option 66, 67 supported
- TFTP server – For carrying the iPXE boot binary from Auto Deploy Server
For the point 2, yes you actually can use hardwares for the Auto Deploy tests… however I cannot afford this and VM works great and same. So let see what we need to further configured the items above after your have deployed those.
I am using vCenter Server 6.5 appliance in my lab environment. Because it’s easy to be deployed and appliance is going to be the more emphasized development edition comparing with the Windows based one. You will notice that since vCenter 6.0, auto deploy is not separately installed. Binary and services are installed with the vCenter yet kept disabled by default, this is why in order to unlock it we have to reenable the related services manually. You will see this message under the Auto Deploy menu by default.
Luckily, this can be done directly on the vSphere Web client again and followings are the services which you need to enable:
- Auto deploy services
- ImageBuilder services
And you can perform the configuration under the administration tab in the vSphere web client. Actually from the vCenter Extension menu, you can see all the services supported by vCenter Server. I would make the mentioned items above be Automatically started and of course start it along. The beauty of Auto Deploy 6.5 is its simplicity, you have done the necessary configurations in the vCenter already. While we will come back to the auto deploy configurations after configuring the other items.
Auto Deploy Service is the backend service for the whole mechanism
While Image Builder Service provides the UI in the Web Client you can use to manage the Auto Deploy Setup
vCenter Server Appliance have to be deployed on an ESXi which can be 5.5, 6.0 or 6.5 version. You can choose among any. For the ESXi Servers be tested for provisioning by Auto Deploy, I would pick the version 6.5 version. As mentioned, I don’t have physical EFI servers for the test, I have created nested ESXi 6.5 hosts in my environment for the test.
Be noted that, actually nested ESXi is not officially supported. But it’s good enough for lab.
You can see, if we choose ESXi6.5 the default Firmware Option is EFI, but it’s was BIOS for 6.0, 5.5, 5.1… So, as I want to test it on EFI based machines, do ensure you did that.
Well, it should be trivial as from the Web Client now, you can create nested ESXi 6.5 and all the recommended configuration and setting would be in placed for nested ESXi already. However… I hit into some problem which takes me some time… (4 hours) to fix this. Anyway, let me illustrate the fix in the section I test the Auto Deploy.
All ESXi hosts being provisioned by Auto Deploy has to obtain IP through DHCP, no static IP is required (as compare with the scripted ESXi install method). This is why you would have to have DHCP server in your environment. But do ensure your DHCP server do have the capability to inject DHCP options 66 and 67 which have to be leveraged by the vSphere Auto Deploy.
I see some blogs which is not accurate and I would like to state:
- Option 66: The TFTP server IP, NOT the Auto Deploy Server, a.k.a NOT vCenter Server IP
- Option 67: The iPXE boot file, if you are testing UEFI, use “snponly64.efi.vmw-hardwired”
Actually most of the DHCP servers should support the DHCP options, I’m mentioning this because NSX edge did not support the DHCP options until 6.2.3 version. In my environment, I’m using my AD as the DHCP server directly.
The last item you would need to setup is the TFTP server for carrying the PXE boot binary for Auto Deploy. You have to download the PXE binary from the Auto Deploy tab in the vSphere Web Client and use the TFTP server to stream the binary to the servers which tries to boot from Network.
You can use whatever TFTP server you like and I’m using the Solarwind TFTP server which is free but easy to be used. So followings you would refer to the high level steps I performed in my environment.
Download it from Solarwind:
Setup with default configuration
Download the boot file from the Web Client, thru’ the link “Download TFTP boot Zip”
Unzip it and copy the contents under the C:\TFTP-Root\. From here you can see from the Web Client, the BIOS DHCP File NAMe is undionly.kpxe.vmw-hardwired. You can ignore it, in the DHCP option 66 and 67, we actually ask the iPXE boot to boot to collect the file with filename in Option 67 from the TFTP server address in option 66.
Great, you infra has been prepared for Auto Deploy already! So let’s move on to the Second part of this blog post for configuring the Auto Deploy!!!