В этой статье мы рассмотрим процесс ручной установки обновлений на хост 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.
Есть гипервизор ibm System x3650 M3. На нем стоит VMware-ESXi-6.5.0.update01-7388607-LNV-20180201. Пытаюсь поставить обновление VMware_ESXi_6.5.0.update02_13635690_LNV_20190630. Обновляю так:
1) перевел гипервизор в режим обслуживания
2) ввожу команду
esxcli software vib install -d /vmfs/volumes disk/VMware_ESXi_6.5.0.update02_13635690_LNV_20190630.zip
Получаю ошибку:
[InstallationError]
Failed updating the bootloader: Execution of command /usr/lib/vmware/bootloader-installer/install-bootloader failed: non-zero code returned
return code: 1
output: ERROR: ld.so: object ‘/lib/libMallocArenaFix.so’ from LD_PRELOAD cannot be preloaded: ignored.
Traceback (most recent call last):
File «/usr/lib/vmware/bootloader-installer/install-bootloader», line 228, in
main()
File «/usr/lib/vmware/bootloader-installer/install-bootloader», line 213, in main
partType, diskGeom, parts = getDiskInfo(diskPath)
File «/usr/lib/vmware/bootloader-installer/install-bootloader», line 141, in getDiskInfo
rc, out, err = execCommand(command)
File «/usr/lib/vmware/bootloader-installer/install-bootloader», line 84, in execCommand
raise Exception(«\»%s\» failed to execute: status(%d)» % (command, rc))
Exception: «/sbin/partedUtil getptbl /vmfs/devices/disks/mpx.vmhba32:C0:T0:L0» failed to execute: status(255)
vibs = VMware_bootbank_esx-base_6.5.0-2.88.13635690
Одна из последних строчек
Exception: «/sbin/partedUtil getptbl /vmfs/devices/disks/mpx.vmhba32:C0:T0:L0» failed to execute: status(255)
Посмотрел в esxi и выяснил, что это флешка на которой стоит сама vmware. В интернете один человек написал, что решил проблему так
esxcli system module set -m=vmkusb -e=FALSE
Но мне не помогло. Может кто сталкивался с таким? Заранее спасибо
Используйте ключ UPDATE:
esxcli software vib update -d «/vmfs/volumes/************************************/ESXi670-202210001.zip»
Обновился командой:
esxcli software profile update -p ESXi-8.0U2b-23305546-standard -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
только с версии 6.5 до версии 7. Пропал сетевой адаптер vmxnet3. Видны только интерфейсы на 1 гигабит (rj-45).
Соответственно сервер теряет сеть, т.к. подключение к сети происходит именно по vmxnet3.
Почему пропал из списка адаптеров интерфейс и как его восстановить?
VMware при переходе между релизами часто убирает некоторые драйвера из HCL.
У севера доступны все физические адаптеры? проблема только с виртуальным адаптером vmxnet3 одной (или нескольких VM)?
Привет! Скажите пожалауйста на сколько безопасно накатывать последние патчи для esxi 6.5 и 6.7?
Имеется в виду типа таких ESXi650-202403001.zip
Я ставлю на все сервера сборку с rutracker от 2022 года, build 188….чё то там.
Зоопарк от GEN5 до GEN10.
Переход между версиями понятное дело опасен.
А просто патч накатить это 100% безопасно?
Риски при апдейтах есть всегда )
Обновляться конечно желательно, но без активной техподдержки я бы предварительно бэкапил конфигурацию перед обновлением. По опыту апдейт в рамках одной версии в 99% случаев накатывает без проблем.
я заметил одну неприятную особенность апдейта ESXi650-202403001.zip
И ESXi670-202403001.zip
Допустим если у меня виртуалка на LSI logic SAS или LSI Parallel не важно. И я хочу сменить SCSI на VMware Paravirtual есть небольшой баг.
Новый SCSI контроллер добавляется. Драйвер взлетает.
Потом я отключаю виртуалку. Меня в HARD disk SCSI контроллер и удаляю LSI Logic sas.
Но он собака не удаляется.
Плюс я не могу сменить SCSI контроллер.
Помогает — ставим SATA контроллер или IDE и удаляем SCSI.
Либо выбираем вместо SCSI LSI Logic SAS — Vmware Paravirtual.
Но это опаснее. А раньше можно было сменить и удалить.
Поэтому ради эксперимента накатил на 3 машины — HP GEN5 GEN6 и GEN7 для тестов.
А вот основной костяк GEN8 GEN9 GEN9 — на версии 2021-2022г оставил. Ну его нафиг рисковать.
вот сегодня и случилась жэ)
Обновились идеально gen5, gen6, gen7 и два gen9
А вот gen8 имеет детскую болезнь. Зависать в разные моменты рандомные. В итоге наколпашил мне esxi флешку и установился коряво. Версия осталась прежней а инструменты VMtools можно обновить.
Как бы не до конца обнова прошла уже думал ехать на удалённый объект. ну тут беда в самом HP gen8 dl360p. А не в Esxi.
Я думаю хард ресеты убили процесс обновы. Так как сама обнова встала норм после он на пост кодах заснул.
Ребят, вы супер! Сколько бы не встречал проблем — всегда ваши статьи выручают. Всего самого наилучшего вам!
p.s.
Вопрос в догонку: а патчи нужно по очереди ставить или можно самый последний? ну то есть у меня например установлена 7.0 u3n. Я могу сразу u3q поставить или должен ставить все буквы от n до q?
Патчи ESXi кумулятивные в рамках версии. Т.е. включают все предудущие обновления
ещё и флешка 64гб Sandisk Ultra Luxe стала кастратом на 14,91гб)) Неразмеченной области НЕТ!
Просто полный крындец) Буду пробовать реанимировать а так в гарантию ДНС буду сдавать
End of keyboard-interactive prompts from server
Last login: Sun Oct 27 10:06:15 UTC 2024 from 172.23.1.157 on ssh
Last login: Sun Oct 27 10:24:03 2024 from 172.23.1.157
srv-vcenter:~ # esxcli network firewall ruleset set -e true -r httpClient
-bash: esxcli: command not found
srv-vcenter:~ # Last login: Sun Oct 27 10:24:03 2024 from 172.23.1.157
-bash: Last: command not found
srv-vcenter:~ # srv-vcenter:~ # esxcli network firewall ruleset set -e true -r httpClient
-bash: srv-vcenter:~: command not found
srv-vcenter:~ # -bash: esxcli: command not found
-bash: -bash:: command not found
srv-vcenter:~ # srv-vcenter:~ #
-bash: srv-vcenter:~: command not found
srv-vcenter:~ # esxcli software vib list | grep ‘Install\|esx-base’
-bash: esxcli: command not found
srv-vcenter:~ # esxcli software profile get
-bash: esxcli: command not found
srv-vcenter:~ #
Какие варианты. 3 день не могу обновы натянуть. моя Vendor:
VMware Inc.
Appliance Name:
VMware vCenter Server Appliance
Appliance Version:
5.5.0.20000 Build 2063318
(
Details…
)
VMware vCenter Server Appliance
Update to version 5.5.0 Update 2
В статье показано как обновить отдельный esxi и команды для него.
У вас консоль VMware vCenter Server Appliance.
В нем можно централизвоанно ставить апдейты на хосты через VMware vCenter Update Manager