Розгортання сервера ESXi стало простим: посібник з встановлення та налаштування за допомогою ESXi-Foreman PXE Deploy

Розгортання сервера ESXi стало простим: посібник з встановлення та налаштування за допомогою ESXi-Foreman PXE Deploy

04.04.2024
Автор: HostZealot Team
2 мін.
213

ESXi - це інструмент віртуалізації корпоративного рівня. Він може керувати віртуальними машинами ефективніше, ніж деякі звичні нам служби. Сервер VMware ESXi встановлюється безпосередньо на комп'ютер, без операційної системи хоста. Тоді сервер може керувати апаратними ресурсами та створювати копії віртуального обладнання для управління ними.

Існує два способи встановлення ESXi: через Legacy або UEFI. У цьому посібнику ми будемо використовувати Legacy.

Спрощення розгортання сервера ESXi: Режим встановлення Legacy

Legacy режим потрібно встановлювати для старих систем, які не підтримують UEFI (Unified Extensible Firmware Interface - уніфікований розширюваний інтерфейс мікропрограми).

Давайте, розглянемо розгортання сервера ESXi в Legacy режимі за допомогою гіпервізора VMware ESXi 8.0. Вам потрібно попередньо встановити програмне забезпечення Foreman; якщо у вас його немає, ви можете слідувати інструкції по встановленню Foreman. Але якщо ви вже встановили його, ми продовжимо.

По-перше, нам потрібно створити операційну систему. Відкрийте Foreman і натисніть кнопку Створити операційну систему. Там вставте наступне:

Name - ESXi-6.7.0-8169922 (ESXi-{OS Version}-{Build Number})
Major version - 6
Minor version - 7
Description - ESXi-6.7.0-8169922
Family - Redhat
Root pass hash -SHA512
Architectures - x86_64

Ви створили образ операційної системи.

Налаштування за допомогою шаблонів: Описовий підхід

Далі нам потрібно створити шаблон PXELinux (ім'я - ESXi-6.7.0-8169922) і шаблон кікстарту (ім'я - ESXi Minimal Kickstart).

Для шаблону PXELinux вставте наступне:

DEFAULT ESXi
NOHALT 1
LABEL ESXi
KERNEL ../boot/ESXi-6.7.0-8169922/mboot.c32
APPEND -c ../boot-ESXi-6.7.0-8169922.cfg ks=<%= foreman_url("provision") %>
IPAPPEND 2

Для шаблону kickstart вставте наступне:

vmaccepteula
keyboard 'US Default'
reboot
rootpw --iscrypted <%= root_pass %>
install --firstdisk --overwritevmfs --novmfsondisk
# Set the network to DHCP on the first network adapter
network --bootproto=dhcp --device=<%= @host.mac %>
%post --interpreter=busybox
# Add temporary DNS resolution so the foreman call works
echo "nameserver <%= @host.subnet.dns_primary %>" >> /etc/resolv.conf
# Inform Foreman that we are done.
wget -O /dev/null <%= foreman_url('built') %>
echo "Done with Foreman call"

Для цього шаблону вам потрібно змінити тип шаблону на "Шаблон забезпечення" у вкладці "Тип" налаштувань шаблону.

Тепер нам потрібно встановити обидва шаблони за замовчуванням, вибравши їх у розділі Шаблони.

Після цього нам потрібно додати образ операційної системи до Foreman, але перед цим ми повинні витягти вміст цього образу, який можна знайти в каталозі /var/lib/tftpboot/tftpboot/boot/esxi/8.0.

Замість того, щоб створювати окремий екземпляр ESXi, ми встановимо його в режимі Legacy, але зробимо кілька змін у файлі конфігурації (/usr/share/foreman/app/models/concerns/pxe_loader_support.rb.):

