The auto deploy function of Sphere allows you to load a new ESXi host from scratch over the network. There are a couple of main pieces that need to be installed to make this work so let’s get those out of the way first.
The VMware Auto Deploy Server
Installing the Auto Deploy server is another installation option of the main vCenter install media. Load up the auto run menu from the disk and you should see ‘VMware Auto Deploy’ Click that link and select Install to start…
Select your language, click OK, and let the installer load…
Next, Next, Accept license agreement, and on the ‘Destination Folder’ window you can leave the defaults as shown.
Leave the Auto Deploy port as the default (6501) on the next page and click Next. On the next page, select the IP from the vCenter server that you want Auto Deploy to use. In my case the server only had one IP so I used that.
Click Next and on the last page and then click Install on the following page. Then just kick back and let the installer wrap up.
A TFTP Server
I just downloaded and used the Solar Winds free TFTP server. I’m not going to walk through how to install and configure the application since it’s pretty straight forward.
A DHCP Server
My lab is connected to a Cisco workgroup switch. I’ll be using the DHCP functionality of that switch to provide the required DHCP server. Here’s what the DHCP scope looked like on my MLS…
ip dhcp pool servers
network 192.168.127.0 255.255.255.0
Note that the ‘next-server’ command is option 66 and that the ‘bootfile’ command is option 67. Big thanks to Sean Crookston fop pointing this out to me on his blog.
Much like it sounds, this is a CLI interface for vSphere and it is required in order to configure some of the Auto Deploy features. I’m not going to walk through the step by step of this install since it’s very well documented at this site.
You’ll need to make sure you have the Windows pre-reqs (Windows powershell and .net framework version) before you can install the VMware powershell.
The PXE boot
Now that we have the 4 necessary parts installed, we can look at the actual configuration required to get this to work.
First thing is to install the PXE boot files on the TFTP server and make sure that a server can successfully PXE boot. To do this, go back in vCenter, go to the home page, and click on Auto Deploy. Click the hyperlink called ‘Download TFTP Boot Zip’ and save the file on your auto deploy server.
Extract the contents of the ZIP file into the root of the TFTP directory. Now, give one of your test servers a boot to see if PXE is working. Make sure your BIOS is configured to perform a PXE boot. If all goes well, you should see something like this series of screens…
So all of the documentation I’ve read so far lists the next step as ‘downloading the offline depot’ and using it’s files for the depot configuration. Here’s the crappy part, you can’t download the offline depot with an eval license (VMware just lost some points in my book on this one…). Luckily Nick Marshall had a fix for me on this piece. Basically, you can configure an online (or network) based depot. So the steps going forward here will use the online depot that Nick pointed out.
So the rest of the configuration is done via the VMware power CLI. So let’s jump right in.
In the VMware power CLI enter the following commands…
Connect to vCenter
Add the ESX Software Depot (Following command should be all one line)
Create a new deployment rule (Following command should be all one line)
New-DeployRule –Name “NormalBoot” –Item “ESXi-5.0.0-469512-standard” –Pattern “model=VMware Virtual Platform”
Add a new deployment rule
Add-DeployRule -DeployRule NormalBoot
At this point give your test server a boot and see what happens. With any luck you’ll see this…
A couple of things to note. I’m having issues getting the physical server I running to PXE boot so this initial test was run using a virtualized ESXi instance. That’s why the deployment rule specifies ‘VMware Virtual Platform’ as the model. Also, it took an incredibly long time for ESXi to load during my testing. I’m not sure why at this point but I’ll have to dig into it a little bit more to determine that.
Also, while this is ‘cool and all’, it doesn’t seem super useful at this point. That’s because we just scratched the surface. In the follow up post we’ll talk about making the deployment’s more purposeful as well as using host profiles.