Content
Скидання пароля користувача root в ESXi 7.x
Іноді з тих чи інших причин ви не можете увійти до консолі керування ESXi, оскільки у вас немає актуального пароля. Це може статися через злам системи, збій, втрату пароля або якщо ви отримали ESXi без документації чи належного адміністративного контролю. Це неприємна ситуація, і з нею доведеться щось робити. Можливо, не одразу, але коли щось піде не так і вам доведеться втрутитися в роботу системи, яка досі функціонувала нормально. Ця інструкція написана саме для таких випадків.
Резервне копіювання
Перед виконанням дій необхідно створити резервні копії конфігурації, віртуальних машин, мережевих налаштувань і ліцензії.
- Конфігурація хоста:
vim-cmd hostsvc/firmware/backup_config
- Команда створює резервну копію конфігурації хоста. Після виконання команди у виводі буде вказано URL (наприклад,
http://
)./downloads/ .tgz - Завантажте файл за цим URL через веб-браузер або утиліту, наприклад
wget
чиcurl
, і збережіть його на зовнішньому носії:wget http://
/downloads/ .tgz -O /path/to/backup/ .tgz - Для відновлення конфігурації використовуйте веб-інтерфейс vSphere Client:
- Перейдіть до "Host" → "Configure" → "System" → "Backup/Restore".
- Оберіть "Restore" і завантажте раніше збережений файл
.tgz
.
Альтернативно, для синхронізації поточної конфігурації із збереженою на диску використовуйте:
vim-cmd hostsvc/firmware/sync_config
- Потрібен діючий пароль root. У разі його відсутності використовуйте доступ через vCenter або SSH-ключи.
- Команда створює резервну копію конфігурації хоста. Після виконання команди у виводі буде вказано URL (наприклад,
- Віртуальні машини:
ovftool vi://root@[ESXI_IP]/[VM_NAME] /path/to/backup/[VM_NAME].ova
- Потрібна утиліта
ovftool
, встановлена на адміністративній машині (Windows, macOS або Linux). Завантажити утиліту можна з сайту VMware Customer Connect. - Переконайтеся, що на адміністративній машині налаштовано доступ до хоста ESXi, і використовуйте діючий пароль root для виконання команди.
- Збережіть файл
.ova
на зовнішньому носії.
- Потрібна утиліта
- Мережеві налаштування:
esxcli network ip interface list > network_config.txt
Збережіть вивід у файл.
- Ліцензія ESXi:
vim-cmd vimsvc/license --show
Резервні копії зберігайте на зовнішньому носії, не підключеному до хоста.
Визначення типу інфраструктури
Для вибору оптимального методу скидання потрібно визначити тип хоста:
- Керується vCenter: У веб-інтерфейсі ESXi в розділі "Summary" вказано vCenter Server.
- Автономний: Керування здійснюється напряму, без vCenter.
Метод 1: Хост, керований vCenter (Host Profiles)
Метод використовує Host Profiles для хостів, підключених до vCenter. Не потребує перезавантаження. Підтримується VMware.
Вимоги
- Ліцензія VMware vSphere Enterprise Plus.
- Доступ до vCenter Server.
- Інший ESXi хост із відомим паролем root і ідентичною версією ESXi (наприклад, 7.0 Update 3c).
- Якщо використовується ліцензія Standard або нижче, використовуйте Метод 2 (перевстановлення) або Метод 3 (Nested ESXi).
Кроки
- Увійти до vSphere Client (HTML5).
- Перейти до розділу "Host Profiles":
- Оберіть у головному меню "Menu" → "Host Profiles" або перейдіть через "Inventory" → "Hosts and Clusters" → "Host Profiles" (залежно від версії vSphere).
- Витягти профіль:
- Оберіть хост із відомим паролем.
- Натисніть "Extract Profile from Host".
- Задайте ім’я профілю, наприклад,
Password_Reset_Profile
. - Дочекайтеся завершення.
- Відредагувати профіль:
- Оберіть профіль, натисніть "Edit Settings".
- Перейдіть до "Security Configuration" → "Authentication Configuration".
- У розділі "Local User Accounts" оберіть обліковий запис
root
. - Встановіть новий пароль (не менше 8 символів, включаючи великі літери, цифри, спеціальні символи).
- Збережіть.
- Підготувати цільовий хост:
- Оберіть хост із забутим паролем.
- Переведіть у режим обслуговування: правий клік → "Enter Maintenance Mode".
- Оберіть "Move powered off and suspended virtual machines to other hosts", якщо це можливо.
- За відсутності DRS або vMotion вимкніть віртуальні машини.
- Дочекайтеся завершення.
- Застосувати профіль:
- У розділі "Host Profiles" оберіть профіль.
- Натисніть "Attach/Detach Hosts and Clusters", оберіть хост.
- Натисніть "Attach", потім "Remediate".
- Підтвердіть зміни, дочекайтеся завершення (займе приблизно десять хвилин).
- Перевірити:
- Вийти з режиму обслуговування: правий клік → "Exit Maintenance Mode".
- Увійти з новим паролем через веб-інтерфейс або SSH.
- Перевірити віртуальні машини:
vim-cmd vmsvc/getallvms
Примітки
- Версія ESXi еталонного хоста повинна збігатися з цільовим.
- За невідповідності конфігурацій можливі помилки. Перевірте журнали vCenter.
Ризики
- Мінімальні за умови дотримання інструкції.
- Можливі збої через невідповідність конфігурацій.
Метод 2: Автономний хост — Перевстановлення
Для автономних хостів застосовується перевстановлення ESXi. Метод призводить до втрати конфігурації без резервних копій.
Кроки
- Підготовка:
- Завантажте ESXi з VMware Customer Connect.
- Створіть завантажувальний USB за допомогою Rufus, Ventoy або:
sudo dd if=/path/to/esxi.iso of=/dev/sdX bs=4M status=progress && sync
Переконайтеся, що
/dev/sdX
— правильний USB-пристрій (перевірте черезlsblk
абоfdisk -l
). - Виконайте резервне копіювання (див. розділ "Резервне копіювання").
- Перевстановлення:
- Завантажтеся з установчого носія.
- Оберіть диск, підтвердіть перезапис.
- Встановіть новий пароль root (рекомендується не менше 8 символів).
- Дочекайтеся завершення встановлення (приблизно 15 хвилин).
- Відновлення:
- Налаштуйте мережу:
esxcli network ip interface ipv4 set -i vmk0 -I [IP] -N [NETMASK] -t static esxcli network ip route ipv4 add -g [GATEWAY] -n default esxcli network ip interface set -e false -i vmk0; esxcli network ip interface set -e true -i vmk0
Якщо хост використовував vSphere Distributed Switch (vDS), відновіть vDS через vCenter або налаштуйте vSphere Standard Switch (vSS).
- Підключіть сховища:
esxcli storage core adapter rescan --all
Для монтування всіх доступних VMFS томів використовуйте:
esxcli storage filesystem automount
Якщо автоматичне монтування не спрацювало, перевірте доступні томи і змонтуйте вручну:
esxcli storage filesystem list esxcli storage filesystem mount --volume-label=[VOLUME_LABEL]
Замініть
[VOLUME_LABEL]
на ім’я тому, отримане з командиlist
. - Імпортувати віртуальні машини:
ovftool /path/to/backup/[VM_NAME].ova vi://root@[ESXI_IP]/
Переконайтеся, що
ovftool
виконується на адміністративній машині з доступом до хоста. - Відновити ліцензію:
vim-cmd vimsvc/license --set [LICENSE_KEY] --label="ESXi License"
Параметр
--label
необов’язковий, але рекомендується для ідентифікації ліцензії в інтерфейсі vSphere.
- Налаштуйте мережу:
Ризики
- Втрата конфігурації та віртуальних машин без резервних копій.
- Потрібне повторне налаштування мережі та сховищ.
Метод 3: Автономний хост — Альтернативний метод
Для автономних хостів, де перевстановлення неможливе, використовується метод із Nested ESXi та Linux VM для зміни конфігураційних файлів. Метод складний, не підтримується VMware, призначений для досвідчених адміністраторів.
Вимоги
- Nested ESXi VM, що відповідає версії та збірці хоста (наприклад, 7.0 Update 3c). Доступна на VMware Flings.
- Linux VM (наприклад, Ubuntu 20.04+).
- Фізичний доступ до сервера.
- Досвід роботи з Linux.
Кроки
- Розгорнути Nested ESXi та Linux VM.
- Завантажитися з Linux LiveCD, змонтувати розділи ESXi, скопіювати файли
state.tgz
іlocal.tgz
. - Передати файли на Nested ESXi, розшифрувати за допомогою
/usr/lib/vmware/crypto-util
, змінити хеш пароля в базі SQLite. - Упакувати та зашифрувати файли, повернути на хост, перезавантажити.
Ризики
- Якщо хост використовує Trusted Platform Module (TPM), файли конфігурації прив’язані до TPM-ключів. Заміна файлів без ключів може призвести до непрацездатності. Перевірте:
esxcli system settings encryption get
Якщо
Encryption Mode
вказує TPM, метод може бути непридатним. - Неправильні зміни можуть скинути мережеві налаштування, сховища або віртуальні машини.
- Nested ESXi повинна точно відповідати версії хоста.
- В ESXi 8.x метод може не працювати через зміни в шифруванні.
Альтернатива
Якщо SSH увімкнено, додайте SSH-ключ:
- Згенерувати ключ:
ssh-keygen -t rsa -b 4096
- Додати ключ до
/etc/ssh/keys-root/authorized_keys
.
Профілактичні заходи
- Документування:
- Зберігайте паролі в менеджері паролів, наприклад, HashiCorp Vault.
- Підтримуйте актуальність документації.
- SSH-доступ:
- Увімкнути SSH для поточної сесії:
esxcli system services enable --id=TSM-SSH esxcli system services start --id=TSM-SSH
- Для автоматичного запуску SSH під час завантаження:
esxcli system services set --policy=on --id=TSM-SSH
- Вимкнути таймаут ESXi Shell:
esxcli system settings advanced set -o /UserVars/ESXiShellTimeOut -i 0
- Альтернативно, налаштувати через vSphere Client:
- Оберіть хост → "Configure" → "Services".
- Знайдіть "TSM-SSH", оберіть "Options" → "Start and stop with host".
- Налаштувати SSH-ключи:
- Згенерувати ключ на клієнтській машині:
ssh-keygen -t rsa -b 4096
- Скопіювати публічний ключ (наприклад,
~/.ssh/id_rsa.pub
) на хост:scp ~/.ssh/id_rsa.pub root@[ESXI_IP]:/etc/ssh/keys-root/authorized_keys
- Встановити права доступу:
ssh root@[ESXI_IP] "chmod 644 /etc/ssh/keys-root/authorized_keys"
- Згенерувати ключ на клієнтській машині:
- Зберігати ключі в
/etc/ssh/keys-root/authorized_keys
.
- Увімкнути SSH для поточної сесії:
- Active Directory:
- Приєднати хост до домену через CLI:
esxcli system authentication activedirectory join -d [DOMAIN] -u [USERNAME] -p [PASSWORD]
Вкажіть [DOMAIN] (наприклад, example.com), [USERNAME] (користувач із правами на приєднання) і [PASSWORD].
- Альтернативно, використовувати vSphere Client:
- Оберіть хост → "Configure" → "Authentication Services".
- Натисніть "Join Domain", вкажіть домен і облікові дані.
- Призначити права доменній групі через vSphere Client:
- Оберіть хост або vCenter.
- Перейдіть до "Permissions".
- Натисніть "Add", оберіть групу (наприклад,
DOMAIN\GroupName
), призначте роль (наприклад, "Administrator").
- Для автоматизації використовувати PowerCLI:
New-VIPermission -Entity (Get-VMHost) -Principal "DOMAIN\GroupName" -Role Admin
- Приєднати хост до домену через CLI:
- Моніторинг:
- Використовуйте vRealize Operations або Zabbix.
- Налаштуйте сповіщення про збої.
- Резервне копіювання:
- Автоматизувати:
vim-cmd hostsvc/firmware/backup_config
Завантажуйте файл за URL і зберігайте на зовнішньому носії.
- Автоматизувати: