Легкое развертывание сервера ESXi: руководство по установке и настройке с ESXi-Foreman PXE Deploy

watch 2m, 46s
views 2

09:30, 04.04.2024

Содержание статьи
arrow

  • Развертывание сервера ESXi: Режим установки Legacy
  • Конфигурирация с помощью шаблонов
  • Что делает шаблон инициализации?
  • Установка ESXi в режиме UEFI
  • Основные выводы по развертыванию ESXi-Foreman PXE

ESXi - это инструмент виртуализации корпоративного уровня. Оно может управлять виртуальными машинами более эффективно, чем некоторые привычные нам службы. Сервер ESXi от VMware устанавливается прямо на компьютер, без операционной системы хоста. После этого сервер может направлять аппаратные ресурсы и создавать копии виртуального оборудования для управления ими.

Существует два способа установки ESXi: через Legacy и UEFI. В этом руководстве мы будем использовать Legacy.

Развертывание сервера ESXi: Режим установки Legacy

Режим Legacy необходимо установить для старых систем, которые не поддерживают UEFI (Unified Extensible Firmware Interface).

В этом шаге мы рассмотрим развертывание сервера ESXi с помощью установки режима Legacy через гипервизор VMware ESXi 8.0. Предварительно необходимо установить программное обеспечение Foreman; если у вас его нет, вы можете следовать инструкции по установке Foreman. Но если оно у вас уже установлено, приступим.

Сначала нам нужно создать операционную систему. Откройте Foreman и нажмите на кнопку Create Operating System. Там вставьте следующие данные:

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) и шаблон kickstart (имя - 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"

Для этого шаблона необходимо изменить тип шаблона на "Provisioning template" на вкладке "Type" в настройках шаблона.

Теперь нам нужно установить оба шаблона по умолчанию, выбрав их в разделе "Templates".

Затем нам нужно загрузить образ операционной системы на 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 ГБ), а также проверить, есть ли у него параметры "logical volume" или "volume group" – если они присутствуют, обязательно удалите их с диска.

После очистки диска система создаст перегородку для запуска загрузчика 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-образ.
  • Отправляет запрос Foreman на запуск процесса установки.
  • Направляет сервер на перезагрузку.

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

После того как Foreman найдет его (в данном случае раздел RedHat), он пошлет системе сигнал о начале установки ESXi. После этого система начнет распаковывать обновленные модули и конфигурационные файлы, которые подскажут системе, как ее установить и настроить.

И снова, если оборудование поддерживается гипервизором ESXi, система будет установлена без ошибок.

Основные выводы по развертыванию ESXi-Foreman PXE

С помощью ESXi-Foreman PXE развертывания можно легко автоматизировать установку и настройку виртуальных серверов ESXi. Она также обеспечивает стабильную основу для управления и контроля всех этапов развертывания (даже при удаленном подходе).

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

Поделиться

Была ли эта статья полезной для вас?

Популярные предложения VPS

-10%

CPU
CPU
8 Xeon Cores
RAM
RAM
32 GB
Space
Space
200 GB SSD
Bandwidth
Bandwidth
Unlimited
KVM-SSD 32768 Linux

93.5

При оплате за год

-7.1%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
100 GB HDD
Bandwidth
Bandwidth
Unlimited
wKVM-HDD 4096 Windows

21

При оплате за год

-5%

CPU
CPU
3 Xeon Cores
RAM
RAM
1 GB
Space
Space
40 GB HDD
Bandwidth
Bandwidth
Unlimited
wKVM-HDD 1024 Windows

12.1

При оплате за год

-20.5%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
8 TB
KVM-SSD 8192 Metered Linux

57

При оплате за год

-15.6%

CPU
CPU
3 Xeon Cores
RAM
RAM
1 GB
Space
Space
20 GB SSD
Bandwidth
Bandwidth
30 Mbps
DDoS Protected SSD-KVM 1024 Linux

38

При оплате за год

-20.4%

CPU
CPU
2 Xeon Cores
RAM
RAM
2 GB
Space
Space
30 GB SSD
Bandwidth
Bandwidth
300 GB
KVM-SSD 2048 HK Linux

18

При оплате за год

-10%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
100 GB HDD
Bandwidth
Bandwidth
300 Gb
KVM-HDD HK 4096 Linux

12.12

При оплате за год

-12.3%

CPU
CPU
6 Xeon Cores
RAM
RAM
16 GB
Space
Space
150 GB SSD
Bandwidth
Bandwidth
Unlimited
10Ge-wKVM-SSD 16384 Windows

237

При оплате за год

-9.7%

CPU
CPU
10 Epyc Cores
RAM
RAM
64 GB
Space
Space
300 GB NVMe
Bandwidth
Bandwidth
Unlimited
wKVM-NVMe 65536 Windows

193

При оплате за год

-10%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
100 GB HDD
Bandwidth
Bandwidth
Unlimited
KVM-HDD 4096 Linux

15

При оплате за год

Другие статьи на эту тему

cookie

Принять файлы cookie и политику конфиденциальности?

Мы используем файлы cookie, чтобы обеспечить вам наилучший опыт работы на нашем сайте. Если вы продолжите работу без изменения настроек, мы будем считать, что вы согласны получать все файлы cookie на сайте HostZealot.