- The included mkisofs tool (that is used to build the customized ISO file) was replaced by a newer version that does no longer produce ISO files with corrupt headers when used with the UEFI boot option. In earlier versions I made the UEFI boot optional (and disabled by default), because it would create invalid ISO files that can not be opened by ESXi-Customizer itself or other applications. This is now fixed, and UEFI boot is no longer an option, but always enabled.
- Added detection of Windows 8/8.1 and Server 2012 (R2) to the Windows version check. These are all supported for customizing ESXi 5.x, but not for ESXi 4.1.
- Added a check for the parentheses characters "(" and ")" in package file names (These would make the script fail in earlier versions).
- Moved the version update check script to my new site http://vibsdepot.v-front.de. This is also the new place to download ESXi-Customizer, because Google does no longer want us to provide downloads at Google Code.
This tool was initially created to provide an easy-to-use way to inject custom drivers, extensions etc. into existing installation ISOs of ESXi 4.1. When ESXi 5.0 was released I had a lot of fun with reverse-engineering the structure of its installation ISO, and - based on that knowledge - was able to add support for ESXi 5.x to ESXi-Customizer.
What is ESXi-Customizer-PS?
However, since version 5.0 VMware also provides an officially supported way to customize ESXi installations: PowerCLI ImageBuilder (whereas my script and whatever it produces is - of course - completely unsupported by VMware). Okay, that is "just" a Powershell snapin that gives you some cmd-lets to do the job, and if you have no knowledge of PowerCLI/Powershell then it's pretty useless for you. This is why I created a wrapper script for ImageBuilder that greatly abstracts, simplifies and automates its usage; I called it ESXi-Customizer-PS, because - back then - I already had in mind that this will be the successor and the replacement of ESXi-Customizer one day.
A comparison of ESXi-Customizer and ESXi-Customizer-PS
Although ESXi-Customizer-PS makes the use of ImageBuilder much easier it is not as easy as ESXi-Customizer, because it does not provide a GUI, but needs to run in a Powershell/PowerCLI console. This is the main reason why ESXi-Customizer is so popular today and will probably remain popular for quite a while.
Nevertheless the future belongs to ESXi-Customizer-PS, and the following comparison table will show you why.
|OS||Windows XP (or newer)||Windows XP (or newer)|
|ESXi ISO||yes||no 2)|
|ESXi Offline Bundle||no||yes|
|VMware Online Depot||no||yes|
|Package Format Support|
|tgz (multiple)||yes (no)||no 3)|
|VIB (multiple)||yes (no) 4)||yes (yes)|
|ZIP (multiple)||yes (no)||yes (yes)|
|Product Interoperability / Compatibility|
|vSphere Update Manager||no||yes|
Remarks / Foot notes:
1) Is anyone still using ESXi 4.1? If yes then I would be interested in hearing the reasons for that (please comment!). If it is for educational or demo reasons (e.g. for testing the upgrade procedure from ESXi 4.1 to 5.x) then please consider using virtualized (nested) ESXi hosts for that (which can be installed using the original VMware ISOs without further customizations).
2) Please note that for customizing a vanilla VMware ISO you just let ESXi-Customizer-PS access the VMware Online Depot (no input ISO needed at all). If you want to customize a 3rd party / hardware vendor supplied ESXi image then use the corresponding Offline Bundle (zip file) instead of the ISO file. The custom ISOs that are listed on the official vSphere download pages are available in both formats.
3) Since I have made my ESXi5 Community Packaging Tools available most community supported packages have been made available in VIB format by their authors. If you still stumble over a tgz-style package then you can convert it to VIB format on your own using tgz2vib5.cmd from the above mentioned tools.
4) The most requested feature of ESXi-Customizer is the ability to add multiple VIB files in one run. I have not and will not implement that, but there are workarounds available:
- Run ESXi-Customizer multiple times adding one VIB file per run and using the output ISO of one run as input for the next run.
- Add all VIB files to one Offline Bundle (using vib2zip.cmd) and add this Offline Bundle instead of the individual VIB files ...
- ... or just use ESXi-Customizer-PS with this Offline Bundle!
What the table above does not show is that ESXi-Customizer-PS has some new and very interesting use cases that ESXi-Customizer cannot provide, e.g.:
- It is able to create ESXi installation ISOs with the latest ESXi patch level, and that comes in handy whenever you want to install new hosts from scratch: They will be fully up-to-date right after the installation!
- It can also update vendor supplied ESXi installation ISOs to the latest ESXi patch level in a very easy single-step process (using -izip and -update).
For detailed help and a list of use cases see the ESXi-Customizer-PS project page.
I am aware that the legacy ESXi-Customizer tool is still very popular, because it offers a very clear and easy-to-use GUI that even ESXi beginners can work with. In contrast the ESXi-Customizer-PS Powershell script looks intimidating (at least at first glance), because it requires you to enter a command line with lots of possible options. This is why I will work on improving the usability of ESXi-Customizer-PS and also adding some sort of GUI to it. There are various options available for that (like AutoIt that I used for ESXi-Customizer or implementing a GUI directly in Powershell using Sapien's PrimalFormsCE), but I'm not yet sure what method to use.
This post first appeared on the VMware Front Experience Blog and was written by Andreas Peetz. Follow him on Twitter to keep up to date with what he posts.