I have been working with Nested ESXi since it original inception and this technology has greatly benefited me and the entire VMware community, especially when it comes to learning about VMware software and being able to easily prototype something before installing it on actual hardware. However, one thing that I felt that has been missing for awhile now is the ability to run an instance of VMware Tools within a Nested ESXi VM. I have personally been asking for this feature for a couple of years and I know many in the VMware community have expressed interests as well.

I am super excited to announce that VMware has just released a new Fling that provides you with a VIB that you can install VMware Tools inside a Nested ESXi host. I originally showed a demo of this at VMworld Barcelona in my vBrownBag Tech Talk and as I mentioned we would be releasing this as a VMware Fling very soon. So here it is!

UPDATE (08/20/15) - An updated version of VMware Tools for Nested ESXi was just published, make sure to download latest version and you can find more details here.

Requirements:

  • Nested ESXi running 5.0, 5.1 or 5.5 

Installation:

To install the VIB, you simply just need to download it and upload the VIB it to your Nested ESXi datastore and then run the following commands:

esxcli system maintenanceMode set -e true
esxcli software vib install -v /vmfs/volumes/[VMFS-VOLUME-NAME]/esx-tools-for-esxi-9.7.0-0.0.00000.i386.vib -f
esxcli system shutdown reboot -r "Installed VMware Tools"

You can also install the VIB directly from VMware.com if you have direct or proxy internet connectivity from your ESXi host by running the following commands:

esxcli network firewall ruleset set -e true -r httpClient
esxcli software vib install -v http://download3.vmware.com/software/vmw-tools/esxi_tools_for_guests/esx-tools-for-esxi-9.7.0-0.0.00000.i386.vib -f

Once the VIB has been successfully installed, you will need to reboot the host for the changes to take effect. To verify, you can now login to either your vSphere Web/C# Client and you should now see the status for VMware Tools for your Nested ESXi host showing green and the IP Address of the Nested ESXi host should be displayed.

So why would you want to do this? Well, there’s a couple of reasons actually. The first one is pretty basic, which is when I need to reboot or shutdown a Nested ESXi VM, instead of having to jump into the VM console or SSH into ESXi host, I could just right click in the vSphere Web/C# Client and just say shutdown or reboot. I also tend to do all sorts of craziness in my lab (I’m sure this is an understatement for folks that know me) and may often break networking connectivity to my Nested ESXi VM. In vSphere 5.0, we introduced the Guest Operations API (formally known as VIX API) which is now part of the vSphere API. This API is actually quite handy as it allows you to perform guest operations within the VM without needing network connectivity as it relies on the fact that VMware Tools is running (pretty cool stuff!).

Here is a screenshot demonstrating the executing of vmkfstools through the Guest Operations API to one of my Nested ESXi VM:

A couple of things to note:

  • If you install VMware Tools on Nested ESXi VM, you will NOT be able to just right click in the UI and say install/upgrade
  • If you wish to integrate this into you ESXi image, you can take a look at a community tool  called ESXi-Customizer created by Andreas Peetz which I have used in the past and works great. Image Builder does not support raw VIBs, only zip files which may need to contain additional metadata information. If you want to create an offline bundle instead to then use Image Builder to create your custom ISO, Andreas has a new tool you can take a look at here.

Finally, if you have any feedback (likes/dis-likes), thanks, comments please head over to the VMware's Fling page for VMware Tools for Nested ESXi and leave a comment. I am sure the Jim Mattson the engineer who built this Fling would greatly appreciate any feedback you may have.

