James Thew - Fotolia


Methods for installing VMware Tools 10 on your ESXi host

Updates to the VMware Tools platform, including separate management and an independent release cycle, simplify the installation process and offer admins greater efficiency.

In September 2015, VMware released VMware Tools 10. With this update, tools may be managed as a separate product....

Also, rather than be included in ESXi's release cycle, VMware Tools 10 now has its own independent release cycle. This allows customers to download and install the latest version of VMware Tools regardless of which version of ESXi they are running. In effect, customers who intend to upgrade to vSphere 5.5 or 6.0 can update VMware Tools independently from their host upgrade, thus saving them time should they update from vSphere 5.1 to 5.5 and later from vSphere 6 to 6.0.1.

Another reason to update VMware Tools separately from your ESXi host is that the impact of updating the entire host would be a much bigger ordeal.

In this article, we will look at methods to place the updated version of VMware Tools 10 on your ESXi hosts, specifically two simple methods for finding VMs that are not running an up-to-date version of VMware Tools. Fortunately, the method for updating VMware Tools in VMs has not changed, so you can keep using the same procedures there.

One of the simplest techniques for finding VMs eligible for an upgrade is to use Quick Filters in the vSphere Web Client. As you can see in Figure A, it is possible to open the Related Objects for an entire vCenter Server inventory to show which VMs are eligible for upgrade.

Quick Filters in vSphere Web Client
Figure A. A quick overview of outdated VMs from the vSphere Web Client.

Another way to get a list of VMs and the status of VMware Tools is to run a PowerCLI command. This will locate all of your VMs, which version of VMware Tools they are running and which updates are available. In order to use this command, first be sure to connect to a vCenter Server with the Connect-VIServer command then enter the following command:

get-vm | %{ get-view $_.id } | select Name,

      @{ Name="VMware Tools Version"; Expression={$_.config.tools.toolsVersion}},

      @{ Name="VMware Tools Status"; Expression={$_.Guest.ToolsVersionStatus}}

You can extend this command with a filter to display only those VMs that are not current:

get-vm | %{ get-view $_.id } | where {$_.Guest.ToolsVersionStatus -ne "guestToolsCurrent"} | select Name,

      @{ Name="VMware Tools Version"; Expression={$_.config.tools.toolsVersion}},

      @{ Name="VMwre Tools Status"; Expression={$_.Guest.ToolsVersionStatus}}

Be aware that the status of the VMware Tools version is only updated with a power cycle or when performing a vMotion. If you attempt to run this command while a VM is powered off, the status will not report that there are newer versions of VMware Tools available on the ESXi host.

The separation of the VMware Tools release cycle from the ESXi release cycle changes the way we plan to upgrade VMware Tools. Prior to this, users would run a program on ESXi, such as vSphere 6, which contained a version of the VMware Tools in ISO-files, placed in a folder on the ESXi host. VSphere Client or vSphere Web Client would then issue a report via the VM summary, designating which version of tools was installed on the ESXi. After each report, the VM summary page would indicate whether an upgrade was available.

The vCenter Update Manager works in a similar way. It provides a baseline for upgrading VMware Tools, but all this really does is update VMs to whichever version is available on the ESXi host while the VM is running. Update Manager does not have a repository of its own with an updated version of VMware Tools. Most administrators would keep their ESXi hosts up to date with the same version of the OS, only using different OS versions intermittently in order to cycle through the upgrade for all hosts in their environment. At the end of the update cycle, all hosts and VMs would have the same version of VMware Tools.

Now that VMware Tools can be updated separately, it's important to make sure you have the same version on each and every server. Many administrators have expressed interest in an update package of VMware Tools in the form of a VIB file which can be deployed to ESXi hosts along with Update Manager in order to simplify the distribution of tools in an environment.

At present, there are four packages of VMware Tools 10 available on VMware's website, including options for newer and older OSes. The packages come in two forms: either as a .ZIP file or as a tar.gz file. This range of options allows administrators to download a tailored version of VMware Tools to suit their individual needs. After downloading and extracting the right package, you will notice that it has two folders, titled "floppies" and "vmtools" respectively. The same two folders appear on the ESXi server; the OS searches for these when mounting the VMware Tools 10 installation ISO. Figure B shows a directory listing from the root of the ESXi host's file system containing the productLocker folder which we will use to store the tools we have downloaded.

