Using Ansible to Update ESXI VIB’s and manage vCenter at scale.

Recently I’ve been using Ansible to push out updates to vSphere environments that have a lot of hosts, but no working installation of VMWare Update Manager available. During the creation of the below playbook, I found a few interesting caveats to using Ansible to manage your ESXI hosts and vCenter. To resolve this, I’ve created a playbook that does the following:

  • Puts targeted hosts in mainteance mode and evacuates VM’s
  • Copies VIB to the host
  • Checks for existing installation of VIB, Uninstall if found
  • Installs VIB
  • Takes host out of maintenance mode.

Continue reading “Using Ansible to Update ESXI VIB’s and manage vCenter at scale.”

Mass create VMWare Guests with PowerCLI

Need to create a bunch of VM’s at once in your VMWare vSphere environment? You can use the below script to do so. Just fill in the blanks in the $vmlist variable (A hash table in this case) to define the IP of the machine in question, as well as a corresponding name value. You will also want to modify the other values to fit your environment. Before running this you will also need to create a template VM to base your clone on, as well as creating a customization template.

Continue reading “Mass create VMWare Guests with PowerCLI”

Creating a portable VMWare Autodeploy instance on vCenter 6.5 appliance with PowerCLI

Autodeploy is a great tool that is integrated with VMWare vCenter and is available for your use if you have the proper licensing levels. There are a few ways to utilize Autodeploy, and this guide will focus on using the “stateful” (Install to disk) deployment method.

I’ve put together the steps needed to deploy this service in a UEFI based PXE-boot environment. The initial boot configuration steps are specifically written to work with Dell Servers and the IDRAC tool CLI. The boot order commands below will place your SD’s cards at the beginning of the boot sequence.

I should note that this method requires no modification of the customer environment (Including DHCP options), and is completely portable (no installs).

Update the boot order on your hosts to allow PXE booting to take second place. (SSH to IDRAC IP of each host to enter console commands below)


Enable AutoDeploy Services on vCenter

  • In the web interface navigate to Home > Administration > System Configuration > Nodes > vCenter Server > Related Objects and start “Auto Deploy”


Download and run Tiny PXE server

  • Copy TFTP Files from vCenter to TFTP Server file root
  • Set boot file name below depending on type of device (UEFI vs Bios mode)


This PXE server is fairly unique in the sense that it offers a “DCHP Proxy” option.  This allows you to temporarily deploy this server and intercept DHCP requests, adding on only the options you need (Option 66 and 67). There’s great detail on this functionality here

Upload ESXI image to software depot in vCenter (use vendor image zip file)


Create minimal host profile.

This host profile can come from an existing host, or a new host you deploy with a blank profile.

  • Set “stateful install to usb” option in your host profile that was previously created. This is This can be found under “Advanced Configuration Settings > System Image Cache Configuration” in the vCenter Web Interface.

  • Set Root Password (otherwise no password is set). This is found under “Security Configuration > Administrator Password” in the vCenter Web Interface.

Set deploy rules in Autodeploy to match hosts and apply host profile previously created

Enable new AutoDeploy Rule



If client environment contains WDS (Windows Deployment Services) – Set PXE Delay to allow for DHCP options override from our temporary PXE server

Hosts will show up in vCenter when the deployment process is complete.

A complete script combining the commands above will be posted here when completed.


Windows VMWare vCenter 6.0 to 6.5 VCSA Migration Issues

I encountered a few issues earlier today when trying to use the VMWare migration tool to move from a Windows vCenter 6.0 to a VCSA 6.5 appliance.

The migration first failed with a error that was helpfully detailed by another person here

If you were monitoring the source vCenter server, during the export process, one would notice that an error pops up while compressing the source data. The error presented is generated from Windows creating an archive (zip file), the error reads: “The compressed (zipped) folder is invalid or corrupted.”. The entire migration process halts until you dismiss this message, with the entire migration ultimately failing (at first it appears to continue, but ultimately fails).

The fix for this error is centered around removing VMWare update manager before attempting the migration again. Unfortunately, there are two common errors I encountered trying to accomplish that uninstall process —

These errors are fairly cryptic, but you can resolve it by carefully reading the vminst.log file generated by the uninstaller (Located in %temp%). We can see the following lines –

The uninstall process is looking for two things that don’t exist on the local system, a firewall rule and a system DSN (ODBC connector used to connect to the VUM database)

The resolution is as follows –

  • Create temporary firewall rule that matches the uninstall script (run from admin command prompt)
    • add rule name=”vmware-update-temp” dir=in localport=8084 protocol=TCP action=allow
  • Create temporary 32bit system DSN that matches the uninstall script name “VMware vSphere Update Manager” on your old vCenter/VUM server.
  • Disable VUM Database in your SQL server (Right click > set offline)


After completing the above steps, re-run the migration wizard and your 6.0 > 6.5 VCSA migration should complete without errors!