32 thoughts on “w00t! VMware Tools for Nested ESXi!

  1. After esxi reboot, the vmware tools status is “Running, version:9440 (Not installed).

    I can see the IP addresses into the summary tab.

    I have the same status for all nested esxi.

  2. Hello,

    Thanks for posting the VMware Tool on ESXI fling, very cool stuff!!!

    I am experiencing a similar problem to what some are seeing. The difference that I have noticed is that failure only happens to some of my nested ESXi hosts. An observation (could be a coiencidence), that tools start on my i7-3840QM and E3-1245 processors (Workstation 10 and ESXi 5.1.0 (799733)) just fine and failed to start on E5-2630 (ESXi 5.1.0 (799733)). I also observed that I needed to use the –no-sig-check switch when installing the vib on the nested hosts on the E5-2630 machine.

    Below is a snippet from the /var/log/syslog.log file of vmtoolsd failing to start. Thoughts?

    2013-11-15T16:19:58Z watchdog-vmtoolsd: [35709] Begin ‘/usr/sbin/vmtoolsd ++group=host/vim/vimuser/vmtoolsd’, min-uptime = 60, max-quick-failures = 1, max-total-failures = 5, bg_pid_file = ”
    2013-11-15T16:19:58Z watchdog-vmtoolsd: Executing ‘/usr/sbin/vmtoolsd ++group=host/vim/vimuser/vmtoolsd’
    2013-11-15T16:19:58Z vmsvc[35732]: [ warning] [GLib-GObject] invalid (NULL) pointer instance
    2013-11-15T16:19:58Z vmsvc[35732]: [critical] [GLib-GObject] g_signal_emit_by_name: assertion G_TYPE_CHECK_INSTANCE (instance)' failed
    2013-11-15T16:19:58Z vmsvc[35732]: [ message] [vmtoolsd] Tools Version: 9.7.0.00000 (build-00000)
    2013-11-15T16:19:58Z vmsvc[35732]: [ message] [vmsvc] Cannot load message catalog for domain 'hgfsServer', language 'C', catalog dir '/etc/vmware-tools'.
    2013-11-15T16:19:58Z vmsvc[35732]: [ message] [vmsvc] Cannot load message catalog for domain 'vix', language 'C', catalog dir '/etc/vmware-tools'.
    2013-11-15T16:19:58Z vmsvc[35732]: [ message] [vmsvc] Cannot load message catalog for domain 'powerops', language 'C', catalog dir '/etc/vmware-tools'.
    2013-11-15T16:19:58Z vmsvc[35732]: [ message] [vmtoolsd] Shutting down 'vmsvc' service ...
    2013-11-15T16:19:58Z vmsvc[35732]: [ error] [vmsvc] ASSERT bora-vmsoft/lib/rpcChannel/rpcChannel.c:802
    2013-11-15T16:19:58Z watchdog-vmtoolsd: '/usr/sbin/vmtoolsd ++group=host/vim/vimuser/vmtoolsd' exited after 0 seconds (quick failure 1) 134
    2013-11-15T16:19:58Z watchdog-vmtoolsd: Executing '/usr/sbin/vmtoolsd ++group=host/vim/vimuser/vmtoolsd'
    2013-11-15T16:19:58Z vmsvc[35758]: [ warning] [GLib-GObject] invalid (NULL) pointer instance
    2013-11-15T16:19:58Z vmsvc[35758]: [critical] [GLib-GObject] g_signal_emit_by_name: assertion
    G_TYPE_CHECK_INSTANCE (instance)’ failed
    2013-11-15T16:19:58Z vmsvc[35758]: [ message] [vmtoolsd] Tools Version: 9.7.0.00000 (build-00000)
    2013-11-15T16:19:58Z vmsvc[35758]: [ message] [vmsvc] Cannot load message catalog for domain ‘hgfsServer’, language ‘C’, catalog dir ‘/etc/vmware-tools’.
    2013-11-15T16:19:58Z vmsvc[35758]: [ message] [vmsvc] Cannot load message catalog for domain ‘vix’, language ‘C’, catalog dir ‘/etc/vmware-tools’.
    2013-11-15T16:19:58Z vmsvc[35758]: [ message] [vmsvc] Cannot load message catalog for domain ‘powerops’, language ‘C’, catalog dir ‘/etc/vmware-tools’.
    2013-11-15T16:19:58Z vmsvc[35758]: [ message] [vmtoolsd] Shutting down ‘vmsvc’ service …
    2013-11-15T16:19:58Z vmsvc[35758]: [ error] [vmsvc] ASSERT bora-vmsoft/lib/rpcChannel/rpcChannel.c:802
    2013-11-15T16:19:58Z watchdog-vmtoolsd: ‘/usr/sbin/vmtoolsd ++group=host/vim/vimuser/vmtoolsd’ exited after 0 seconds (quick failure 2) 134
    2013-11-15T16:19:58Z watchdog-vmtoolsd: End ‘/usr/sbin/vmtoolsd ++group=host/vim/vimuser/vmtoolsd’, failure limit reached

  3. It sounds like your non-working instance(s) may be picking up the following option:

    monitor_control.restrict_backdoor = TRUE

    This option defeats VMware Tools (for any guest type).

  4. I’m doing something a bit different – running ESXi 5.5U2 and vCenter 5.5U2e (Version 5.5.0 Build 2414847) both as guests under Fusion 7.1.1 Pro. The ESXi guest is unable to sync it’s clock to the Fusion clock. It appears the the vmtoolsd is running:

    ~ # ps | grep tool
    35167 35167 vmtoolsd /usr/sbin/vmtoolsd

    But Fusion is not syncing the clock, so perhaps they are incompatible versions. I have the vCenter and ESXi hosts on a private VLAN under Fusion, so internet services like ntpd are unavailable.

    • I don’t think its the incompatible version but potentially that VMware Tools for Nested ESXi may not contain the necessary code for for time sync as it is not the full blown VMware Tools, so it only exposes very basic functionality such as viewing IP Information and being able to run Guest Operations. You will probably have to point your ESXi VM to valid NTP source such as 0.pool.ntp.org unless you have a local NTP instance running

      • Hi Walter – I have ntpd configured now, but it when I suspend/resume the esxi host under fusion, it restarts with the date the machine was suspended. Eventually, ntpd corrects it, but it can take a long time.

        However, if you shut it down and reboot it later, then ntpd will correct the time when it starts up. So the trick is to always shut it down (at least until we have vmware tools that can do the time sync correctly).

        BTW, here is a gist that provides an alias to generate the correct esxcli command to set time and date from a mac or linux machine: https://gist.github.com/russt/da5000c909c1e42117ed

        I use it like this: ssh myesxi esxidate

        • Sorry William for calling you Walter – been watching too much Scorpion I guess.
          Also the command is

  5. FYI, I just installed a nested ESXi 6 VM and it already came with a vmware-tool:
    Running, version:9536 (Unsupported older version)

    Unfortunately it’s already a unsupported older version, but newer than the vib from https://labs.vmware.com/flings/vmware-tools-for-nested-esxi ( I tried it, it shows as version 9441 , not sure why, the screenshot in that url shows 9504 ).

    Any idea where we can get the latest vmware-tool for nested ESXi ?

    Thanks

    -Jack

Thanks for the comment!