def all_loaders_map(precision = 'x64')
  {
    "None" => "",
    "PXELinux BIOS" => "pxelinux.0",
    "PXELinux UEFI" => "pxelinux.efi",
    "PXELinux Alt BIOS" => "syslinux386/pxelinux.0", # Add this line
    …

У Legacy файл конфігурації виглядає наступним чином:

TIMEOUT 10
DEFAULT default_PXELinux_ESXI
LABEL default_PXELinux_ESXI
KERNEL boot/esxi/8.0/mboot.c32
APPEND -c boot/esxi/8.0/boot2.cfg ks=http://address of the server from which we get the file with autosettings/unattended/provision
IPAPPEND 2

Щодо завантажувача, то ми використали універсальний, сумісний з різними операційними системами. Після перезавантаження сервера почнеться встановлення.

Після цього система звернеться до kickstart-файлу хостингу (ks=http://server's address/unattended/provision), який містить автоматичні налаштування.

Якщо ESXi підтримує ваше обладнання, інсталяція пройде гладко. В результаті ви отримаєте повністю робочу ОС з двома користувачами з root-доступом.

За що відповідає шаблон забезпечення?

Шаблон забезпечення (provisioning) виконує наступні дії:

  • Дозволяє керувати налаштуваннями мережі.
  • Встановлює систему на диск.
  • Ігнорує помилки.
  • Вказує ім'я сервера та пароль для користувача з доступом root.
  • Дозволяє додати ще одного користувача з доступом root.
  • Налаштовує брандмауер.

Впорядкування процесу: Встановлення ESXi в режимі UEFI

Операційна система VMware ESXi може бути встановлена як в режимі Legacy, так і в режимі UEFI. Отже, якщо в назві образу операційної системи міститься ESXi, конфігурація буде скопійована і почнеться запуск LiveCD.

Коли LiveCD завантажиться, ви побачите скрипт, в якому буде вказано дані про диск, на який потрібно встановити ОС. Там вам потрібно вказати потрібний диск (бажано не дуже великий, але з мінімум 20 ГБ вільного місця) і перевірити, чи є на ньому параметри "логічний том" або "група томів" - якщо вони присутні, переконайтеся, що їх видалено з диска.

Після очищення диска система створить розділ для запуску завантажувача UEFI. Процес створення розділу виглядає наступним чином:

parted -s /dev/${INST_DRIVE} mklabel gpt mkpart fat32 1MiB 1GiB set 1 esp on
EFI_PART=$(lsblk -l | grep "${INST_DRIVE}" | grep part | awk '{print $1}')
mkdir -p /mnt/{iso,efipart,wim}
wget ${medium_uri}/${branch}/esxi${os_version}pe.iso
mount -o loop esxi${os_version}pe.iso /mnt/iso
mkfs.fat -F32 /dev/$EFI_PART
mount /dev/$EFI_PART /mnt/efipart
mkdir -p /mnt/efipart/EFI/redhat/
mkdir -p /mnt/efipart/kickstart
rsync -r /mnt/iso/ /mnt/efipart/
cp /mnt/efipart/EFI/BOOT/BOOTX64.EFI /mnt/efipart/EFI/redhat/grubx64.efi
cp /mnt/efipart/EFI/BOOT/CRYPTO64.EFI /mnt/efipart/EFI/redhat/crypto64.efi
cp /mnt/efipart/EFI/BOOT/SAFEBOOT.EFI /mnt/efipart/EFI/redhat/safeboot.efi
cp /mnt/efipart/boot.cfg /mnt/efipart/EFI/redhat/boot.cfg
curl -s "<http://$>{foreman_fqdn}/unattended/provision?token=${foreman_token}" >> /mnt/efipart/kickstart/ks.cfg
tar -czf /mnt/efipart/kickstart.gz --directory=/mnt/efipart kickstart
###sed -i "s#kernelopt=runweasel cdromBoot#kernelopt=ks=file://kickstart/ks.cfg#g" /mnt/efipart/EFI/redhat/boot.cfg ##for 7.3
sed -i "s#^kernelopt.*#kernelopt=ks=file://kickstart/ks.cfg#g" /mnt/efipart/EFI/redhat/boot.cfg
sed -ie 's#^modules.*$#& --- /kickstart.gz#g' /mnt/efipart/EFI/redhat/boot.cfg
umount /mnt/iso
rm esxi${os_version}pe.iso
/usr/bin/env wget --no-proxy --quiet --output-document=/dev/null --no-check-certificate "<http://$>{foreman_fqdn}/unattended/built?token=${foreman_token}"
umount /mnt/efipart
sync
fi
reboot

Він виконує наступне:

  • Створює розділ розміром 1 ГБ.
  • Переносить ISO-образ до /mnt/efipart/ і далі монтує його у /mnt/iso.
  • Забезпечує коректну роботу завантажувача Foreman через структуру каталогів.
  • Витягує вміст шаблону забезпечення у Foreman і поміщає його у конфігураційний файл /mnt/efipart/kickstart/ks.cfg.
  • Архівує файл конфігурації і додає його до модулів ESXi у розділі UEFI.
  • Додає нову інформацію про модуль до файлу конфігурації "boot".
  • Демонтує розділ і видаляє ISO-образ.
  • Надсилає запит до майстра на початок процесу встановлення.
  • Спрямовує сервер до перезавантаження.

Після перезавантаження сервера розділ UEFI стає пріоритетним джерелом отримання даних. На цьому етапі Foreman починає пошук розділу (в нашому випадку це RedHat, який ми вказали в розділі Family при створенні ОС).

Коли Foreman знаходить його (у нашому випадку розділ RedHat), він надсилає системі сигнал про початок інсталяції ESXi. Після цього система почне розпаковувати оновлені модулі та конфігураційні файли, які вказують системі, як її слід встановлювати та налаштовувати.

І знову ж таки, якщо обладнання підтримується гіпервізором ESXi, система буде встановлена без помилок.

Основні висновки щодо розгортання ESXi-Foreman PXE

За допомогою розгортання ESXi-Foreman PXE можна легко автоматизувати встановлення та налаштування віртуальних серверів ESXi. Він також забезпечує стабільну основу для управління та контролю всіх етапів розгортання (навіть якщо доступ до нього здійснюється віддалено).

ESXi-Foreman дозволяє скоротити час розгортання і зменшити кількість потенційних помилок, а також забезпечує широку інтеграцію з іншими інструментами і системами для різних сценаріїв віртуалізації.

# Як зробити Поділитися:
Статті за темою