Как обновить ESXi
Вопрос, как обновить ESXi, довольно просто решается, если в вашей инфраструктуре есть VCenter. Там обновление хостов и виртуальных машин осуществляется с помощью VUM(vsphere update manager). Однако, в небогатых небольших организациях или в тестовом окружении, VCenter, как правило отсутствует. Давайте рассмотрим, как в таком случае обновить хост(ы) ESXi.
Сейчас мой хост имеет следующую версию(посмотреть ее можно в клиенте на вкладке Help->About):
Как обновить ESXi
Для обновления хостов нам потребуется подключиться к хосту по SSH и воспользоваться командной строкой esxcli.
Сначала, выключите или переместите виртуальные машины с обновляемого хоста(не помешает сделать бэкап). Потом переведите хост в режим обслуживания, выполнив команду:
1 |
vim-cmd hostsvc/maintenance_mode_enter |
Мы будем рассматривать обновление из репозитория VMware, поэтому нам понадобится доступ в интернет и разрешающее правило файрвола:
1 |
esxcli network firewall ruleset set -e true -r httpClient |
Теперь давайте посмотрим список доступных образов ESXi, выполнив команду:
1 |
esxcli software sources profile list --depot=https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml |
Чтобы осуществить поиск только определенной версии нужно дописать в конце | grep -i ESXi-6.5
Через некоторое время команда выведет список доступных образов:
Выбираем нужный образ и выполняем команду обновления с параметром —dry-run. Этот параметр позволяет посмотреть какие пакеты будут установлены, а какие удалены. Если в списке удаляемых есть необходимые вам пакеты, будьте готовы их потом поставить вручную.
1 |
esxcli software profile update -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml -p ESXi-6.5.0-20190104001-standard --dry-run |
После этого запускаем непосредственно обновление:
1 |
esxcli software profile update -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml -p ESXi-6.5.0-20190104001-standard |
Через несколько минут, в случае удачного обновления вы должны увидеть следующее:
Вводим команду reboot и перезагружаемся.
После перезагрузки выводим хост из режима обслуживания:
1 |
vim-cmd hostsvc/maintenance_mode_exit |
Проверяем версию ESXi:
И видим, что мы справились с задачей обновления хоста ESXi.
Обновление Offline.
Установить апдейты можно и, скачав их на локальное хранилище хоста, командой типа:
1 |
esxcli software vib update -d "/vmfs/volumes/datastore1/patch-directory/ESXi500-201111001.zip" |
Если производите Upgrade Esxi до другой версии, можно использовать команды для Image Profile. Для начала, посмотрим текущий профиль Esxi:
1 |
esxcli software profile get |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
(Updated) ESXi-Customizer Name: (Updated) ESXi-Customizer Vendor: esxi2 Creation Time: 2018-05-25T12:40:08 Modification Time: 2018-05-25T12:48:41 Stateless Ready: False Description: 2018-05-25T12:40:08.029979+00:00: The following VIBs are installed: ehci-ehci-hcd 1.0-3vmw.550.3.95.4345813 cpu-microcode 5.5.0-3.114.7967571 esx-base 5.5.0-3.114.7967571 lsi-mr3 6.610.20.00-1OEM.550.0.0.1391871 tools-light 5.5.0-3.92.4345810 esx-tboot 5.5.0-3.100.4722766 xhci-xhci 1.0-3vmw.550.3.95.4345813 misc-drivers 5.5.0-3.95.4345813 esx-ui 1.21.0-5752109 esx-xserver 5.5.0-3.103.6480267 scsi-megaraid-sas 6.612.07.00-1OEM.550.0.0.1331820 sata-ahci 3.0-22vmw.550.3.89.4179633 ---------- |
Посмотреть профили доступные в offline bundle, который мы загрузили на хранилище хоста:
1 |
esxcli software sources profile list -d /vmfs/volumes/<patch-repository>/ESXi650-202403001.zip |
Запустить обновление можно командой(выбрав один из профилей, в нашем случае -standart):
1 |
esxcli software profile update -p ESXi-6.5.0-20240304001-standard -d /vmfs/volumes/<patch-repository>/ESXi650-202403001.zip |
Для того, чтобы не выполнять обновление, а только посмотреть что произойдет, используйте команду с параметром —dry-run
Вместо команды update можно использовать команду install, но учтите, что она перезаписывает все пакеты, установленные в системе, в то время как update заменяет только более старые версии пакетов, а те, которые новее, чем содержащиеся в патче, оставляет без изменений.
P.S. Иногда при обновлении возникает ошибка Dependency Error:
1 2 3 4 |
[DependencyError] VIB Adaptec_Inc_bootbank_scsi-aacraid_5.0.5.1.7.28700-1OEM.500.0.0.406165 requires vmkapi_2_0_0_0, but the requirement cannot be satisfied within the ImageProfile. VIB Adaptec_Inc_bootbank_scsi-aacraid_5.0.5.1.7.28700-1OEM.500.0.0.406165 requires com.vmware.driverAPI-9.2.0.0, but the requirement cannot be satisfied within the ImageProfile. Please refer to the log file for more details. |
В этом случае можно удалить конфликтующие пакеты(если вы уверены, что они не используются), указав в качестве параметра -n имя пакета(у меня это scsi-aacraid):
1 |
esxcli software vib remove -n scsi-aacraid |
Посмотреть имя несовместимого пакета(например, Adaptec) можно командой:
1 |
esxcli software vib list | grep Adaptec |
После этого проблема с Dependency Error должна исчезнуть.
И главное, перед обновлением не забудьте проверить совместимость оборудования с версией Esxi, на которую хотите обновиться.
Источники:
https://tinkertry.com/easy-update-to-esxi-67
https://kb.vmware.com/s/article/2008939
http://www.virtubytes.com/2017/05/04/patch-esxi-using-esxcli-commands/