В этой статье мы рассмотрим процесс ручной установки обновлений на хост VMware ESXi из командной строки, можно выполнить обновление внутри релиза, так и между версиями версии ESXi (например, выполнить апгрейд с VMware ESXi 6.7 до 7.0 или 8.0).
Ручное обновление ESXi из консоль esxcli можно использовать для обновления отдельно-стоящих хостов ESXI (или бесплатного VMware vSphere Hypervisor), небольших инсталляций или тестовых сред. Для обновления большой инфраструктуры на базе VMware vSphere vCenter/VCSA предпочтительнее использовать VMware Update Manager/VMware Lifecycle manager.
Определите установленную версию ESXi из веб интерфейса Host Client:
Или из командной строки ESXi (предварительно нужно разрешить SSH доступ к хосту ESXi):
vmware -v
VMware ESXi 8.0.2 build-22380479
В нашем примере на хосте установлена версий ESXi 8.0 Update2.
Датe установки (обновления) образа ESXi можно узнать командой:
esxcli software vib list | grep 'Install\|esx-base'
Вы можете получить обновлений для хоста VMware ESXi двумя способами:
- Онлайн обновление – подойдет для случаев, если ваш ESXi может получить доступ к репозиторию VMware через интернет.
- Оффлайн обновление — вы должны вручную скачать ZIP файл с установочным Offline Bundle образа ESXi на локальное хранилище
Онлайн установка обновления на хосте ESXi
Сначала рассмотрим онлайн обновление ESXi. Подключить к консоли ESXi и проверьте версию используемого профиля.
esxcli software profile get
В нашем примере используется кастомный дистрибутив ESXi 8.0.2 от HPE (HPE-Custom-AddOn_802.0.0.11.5.0-6).
Разрешите ESXi хосту доступ в Интернет, открыв правило в файероле:
esxcli network firewall ruleset set -e true -r httpClient
Выведите список доступных образов в VMware online depot:
esxcli software sources profile list --depot=https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
В данном случае последняя доступный образа для нашей версии ESXi — ESXi-8.0U2b-23305546-standard.
Переведите хост в режим обслуживания:
esxcli system maintenanceMode set --enable=true
Запустите онлайн обновление вашего образа ESXi до указанного билда:
esxcli software profile update -p ESXi-8.0U2b-23305546-standard -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
Hardware precheck of profile ESXi-8.0U2b-23305546-standard failed with warnings: <CPU_SUPPORT OVERRIDEWARNING: The CPUs on this host are not supported by ESXi 8.0.2. You can override and force install, but it is not officially supported nor recommended. Please refer to KB 82794 for more details.
В данном случае версия CPU на хосте не поддерживается в новом билде. Чтобы игнорировать это предупреждение, нужно добавить параметр —no-hardware-warning в предыдущую команду.
После окончания обновления образа ESXi появится сообщение:
The update completed successfully, but the system needs to be rebooted for the changes to be effective.
А также список установленных пакетов VIB.
Отключите HTTP доступ в интернет:
esxcli network firewall ruleset set -e false -r httpClient
Перезагрузите ESXi сервер:
Reboot
Отключите режим обслуживания:
esxcli system maintenanceMode set --enable=false
Проверьте, что версия ESXi была обновлена:
esxcli software profile get
Если онлайн обновление ESXi невозможно, или при обновлении из командной строки появляется ошибка Got no data from process: LANG=en_US.UTF-8, нужно выполнить офлайн установку обновления.
Ручная офлайн установка обновления образа VMware ESXi
Для офлайн установки rollup обновления на ESXi:
- Авторизуйтесь в личном кабинете на сайте VMware и перейдите на https://my.vmware.com/group/vmware/patch
- Выберите продукт: ESXi (Embedded and Installable);
- Выберите свою версию ESXi и скачайте последний Offline Bundle (по Release Data). Если вы используете кастомный образ ESXi от вендора (например HPE Custom Image for ESXi 8.0U2), перейдите на вкладку Custom ISOs (https://customerconnect.vmware.com/downloads/info/slug/datacenter_cloud_infrastructure/vmware_vsphere/8_0#custom_iso );
- Скачайте zip архив с обновлением;
- Воспользуйтесь DataStore Browser, чтобы скопировать архив на любое из доступных хосту хранилищ (это может быть локальный диск, NFS папка, VMFS LUN, подключенный по iSCSI или Fiber Channel, или внешний USB диск, подключенный к хосту ESXi). Если места на хранилище недостаточно, расширьте VMFS;
- Подключитесь к хосту ESXi через SSH и переведите хост в режим обслуживания: :
vim-cmd /hostsvc/maintenance_mode_enter
- Выведите список доступных профилей в образе:
esxcli software sources profile list --depot /vmfs/volumes/607eb5b4-c6e3e815-7b50-000c29808a13/update/ESXi670-202111001-depot.zip
- Для установки обновлений из локальной папки выполните команду:
esxcli software vib update --depot /vmfs/volumes/607eb5b4-c6e3e815-7b50-000c29808a13/update/ESXi670-202111001.zip
Чтобы выбрать конкретный профиль, добавьте параметр--profile=имя_профиля
Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective. Reboot Required: true
- Если при обновлении появятся ошибки зависимостей, можно проигнорировать их, добавив –f. Однако это может привести к непредвиденным проблемам в дальнейшем при эксплуатации ESXi. Лучше разобраться с зависимостями и добавить нужный драйвер в установочный образ ESXi.
[DependencyError]VIB VMW_bootbank_vmkusb_0.1-4vmw.670.3.159.18828794 requires vmkapi_incompat_2_5_0_0, but the requirement cannot be satisfied within the ImageProfile.
- Перезагрузите хост ESXi:
reboot -f
- Отключите режим обслуживания:
vim-cmd /hostsvc/maintenance_mode_exit
- Убедитесь, что версия ОС обновилась:
vmware –v
Install-VMHostPatch -HostPath /vmfs/volumes/volume/esxi_patch.zip
Из командной строки вы можете не только установить патчи на текущий релиз ESXi, но и выполнить обновление до следующий версии. Например, с ESXi 6.7 до 8.0. Просто скачайте соответствующий офлайн образ и выполните обновлений согласно этому гайду.
- При выполнении обновления между версиями ESXi убедитесь, что оборудование вашего сервера поддерживается в более новой версии ОС. Используйте VMware Compatibility Guide и VMware Product Interoperability Matrix.
- Не обновляйте релиз ESXi, если хост подключен к vCenter до того, как вы обновите версию vCSA.