ESXi Image Builder seems to be one of those unsung heroes that can really make life easier but rarely gets the spotlight. I rarely even hear this feature come up unless I’m involved with an Auto Deploy design. The ability to custom bake in partner software packages into your own ISO image is awesome, especially when you realize how rich the ecosystem is with software depots just waiting for you to tap into them.
This post will go into the basics of the ESXi Image Builder process with a focus on two depots that I use quite often for building custom ESXi ISO images in various environments.
The process of building an ESXi Image requires “software depots” which are a collection of software packages that are usually in zip format and include an index.xml file in the root. You can use as many software depots to build an image as you would like. You’ll always need the ESXi base image software depot to get things started, which is available on VMware’s website in the offline bundle format.
I’ve highlighted the term “VMware Image Builder” in the information field of the correct download
Now that you have this offline bundle saved somewhere, fire up PowerCLI. Your first command will be to add this software depot:
Add-EsxSoftwareDepot VMware-ESXi-5.1.0-799733-depot.zip
If successful, you’ll see a response stating that the Depot URL has added the zip file. Now you have provided all of the necessary base image components to move to the next step.
HP has done a fantastic job at providing all of their software in an online repository named “vibsdepot“. The full, fancy name is “Software Delivery Repository” but everyone I know just calls it vibsdepot. If you are working with HP hardware, such as their popular ProLiant servers, it’s typically best to include their CIM and iLO packages.
If you don’t have any HP equipment, you will need to find the offline bundle for your specific vendor (such as Dell or Cisco).
Rather than downloading an offline bundle, you can point your software depot directly to the URL at vibsdepot (neat!). The only portion of the URL that changes is the date. In this case, the latest software depot is in the sep2012 folder. So, the PowerCLI command would be:
Add-EsxSoftwareDepot http://vibsdepot.hp.com/hpq/sep2012/index.xml
If you’re not sure what the name of the latest folder is, you can navigate to the hpq folder via browser and look.
I’ve highlighted the latest folder on HP’s vibsdepot site
I’ll cover how you use their software packages towards the end. For now, I just want to make sure that you have the software depot added to your PowerCLI session.
Another popular software package that I work with often is EMC’s PowerPath for VMware, also known as PowerPath Virtual Edition or simply PP/VE. It has a lot of name variations, but you get my drift. Rather than adding PP/VE via VUM after the fact, it’s often easier to just bake it into your custom ISO. You’ll need to log into PowerLink and grab the “PowerPath for VMware” software package which also includes the offline bundle.
I’ve highlighted the offline bundle, which is included in the PP/VE download
Add the software depot to your PowerCLI session:
Add-EsxSoftwareDepot EMCPower.VMWARE.5.7.P02.b003.zip
Before we fire away at adding new software packages you’ll need your own custom image profile. The image profile is the personality of the image and I typically just copy the VMware base image. To do this, issue this Power CLI command and make sure to change the name “WN-Custom” and vendor “Wahl Network” to whatever suits you:
New-EsxImageProfile -CloneProfile ESXi-5.1.0-799733-standard -Name WN-Custom -AcceptanceLevel PartnerSupported -Vendor "Wahl Network"
Note: The profile name “ESXi-5.1.0-799733-standard” will change depending on the VMware software depot you downloaded. Use Get-EsxImageProfile to browse available profiles to ensure you have the right name for the clone process above.
You now have your own custom image profile with a snazzy new name and vendor name.
At this point we’re ready to begin adding the software packages that live inside the software depots. One easy way to find the names of your partner software packages is with a simple PowerCLI get loop. For example, if I want to find all the EMC vendor software packages, I use “e*” as the search filter to find any software package with a vendor name beginning with E:
Get-EsxSoftwarePackage | Where {$_.Vendor -like "e*"} | ft -AutoSize
There are three PowerPath software packages available to me and I want to add all three of them. Let’s try adding them to the image profile:
Add-EsxSoftwarePackage -ImageProfile WN-Custom -SoftwarePackage powerpath.cim.esx,powerpath.lib.esx,powerpath.plugin.esx
Interestingly enough, this command would actually give you an error as shown below:
Add-EsxSoftwarePackage : VIB EMC_bootbank_powerpath.cim.esx_5.7.0.02.00-b003 requires powerpath.lib.esx, but the requirement cannot be satisfied within the ImageProfile. However, additional VIB(s) EMC_bootbank_powerpath.lib.esx_5.7.0.02.00-b003 from depot can satisfy this requirement.
This is because some software packages have dependencies. This particular package is stating that I can’t load the CIM package before loading the LIB package. Alter the order of the PowerCLI command to fix this (notice that I put LIB first, then CIM second):
Add-EsxSoftwarePackage -ImageProfile WN-Custom -SoftwarePackage powerpath.lib.esx,powerpath.cim.esx,powerpath.plugin.esx
Repeat this process for any HP software you wish to add.
The last step is to export your shiny new image profile to an ISO file. I also suggest exporting it to a bundle (zip) file in case you need to do further edits later on.
Export-EsxImageProfile -ImageProfile WN-Custom -ExportToIso -FilePath WN-Image.iso Export-EsxImageProfile -ImageProfile WN-Custom -ExportToBundle -FilePath WN-Image.zip
Although I highlight HP and EMC, as they are very common software depots for me to work with, there are many other depots available. The key takeaway is that when you use this new ISO to install ESXi it will already contain all your partner software packages from the moment the hypervisor is installed. This saves you a ton of time and effort of having to use VUM to remediate hosts after they are brought online, and also guarantees that your new hosts contain these software packages.