A new version of ESXi-Customizer - and why it is the final one

I have just released an updated version of my well known ESXi-Customizer tool. Version 2.7.2 comes with the following fixes and changes:
  • 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
At the same time I officially declare the ESXi-Customizer tool deprecated. The new version 2.7.2 will be the final one (unless there is a really stupid bug in it that makes it useless)! So, why will I stop development on a tool that has been downloaded about 100.000 times as of today?!?

The history

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.

ESXi-Customizer ESXi-Customizer-PS
Requirements
OS Windows XP (or newer) Windows XP (or newer)
Add-Ons - VMware PowerCLI
ESXi Support
v4.1 yes no 1)
v5.0 yes yes
Input Support
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
vSphere Autodeploy no yes
PowerCLI ImageBuilder no yes
Miscellaneous
User interface GUI Console

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.

What's next

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.



10 comments:

  1. Today I tried to add the actual aacraid driver into ESXi 5.5 with your new ESXi-Customizer-v2.7.2
    It failed, because there was an error (opening the vib-File).
    Then I did the same with the "old" version 2.7.1. And this works!

    So I think the 2.7.2 has a bug.




    ReplyDelete
    Replies
    1. Hi Christoph
      please send me log files and detailed error messages via e-mail.
      Thanks!
      Andreas

      Delete
  2. -Sorry, I tried it again, and now it works.
    Am I the Bug? ;-)

    ReplyDelete
  3. Is it possible to inject on installed host on a USB-drive?
    I lost man NIC after patching ESXI to latest version or do I need to reinstall?

    ReplyDelete
    Replies
    1. Hi tob,

      the easiest fix for you would be to
      a) roll back your ESXi installation (Press Shift-R at the ESXi boot prompt and select the alternative bootbank)
      b) then update with "esxcli software profile update" like described in this post.

      Andreas

      Delete
  4. So vSphere 6 support not likely? For original Customizer?

    ReplyDelete
    Replies
    1. No. But once I finished the GUI for ESXi-Customizer-PS this will be the ultimate solution and will also support ESXi 6. Got stuck on this, but I hope that I can finish it before the release of vSphere 6.

      Delete
  5. So I got version 2.7.2 and everytime I tried to add an iso or vib-file it says

    "Invalid character. The name of the selected file contains an invalid character (%&!()) that will cause errors with the script. Please rename the file and re-select it!"

    BUT even when I renamed the file to "a.iso" the same error occurs. Is there any solution to it?

    Thanks in advance!

    ReplyDelete
    Replies
    1. Hi Anonymous,

      You probably have a special character somewhere in the directory path rather in the file's name itself.

      But please be aware that you are using a tool that is UNSUPPORTED as of now. I recommend switching to ESXi-Customizer-PS now!

      Andreas

      Delete
  6. Okay it works just fine. Thanks a lot!

    ReplyDelete

***** All comments will be moderated! *****
- Please post only comments or questions that are related to this post's contents!
- Advertising and link spamming will not be tolerated!