Kyle Gleed, Sr. Technical Marketing Manager, VMware
I often get asked to help clarify the different components needed to implement Auto Deploy. Auto Deploy is a little unique from other vSphere features in that it is an amalgamation of several different technologies, some that are specific to vSphere (i.e. vCenter, Host Profiles, PowerCLI) and others are not (i.e. gPXE, DHCP, TFTP).
Before I discuss the different components that make up an Auto Deploy infrastructure lets do a quick review of what Auto Deploy is and the benefits it provides. Auto Deploy is a new feature introduced with vSphere 5.0 that provides for rapid provisioning of ESXi hosts. Auto Deploy uses PXE to network boot servers and dynamically load and configure an ESXi image directly into the host's memory. There are several benefits to using Auto Deploy:
Reduced Storage Costs
Because Auto Deploy installs directly into the host's memory there is no need to dedicated a boot disk for each server. This not only saves money when purchasing new hardware and storage, but when booting from SAN it helps to simplify the storage architecture by eliminating the need to map dedicated LUNs to each ESXi host.
Fast Server Provisioning
Deploying a new ESXi host is as simple as enabling PXE boot and powering on a new server. The Auto Deploy server will identify the new server, assign an appropriate ESXi Image Profile and Host Profile, and place the server into the proper vCenter folder or cluster.
Eliminate configuration drift
By sharing a standard ESXi image profile across multiple hosts you can ensure that all your ESXi hosts are running the same ESXi version. In addition, each time a host is rebooted it is like performing a fresh install of ESXi.
Simplified Patch Management
With Auto Deploy applying patches and updates is as simple as doing a one-time update to the ESXi image profile and then rebooting each ESXi hosts.
To get started with Auto Deploy you need to understand the different components and how they interact. These components include: the PXE boot environment, the vCenter 5.0 server with Host Profiles, the Auto Deploy Server, and PowerCLI.
1. PXE Environment
The PXE environment is made up of a DHCP server and a TFTP Server. This can be any DHCP or TFTP server running on either Windows or Linux. As part of the Auto Deploy setup you will need to set two options for the the DHCP scope used with your ESXi hosts. DHCP option 66 (Next Server) should be set to the IP address of the TFTP server. DHCP option 67 (File Name) should be set to the filename of the Auto Deploy gPXE file that the ESXi hosts will download from the TFTP server during the PXE boot process. (this file is manually copied from the vCenter server to the TFTP home directory as part of the Auto Deploy setup).
2. vCenter 5.0 / Host Profiles
ESXi hosts that are provisioned using Auto Deploy get their configuration from a Host Profile created on the vCenter Server. In addition, after the ESXi Image has been loaded into the host's memory, and the host configured using the Host Profile, the host is automatically connect to vCenter and place into a pre-specified folder or cluster. Auto Deploy works equally well with both the windows based vCenter Server as well as the Linux based vCenter Server Appliance (VCSA).
3. Auto Deploy Server
The Auto Deploy Server is made up of two parts: a web server and a rules engine. After a host PXE boots, it downloads the gPXE file from the TFTP server. This gPXE file provides the host with information it needs in order to perform a web-based gPXE boot from the Auto Deploy Server. When the host initiates the gPXE boot it provides the Auto Deploy server with a list of attributes that identify the host. This list includes things like MAC address, IP Address, and Vendor Tag for example. These attributes get passed to the rules engine where pattern matching is used to identify three bits of information: (1) the ESXi Image Profile to use, (2) the Host Profile to use, and (3) where in vCenter to place the host after it is provisioned. The Auto Deploy Server can run on Windows or Linux (as part of the VCSA). You can run the Auto Deploy on the same server as the vCenter Server, or on a separate server. For performance and scalability it is recommended that you keep them on separate servers. Also note that you can choose to run the vCenter Server and Auto Deploy on different platforms. For example you may choose to run the vCenter Server on Windows while running the Auto Deploy server on Linux, or vice-versa.
4. PowerCLI
The Final component needed for Auto Deploy is PowerCLI. PowerCLI is the user interface used to create the ESXi image profiles along with the Auto Deploy rules. You can run PowerCLI from any supported windows system. When you start your PowerCLI session the first step is to establish a connection to the vCenter Server where your Auto Deploy Server is registered. From there you can use the Image Builder CLI cmdlets to create the ESXi Image Profiles that will be used with Auto Deploy. Once the Image Profile has been created you can then use the Auto Deploy cmdlets to create the Auto Deploy rules.
With the above explanation I now invite you to visit the VMware Technical Pubs Youtube channel where you will find several helpful videos discussing many of these components in further detail. I specifically recommend the following:
Auto Deploy Architecture
Auto Deploy Reference Hosts
Using Host Profiles
Highly Available Auto Deploy Infrastructure
Using Image Builder CLI