productLocker folder in ESXi-host file system
Figure B. The productLocker folder in the root of the ESXi-host file system.

You can use Secure Shell (SSH) with WinSCP to copy the files to the productLocker folder on your ESXi host. This, of course, means you must first enable SSH on your server. It's generally best to disable any services you don't use regularly, so once you've copied these files, you should disable SSH unless you plan to use it in the immediate future.

productLocker folder copied with WinSCP
Figure C. The two folders from the download can be copied to the productLocker folder with WinSCP.

The procedure shown in Figure C is fine, provided you only need to update a few ESXi hosts; any more than that and this method is more effort than it's worth. If you are good at creating Bourne Again Shell scripts and regularly run Linux at your workstation, it makes more sense to script the command line with SCP on Linux in order to update a large number of ESXi hosts. For less experienced administrators, this may still be too complex a process.

In lieu of scripting the command line, you could use Auto Deploy in your environment. Additionally, you could create a shared location where the ESXi host can access the VMware Tools ISO files so that you need only update the files in one location. This allows all servers to access the same version of tools simultaneously.

No matter which method you choose, you'll need a storage location that all ESXi hosts can access. This could be a virtual machine file system or network file system data store. In Figure D, you'll see that I chose to use an NFS data store on my NAS which I can easily access from both my Windows and Mac environments to update the files.

To point your ESXi host to the new location of the shared productLocker, open the vSphere Web Client and browse through the Advanced Settings in the Manage tab. Locate the parameter with the following name:


Modify the value of this parameter to point to the new storage location. Use the syntax "/vmfs/volumes/NFS-01/productLocker", as shown in Figure D.

Shared productLocker
Figure D. Modify this parameter on each host to point to the shared productLocker folder.

The next time your ESXi host boots, it will start using this new location. If you don't want to wait for the ESXi host to boot, you can also update the parameter in real time with the following command:

jumpstart --plugin=libconfigure-locker.so

When managing a larger number of servers, it's possible to run this parameter through a Host Profile -- that is, so long as you are running the Enterprise Plus Edition of vSphere. You must use this method if you have ESXi hosts that are booting with Auto Deploy. There are two reasons for this and the first is that these hosts don't store anything local, so you must have a means to configure them at each boot; a Host Profile is the best way to do that. Second, it is often the case that an ESXi image is used that does not contain VMware Tools. You may have seen that there are two different versions available, one of which has a no-tools suffix. That image is about 150 MB smaller, so every time an ESXi host boots through Auto Deploy, 150 MB worth of data can be saved, copied over the network and loaded into the server's memory. This speeds up the boot process of you ESXi hosts. Since VMware Tools is not yet available on these servers, you will receive an error message if you attempt to upgrade them. In order to complete an upgrade on these hosts, you must set up a central productLocker storage location.

The most important thing to take away from this procedure is that it is necessary to set up the shared location as described, and then to update the advanced option by adding it to the Host Profile. Figure E shows this setting in the Host Profile configuration page in the vSphere Client.

Host Profile
Figure E. Add the UserVars.ProductLockerLocation parameter to your Host Profile for Auto Deploy hosts.

If you only want to update the VMware Tools on an individual VM, this problem has been resolved with the release of VMware Tools 10. Since September, VMware has released two updates, VMware Tools 10.0.0 and 10.0.5. The release notes for both updates can be found on the official VMware website.

While the VMware Tools 10 update is useful, it can be improved upon. Ideally, VMware should offer central repository for VMware Tools, similar to its Content Library, so that administrators can manage tools through the vSphere Web Client rather than completing all of these additional steps to make sure everything is up to date. It would also be helpful if the vCenter Update Manager downloaded new versions of VMware Tools automatically and placed them within that central repository.

Next Steps

Top PowerCLI scripts for 2015

The difference between vSphere CLI and PowerCLI

Learn the basics of VMware vSphere virtualization

Dig Deeper on VMware how-tos