When I started my currently role at the Institute for Cyber Science I was handed a fairly large VMware environment, at least in my career, and tasked with making it better. We started with 16, 2-socket, 512GB Dell M630 blades in a M1000E enclosure. The ultimate goal was to add another 16 blades to the environment, which would allow for greater availability, since we would be spreading the environment over two chassis.
As I came up to speed on the rest of the ACI-ICS environment design, it was apparently that a DevOps approach to deployment would be ideal. ACI-ICS uses various configuration management technologies to deploy, configure and maintain consistency across several thousand nodes. RedHat Satellite is used to manage base images and allow network bootable installations. Ansible and Puppet are used to deploy initial configurations and maintain consistency of the software stack.
VMware vSphere/vCenter offers two features that allow for a lot of the same configuration management principals to be applied to a vSphere environment. These are:
VMware Auto Deploy
VMware Host Profiles
Auto deploy allows a VMware administrator to quickly deploy an image of ESXi to hundreds of servers while storing the configurations centrally. This allows for efficiency and consistency in large deployments.
Auto Deploy utilizes PXE Boot infrastructure to network boot an ESXi image on a server, in conjunction with a Host Profile, to configure the server with appropriate settings. Auto deploy can be configured with a rule, so many different types of hosts can be configured from the same vCenter. These rules control how the server is identified by the vCenter host, which image is used to boot from and what location the server is added to (folder/cluster). A rule can identify target hosts by boot MAC address, SMBIOS information, BIOS UUID, Vendor, Model, or fixed DHCP IP address.
We found it easiest to manually add hosts to our DHCP server, tying the host’s mac address to an IP. The Auto Deploy service will use a reverse lookup based on the IP address used during the boot process, to assign the FQDN to the host. It then joins the host to the vCenter server and adds it to the appropriate location (Datacenter/Cluster) defined by the rule.
Once the host is booted and added into the vCenter, the rule will assign the appropriate Host Profile to the host. We utilize Host Profiles to configure every aspect of our hosts. Any configuration change made to our clusters are done via a copy of the current Host Profile to a new Host Profile, in order to maintain consistency throughout the environment. If you choose to use static IP addressing or specific configuration items, the host will remain in maintenance mode until you complete the host customization. If you have multiple hosts joining the cluster like we do, you can use a CSV file to apply your host customizations.
I’m working on a more in-depth guide showing the entire process start to finish in Part 2! Coming soon!
— April 12, 2019