3. Установка ОС на физические серверы#
Установка ОС на физические серверы проводится в автоматическом режиме. Прежде чем приступать к установке, необходимо выяснить конфигурацию накопителей и сетей, подключенных к серверам.
Если диски подключены к серверам непосредственно, то, скорее всего, они подключены через RAID-контроллер. Выбор конфигурации RAID-массива остается на усмотрение администратора.
Рекомендуемый конечный объем тома, выделяемого под ОС — от 200 до 500 ГБ, в зависимости от потребностей. В случае, если диски являются лунами СХД и приходят по FibreChannel (FC), установка возможна по одному из путей с последующей установкой и настройкой multipathd
на установленной ОС. Размер выделяемого луна будет находиться в том же диапазоне.
Помимо конфигурации накопителей, необходимо также предварительно выяснить MAC-адреса сетевых интерфейсов, подключенных к сети для автоматической сетевой установки ОС. Как правило, в интерфейсе BMC можно найти MAC-адреса, но альтернативным способом получить информацию о сетевых интерфейсах и накопителях является загрузка из live-образа.
При установке по сети настоятельно рекомендуется использовать режим загрузки UEFI. Если firmware сервера предоставляет выбор между загрузкой по PXE или iPXE — необходимо использовать первую.
3.1. Последовательность установки#
Предполагается, что на bootstrap сервере уже установлены и настроены все компоненты PXE, поэтому для сетевой автоматической установки ОС достаточно:
записать MAC-адреса сетевых интерфейсов серверов в файл
/etc/dhcp/dhcpd.conf
в секциюfixed address
;отредактировать размеры в файле
recipe
, указав желаемый и максимальный размеры root и swap партиций;указать идентификатор целевого диска в файле
preseed
(например,/dev/sda
);просмотреть файл ответов
preseed
и postinst скрипт, внеся изменения, если таковые потребуются;перезапустить целевые серверы, выбрать сетевую загрузку в режиме UEFI;
на каждом сервере выбрать необходимую опцию в появившемся меню GRUB, запустив тем самым процесс установки ОС.
Более подробно процесс настройки описан ниже.
3.2. Подробное описание настройки компонентов PXE#
3.2.1. Подготовка к сетевой установке ОС#
Структра файлов и каталогов PXE сервера представлена на схеме:

Подготовка к автоматической сетевой установке ОС заключается во внесении изменений в конфигурационные файлы:
dhcpd
;recipe
;preseed.cfg
;postinst.sh
.
3.2.2. Настройка DHCP#
Для работы сетевой установки используется сеть 10.0.9.0/24
. L3 адресация не имеет существенного значения, так как сеть существует только в момент процесса установки и до момента завершения настройки сети на установленной ОС. Однако, если менять IP адресацию, необходимо поменять ее во всех конфигурационных файлах. MAC-адреса интерфейсов серверов необходимо записать в файл:
/etc/dhcp/dhcpd.conf
Рекомендуется использовать фиксированные адреса.
Cекцию host раскомментировать и записать нужный MAC-адрес в паре с IP-адресом:
host client1 { hardware ethernet 8e:e8:8e:e8:8e:e8; fixed-address 10.0.9.21; }
Количество секций host будет равно количеству целевых машин.
3.2.3. Настройка recipe#
Файлы recipe
используются утилитой partman
для разбивки целевого диска на партиции в начале процесса установки.
Файлы для методов lvm и regular различаются, но между версиями ОС различий нет, поэтому для множества версий в общем случае достаточно двух файлов recipe.
Выставить лимиты (limits). Три числа означают следующее, слева направо: <minimal size>_<priority>_<maximal size>_<parted fs>
.
Рекомендации по выбору значений priority
:
Для небольших партиций (около 1 ГБ) выставлять равным или большим максимального значения.
Для остальных случаев — выбирать между минимальным и максимальным числами.
3.2.4. Формирование файла ответов preseed.cfg#
Актуализировать значения preseed.cfg
:
# адрес FTP-репозитория
d-i mirror/ftp/hostname string
d-i mirror/ftp/directory string
# ссылка на файл recipe с адресом сервера, где располагаются скрипты (совпадает с адресами DHCP/PXE/TFTP/FTP):
d-i partman/early_command string wget -O /tmp/recipe_regular
ftp://<ip>/recipes/recipe_regular
# выбор между наличием или отсутствием графической оболочки, установка средств виртуализации:
#tasksel tasksel/first multiselect Base
#tasksel tasksel/first multiselect Base, Fly, Fly-ssh
# рекомендуемое значение:
tasksel tasksel/first multiselect Base, Fly, Fly-ssh,
Fly-virtualization
# установка дополнительных пакетов, представленный список предлагается дополнить нужными, список разделяется пробелами:
d-i pkgsel/include string ssh htop ifenslave vlan bridge-utils parted
firefox
# (для LVM) выбрать, какой процент от свободного пространства диска отдать под системную volume группу, рекомендуется выставить max:
d-i partman-auto-lvm/guided_size string 80%
d-i partman-auto-lvm/guided_size string max
# Целевой диск для установки ОС:
d-i partman-auto/disk string /dev/sda
# Имя пользователя:
d-i passwd/username string aicadmin
# Пароль:
d-i passwd/user-password password astra-01
d-i passwd/user-password-again password astra-01
Файлы ответов для версий 1.7.2 и 1.7.4 идентичны.
3.2.5. Postinstall скрипт#
Скрипт postinst.sh
скачивается на целевой сервер на финальном этапе установки и исполняется последним. Пример скрипта:
#!/bin/sh
MIRROR=10.0.9.11
IFACES=interfaces_ph_v1
# remove net.ifnames, update grub
sed -i 's/net.ifnames=0//g' /target/etc/default/grub
in-target update-grub
in-target systemctl enable ssh.service
in-target systemctl disable NetworkManager
in-target systemctl mask NetworkManager
in-target systemctl disable firewalld
in-target systemctl mask firewalld
in-target systemctl enable networking.service
in-target usermod -aG kvm,libvirt,libvirt-qemu,libvirt-admin root
in-target usermod -aG kvm,libvirt,libvirt-qemu,libvirt-admin aicadmin
# update interfaces
wget -O /tmp/interfaces ftp://${MIRROR}/scripts/${IFACES}
cat /tmp/interfaces > /target/etc/network/interfaces
Примечание
Пример не является исчерпывающим, скрипт доступен для любых правок, но пункт с net.ifnames=0
является настоятельной рекомендацией.
Файл настройки интерфейсов interfaces_ph_1
содержит условные данные, необходимо внести изменения в этот файл в соответствии с конфигурацией сети в которой происходит развертывание.
Скрипт должен быть простым, насколько это возможно, исполнять избыточно комплексные скрипты на финальном этапе установки настоятельно не рекомендуется.
3.2.6. Запуск сетевой установки#
Для запуска сетевой установки необходимо на начальном этапе загрузки сервера выбрать сетевую загрузку с соответствующего сетевого интерфейса (PXE IPv4). Если конфигурация выполнена верно, интерфейс получит IP-адрес и загрузит меню GRUB (в случае UEFI) или меню Legacy (в случае BIOS). Далее следует выбрать нужный пункт сетевой установки и дождаться ее завершения. Порядок загрузки будет изменен установщиком автоматически.
Примечание
После установки ОС необходимо донастроить сетевые интерфейсы на физических серверах, в зависимости от топологии сети. Также необходимо удалить все записи из файла /etc/resolv.conf
и поменять имена хостов на aichostN
, где N — порядковый номер физического сервера.