So you’ve installed the free version of ESXi and now are faced with a glaring bug! But because vCenter is needed to perform updates, and because it’s not free, you’ve got nowhere to turn. But hold up! There’s a way to patch ESXi 5 without vCenter, and this blog post will show you how. This is not for the faint of heart!
Step 0 – Backup Your USB
If not done so already, I strongly urge you, at this very moment, to power off your system, pull out the USB boot key and take a dump – uhh, I mean – perform a backup. I use the following image tool, usbit. Do it, now!
Step 1 – Enable SSH
SSH access or secure command line access is need to perform the update. To accomplish this, knowledge on how to log in to your ESXi box via SSH is kind of mandatory. If you don’t know how, no worries, I’ll show you how. First enable SSH on the ESXi server by logging in via the vSphere client (which you should have already installed, if not, use your browser and navigate to the IP address of the ESXi server and download the vSphere client).
Once logged in, go to: Your Server Name or IP > Configuration > Security Profile > Services > Properties and ensure SSH is running. If not, hit Options and start it.
Step 2 – Determine Version
Although ESXi patches are cumulative (meaning you could just install the latest patch and not worry about patches in between, see here for additional information about this), it’s still good practice to determine what version and patch level your ESXi install is at. Help > About VMware vSphere will give you that information, or if you’re so inclined, these following commands in the SSH terminal will give you the same info.
# esxcli --formatter=csv --format-param=fields="Name,Version" software vib get -n esx-base # esxcli --formatter=csv --format-param=fields="Name,Version" software vib get -n tools-light
Step 3 – Download Patch
Head on over to the VMware Patch Website and log in to your account (presumably you’ve already created an account to download ESXi in the first place). Select ESXi (Embedded and Installable) from the dropdown and select the version that matches your install. Download the latest patch.
Step 4 – Upload the Patch
The vSphere client software has a nifty feature that allows you to upload files to your local datastore drive, without additional tools like WinSCP or Filezilla. Go to Your Server Name or IP > Configuration > Storage. From there, right-click a datastore drive and select “Browse Datastore…“. Create a new folder, something like Patches, and upload the patch file you download earlier.
Step 5 – Connect via SSH and Begin Update
If you don’t already have a terminal program installed and are using a Windows machine, I do suggest downloading PuTTy. Configuring PuTTy with SSH is rather straight forward, select SSH as the Connection type and enter the IP address of your ESXi server, remembering to log in with the root user.
Prior to upgrading, you could put the server in Maintenance Mode by going to Your Server Name or IP > Enter Maintenance Mode. The exact path may differ depending on how you labeled your datastore. Finally, run the update command. In my case, it is:
# esxcli software vib update -d /vmfs/volumes/local_ssd_datastore1/Patches/<your-upgrade-bundle.zip>
The update process may take some time to complete. While waiting, begin to properly shutdown your running VMs. Once done, a reboot is required.