====== ESXi - Update ESXi Host on CLI ====== This page describes the update procedure of a standalone ESXi host on command line. The commands can be performed over SSH or on the ESXi Shell. ===== Check current Version ===== Get the version and build information about the host just to know what you are working on. ~ # esxcli system version get Product: VMware ESXi Version: 6.0.0 Build: Releasebuild-2494585 Update: 0 Patch: 0 ===== Configure firewall for outgoing HTTP connections ===== To update your host with VIB's from the internet you have to allow httpClient in the firewall. You can check if the connections are alowed with the following command. ~ # esxcli network firewall ruleset list -r httpClient Name Enabled ---------- ------- httpClient true If the command returns //false// you can allow it with the following command. ~ # esxcli network firewall ruleset set -r httpClient -e true ===== Get the latest profile name ===== Now you have to determine the profile you want to update to. You can perform this action on command line. ~ # esxcli software sources profile list -d https://hostupdate.VMware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml | grep ESXi-6 ESXi-6.0.0-20150404001-standard VMware, Inc. PartnerSupported ESXi-6.0.0-20150704001-standard VMware, Inc. PartnerSupported ESXi-6.0.0-20150704001-no-tools VMware, Inc. PartnerSupported ESXi-6.0.0-20150404001-no-tools VMware, Inc. PartnerSupported ESXi-6.0.0-2494585-standard VMware, Inc. PartnerSupported ESXi-6.0.0-20150504001-no-tools VMware, Inc. PartnerSupported ESXi-6.0.0-20150701001s-no-tools VMware, Inc. PartnerSupported ESXi-6.0.0-20150701001s-standard VMware, Inc. PartnerSupported ESXi-6.0.0-20150504001-standard VMware, Inc. PartnerSupported ESXi-6.0.0-2494585-no-tools VMware, Inc. PartnerSupported There is a web page with detailed information about the updates, including VIB names with link, short description, imageprofile name and a lot more. I really like it. It is more comfortable to get the profile name on the web page than on CLI. [[https://esxi-patches.v-front.de/|VMware ESXi Patch Tracker]] ===== Stop running VM's ===== To update the host, you have to enter the maintenance mode which requires no running machines. So let's stop the running machines. Show which VM's are running: ~ # esxcli vm process list my_vm_x World ID: 35930 Process ID: 0 VMX Cartel ID: 35699 UUID: 56 4d 67 bf 2c 52 e1 e0-33 1b 57 42 02 d8 d8 3b Display Name: my_vm_x Config File: /vmfs/volumes/5463f5fa-e9e1b35a-983d-6451066626e8/my_vm_x/my_vm_x.vmx my_vm_y World ID: 36398 Process ID: 0 VMX Cartel ID: 36397 UUID: 56 4d f9 f5 10 4e fa e0-42 e8 80 17 a2 bf b5 93 Display Name: my_vm_y Config File: /vmfs/volumes/5463f5fa-e9e1b35a-983d-6451066626e8/my_vm_y/my_vm_y.vmx Now get the Vmid's of this VM's: ~ # vim-cmd vmsvc/getallvms Vmid Name File Guest OS Version Annotation 1 my_vm_x [my_host_storage1] my_vm_x/my_vm_x.vmx windows8Server64Guest vmx-11 11 my_vm_z [my_host_storage1] my_vm_z/my_vm_z.vmx solaris10_64Guest vmx-11 13 my_vm_y [my_host_storage1] my_vm_y/my_vm_y.vmx debian8_64Guest vmx-11 Repeat the following command with every Vmid of your running VM's: ~ # vim-cmd vmsvc/power.shutdown 1 I use the following one-liner to shutdown all my running vm's. Use it at your own risk. ~ # for vmid in $(vim-cmd vmsvc/getallvms | egrep "$(esxcli vm process list | grep "^[^ ]" | xargs | sed 's/ /|/g')" | awk '{ if($1 ~ /^[0-9]*$/ ) { print $1} }'); do vim-cmd vmsvc/power.shutdown $vmid; done ===== Set host to maintenance mode ===== Now set the host to maintenance mode: ~ # esxcli system maintenanceMode set -e true If the command won't return, there are some problems entering maintenance mode. Probably some VM's are still running. Check and shutdown them on another SSH session or with VMware vSphere Client. If the command returns you can check the current mode with the following command. ~ # esxcli system maintenanceMode get Enabled ===== Start upgrade process ===== Now you are ready to upgrade. Replace the profile name of the following command (ESXi-6.0.0-20150704001-standard) with your prefered profile name to upgrade to. It takes some minutes until the **Update Result** is displayed. ~ # esxcli software profile update -d https://hostupdate.VMware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml -p ESXi-6.0.0-20150704001-standard Update Result Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective. Reboot Required: true VIBs Installed: VMware_bootbank_esx-base_6.0.0-0.11.2809209, VMware_bootbank_lsu-lsi-lsi-mr3-plugin_1.0.0-2vmw.600.0.11.2809209, ... VIBs Removed: Hewlett-Packard_bootbank_scsi-hpsa_5.5.0.106-1OEM.550.0.0.1331820, LSI_bootbank_scsi-mpt2sas_15.10.06.00.1vmw-1OEM.550.0.0.1198610, ... VIBs Skipped: VMWARE_bootbank_mtip32xx-native_3.8.5-1vmw.600.0.0.2494585, VMware_bootbank_ata-pata-amd_0.3.10-3vmw.600.0.0.2494585, ... ==== Upgrade HP software and drivers ==== If you are using an HPE Server, you may want to upgrade all HP VIB's too. The simplest way to do this, is to directly fetch the HP VIB repo data. ~ # esxcli software vib update -d https://vibsdepot.hpe.com/hpe/hpe-index.xml [MetadataDownloadError] Could not download from depot at https://vibsdepot.hpe.com/hpe/hpe-index.xml, skipping (('https://vibsdepot.hpe.com/hpe/hpe-index.xml', '', '[Errno 14] HTTP Error 404: Not Found')) url = https://vibsdepot.hpe.com/hpe/hpe-index.xml Please refer to the log file for more details. But I bet it won't work for you, too. HP and VMware seemes to share their website developers and hosters, because the availability and performance of both sites is really bad. Another way to upgrade is to download the depot and do an offline installation. Download the depot ZIP file on [[https://my.VMware.com/]]. You will find it in the section "Custom ISOs". It's name will be similar to "VMware-ESXi-6.0.0-Update2-3620759-HPE-600.U2.9.4.7.13-Mar2016-depot.zip". Now you have to extract the ZIP file on a datastore which is accessible by your ESX (myDataStore). Update the HP VIB's with the local depot. ~ # esxcli software vib update --depot=file:///vmfs/volumes/myDataStore/VMware-ESXi-6.0.0-Update2-3620759-HPE-600.U2.9.4.7.13-Mar2016-depot/index.xml Installation Result Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective. Reboot Required: true VIBs Installed: BRCM_bootbank_net-tg3_3.137l.v60.1-1OEM.600.0.0.2494585, EMU_bootbank_elxnet_10.5.121.7-1OEM.600.0.0.2159203, ... VIBs Removed: Broadcom_bootbank_misc-cnic-register_1.710.70.v55.1-1OEM.550.0.0.1331820, Broadcom_bootbank_net-bnx2_2.2.5f.v55.16-1OEM.550.0.0.1331820, ... VIBs Skipped: Hewlett-Packard_bootbank_char-hpcru_6.0.6.14-1OEM.600.0.0.2159203, Hewlett-Packard_bootbank_char-hpilo_600.9.0.2.8-1OEM.600.0.0.2159203, ... ===== Exit maintenance mode ===== You may want to exit the maintenance mode so your VM's will start automatically after reboot. This can be especially useful if your management machine is on this ESXi host and you update to another major version because it can occur that SSH is disabled after reboot. Exit maintenance mode: ~ # esxcli system maintenanceMode set -e false Check status: ~ # esxcli system maintenanceMode get Disabled ===== Reboot host ==== Reboot your host. You will loose your SSH connection to it. ~ # reboot ~ # Connection to my_host closed by remote host. Shared connection to my_host closed. ===== Reconnect to host ===== Restart your SSH connection to your host if it is back. manu@automatix:~$ ssh my_host The time and date of this login have been sent to the system logs. VMware offers supported, powerful system administration tools. Please see www.VMware.com/go/sysadmintools for details. The ESXi Shell can be disabled by an administrative user. See the vSphere Security documentation for more information. ~ # ===== Check running version ===== Now check again your current ESXi host version. The output should differ from the last execution. ~ # esxcli system version get Product: VMware ESXi Version: 6.0.0 Build: Releasebuild-2809209 Update: 0 Patch: 11 ===== Credits ===== * William Lam [[http://www.virtuallyghetto.com/2012/09/a-pretty-cool-method-of-upgrading-to.html|A Pretty Cool Method of Upgrading to ESXi 5.1]]. * Andreas Peetz [[https://esxi-patches.v-front.de/|VMware ESXi Patch Tracker]]. ====== Update ESXi 6.0 HPE Custom Image to 6.5 ====== ===== Prerequisites ===== * ESXi 6.0 installed * HPE Custom ESXi 6.5 Image downloaded and extracted to /vmfs/volumes/myDatastore/Sources/ * Host is in Maintenance Mode ===== Update Process ===== ==== Get Image Profile ==== Get the name of the image profile in the downloaded depot (in this example: HPE-ESXi-6.5.0-OS-Release-650.9.6.0.28). ~ # esxcli software sources profile list --depot=file:///vmfs/volumes/myDatastore/Sources/VMware-ESXi-6.5.0-OS-Release-4564106-HPE-650.9.6.0.28-Nov2016-depot/index.xml Name Vendor Acceptance Level -------------------------------------- -------------------------- ---------------- HPE-ESXi-6.5.0-OS-Release-650.9.6.0.28 Hewlett Packard Enterprise PartnerSupported ==== Start Update ==== Execute the update command and replace the string after **-p** with the image profile name. ~ # esxcli software profile update --depot=file:///vmfs/volumes/myDatastore/Sources/VMware-ESXi-6.5.0-OS-Release-4564106-HPE-650.9.6.0.28-Nov2016-depot/index.xml -p HPE-ESXi-6.5.0-OS-Release-650.9.6.0.28 Update Result Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective. Reboot Required: true VIBs Installed: ELX_bootbank_elx-esx-libelxima.so_11.1.216.0-03, EMU_bootbank_elxiscsi_11.1.216.0-1OEM.650.0.0.4240417, .... VIBs Removed: EMU_bootbank_elxnet_11.1.145.0-1OEM.600.0.0.2768847, EMU_bootbank_lpfc_11.1.145.18-1OEM.600.0.0.2768847, EMU_bootbank_scsi-be2iscsi_11.1.145.8-1OEM.600.0.0.2494585, ... VIBs Skipped: Avago_bootbank_scsi-mpt2sas_15.10.06.00-1OEM.550.0.0.1331820, HPE_bootbank_conrep_6.0.0.01-02.00.1.2494585, HPE_bootbank_hpbootcfg_6.0.0.02-02.00.6.2494585, ... ==== Reboot the Host ==== ~ # reboot ====== Update HPE Tools & Drivers - May 2017 ====== ~ # esxcli software vib update -d http://vibsdepot.hpe.com/hpe/may2017/index.xml Installation Result Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective. Reboot Required: true VIBs Installed: HPE_bootbank_hpe-ilo_650.10.0.2-2.4240417 VIBs Removed: HPE_bootbank_hpe-ilo_650.10.0.1-24.4240417 VIBs Skipped: HPE_bootbank_amshelper_650.10.6.0-24.4240417, HPE_bootbank_conrep_6.0.0.01-02.00.1.2494585, HPE_bootbank_hpbootcfg_6.0.0.02-02.00.6.2494585, HPE_bootbank_hpe-cru_650.6.5.8.24-1.4240417, HPE_bootbank_hpe-esxi-fc-enablement_650.2.6.10-4240417, HPE_bootbank_hpe-nmi_600.2.4.16-2494575, HPE_bootbank_hpe-smx-provider_650.03.11.00.17-4240417, HPE_bootbank_hponcfg_6.0.0.4.4-2.4.2494585, HPE_bootbank_hptestevent_6.0.0.01-01.00.5.2494585, HPE_bootbank_ssacli_2.60.18.0-6.0.0.2494585 ====== Update to ESXi 6.5.0 U1 and HPE Drivers - InstallationError: No space left on device ====== The installation of version 6.5.0 update 1 stopped with the error "No space left on device". I found some information to resolve this problem. [[https://www.reddit.com/r/vmware/comments/6q4akd/error_trying_to_update_an_esxi_65_host_to_the/dkugskj/|reddit: Error trying to update an ESXi 6.5 Host to the brandnew release]] [root@mfr-vx00:~] esxcli software profile update -d https://hostupdate.VMware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml -p ESXi-6.5.0-20170702001-standard [InstallationError] [Errno 28] No space left on device vibs = VMware_locker_tools-light_6.5.0-0.23.5969300 Please refer to the log file for more details. Download the VMware-Tools VIB file and copy it to a datastore which can be accessed by the esx host. [root@my-client:~] cd /mnt/NASDatastore [root@my-client:/mnt/NASDatastore] wget "https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/esx/vmw/vib20/tools-light/VMware_locker_tools-light_6.5.0-0.23.5969300.vib" Install the downloaded VIB file. [root@my-host:~] esxcli software vib install -v /vmfs/volumes/NASDatastore/VMware_locker_tools-light_6.5.0-0.23.5969300.vib Installation Result Message: Operation finished successfully. Reboot Required: false VIBs Installed: VMware_locker_tools-light_6.5.0-0.23.5969300 VIBs Removed: VIBs Skipped: Retry the installation. It should work now. [root@my-host:~] esxcli software profile update -d https://hostupdate.VMware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml -p ESXi-6.5.0-20170702001-standard Update Result Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective. Reboot Required: true VIBs Installed: VMW_bootbank_i40en_1.3.1-5vmw.650.1.26.5969303, VMW_bootbank_igbn_0.1.0.0-14vmw.650.1.26.5969303, VMW_bootbank_ixgben_1.4.1-2vmw.650.1.26.5969303, ... VIBs Removed: QLogic_bootbank_qlnativefc_2.1.50.0-1OEM.600.0.0.2768847, VMW_bootbank_i40en_1.1.0-1vmw.650.0.0.4564106, VMW_bootbank_igbn_0.1.0.0-12vmw.650.0.0.4564106, ... VIBs Skipped: VMW_bootbank_ata-libata-92_3.00.9.2-16vmw.650.0.0.4564106, VMW_bootbank_ata-pata-amd_0.3.10-3vmw.650.0.0.4564106, ... Update the HPE tools and drivers. [root@my-host:~] esxcli software vib update -d http://vibsdepot.hpe.com/hpe/jul2017/index.xml Installation Result Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective. Reboot Required: true VIBs Installed: HPE_bootbank_amsd_650.11.1.0-24.4240417, HPE_bootbank_bootcfg_6.0.0.02-03.00.5.2494585, HPE_bootbank_conrep_6.0.0.02-00.00.12.2494585, ... VIBs Removed: HPE_bootbank_amshelper_650.10.6.0-24.4240417, HPE_bootbank_conrep_6.0.0.01-02.00.1.2494585, HPE_bootbank_hpbootcfg_6.0.0.02-02.00.6.2494585, ... VIBs Skipped: Reboot the host. [root@my-host:~] reboot ====== Update form ESXi 6.7U1 to 6.7U2 with the offline bundle ====== The offline bundle was downloaded and extracted to myDatastore/Sources/update-from-esxi6.7-6.7_update02/ on a NAS which is attached to the ESXi host. [root@my-host:~] esxcli software vib update -d /vmfs/volumes/myDatastore/Sources/update-from-esxi6.7-6.7_update02/