10.1 Настройка PXE с аутентификацией и KICKSTART

Подготовка к сетевой установке PXE
Настройка tftp на сервере
Настройка lighttp на сервере
Подготовка необходимых файлов для начальной загрузки на сервере
Автоматизация развертывания
Подготовка рабочей станции
Настройка установки РЕД ОС по PXE через VNC

Подготовка к сетевой установке РЕД ОС в PXE

Для установки РЕД ОС по сети на рабочую станцию первоначально необходимо настроить DHCP сервер на машине.

Если вы используете РЕД ОС версии 7.1 или 7.2, выполните команду:

# yum install dhcp

Если вы используете РЕД ОС версии 7.3 и старше, выполните команду:

# dnf install dhcp

Создание конфигурационного файла:

# nano /etc/dhcp/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 {# диапазон ip адресов организации
option subnet-mask 255.255.255.0;
option routers 192.168.1.38;#Ip машины с pxe
option broadcast-address 192.168.1.255;
range 192.168.1.100 192.168.1.201;
}
default-lease-time 600;
max-lease-time 7200;
allow booting;
allow bootp;
option option-128 code 128 = string;
option option-129 code 129 = text;
next-server 192.168.1.38;
filename "/pxelinux.0";

Перезапустите сервис командой и добавить его в автозагрузку:

# systemctl restart dhcpd
# systemctl enable dhcpd

В случае, если в вашей сети уже существует DHCP-сервер под ОС Windows, необходимо провести его настройку.

Откройте ваш сервер DHCP. Далее в меню Пуск->Администрирование->DHCP. Перейдите в параметры сервера и, с помощью правой кнопки мыши, выберите «Настроить параметры».

Отметьте параметр «066 Имя узла сервера загрузки» и в «Строковое значение» пропишите IP-адрес вашего сервера PXE.

Отметьте параметр «067 Имя файла загрузки» и пропишите в него pxelinux.0

 

Настройка tftp на сервере

Необходимо установить пакет TFTP и syslinux командой:
для РЕД ОС версии 7.1 или 7.2:

# yum install tftp-server syslinux

для РЕД ОС версии 7.3 и старше:

# dnf install tftp-server syslinux

Изменить конфигурационный файл сервиса tftp, который размещается по адресу /usr/lib/systemd/system/tftp.service. Пропишите путь к каталогу, в котором будет развернут pxe сервер в переменную ExecStart, например -s /var/www/html/pxeboot/. Прежде чем вносить изменения в файл, создайте этот каталог командой:

# mkdir -p /var/lib/tftpboot/images/REDOS

пример файла /usr/lib/systemd/system/tftp.service:

[Unit]
Description=Tftp Server
Requires=tftp.socket
Documentation=man:in.tftpd
[Service]
ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot/
StandardInput=socket
[Install]
Also=tftp.socket

Далее необходимо перезапустить сервис tftp командой и добавить его в автозагрузку:

# systemctl daemon-reload
# systemctl restart tftp
# systemctl enable tftp

Настройка lighttp на сервере

Установите LIGHTTPD на сервер командой:
для РЕД ОС версии 7.1 или 7.2:

# yum install lighttpd

для РЕД ОС версии 7.3 и старше:

# dnf install lighttpd

В файл конфигурации /etc/lighttpd/lighttpd.conf вносятся изменения командами:

sed -i 's/var.server_root = "\/var\/www"/var.server_root = "\/var\/lib\/tftpboot"/g' /etc/lighttpd/lighttpd.conf
sed -i 's/server.use-ipv6 = "enable"/server.use-ipv6 = "disable"/g' /etc/lighttpd/lighttpd.conf
sed -i 's/#server.bind = "localhost"/server.bind = "192.168.1.38"/g' /etc/lighttpd/lighttpd.conf
sed -i 's/server.document-root = server_root + "\/lighttpd"/server.document-root = server_root/g' /etc/lighttpd/lighttpd.conf

где, в параметре server.bind = «192.168.1.38»  — указывается  ip-адрес сервера PXE.
Перезапустить сервис httpd командой и добавить его в автозагрузку:

# systemctl restart lighttpd
# systemctl enable lighttpd
# systemctl enable NetworkManager-wait-online.service

Подготовка необходимых файлов для начальной загрузки на сервере

Для разворачивания установки PXE необходимо скопировать в каталог установки необходимые файлы, для этого выполните:

# cp /usr/share/syslinux/chain.c32 /var/lib/tftpboot/
# cp /usr/share/syslinux/mboot.c32 /var/lib/tftpboot/
# cp /usr/share/syslinux/memdisk /var/lib/tftpboot/
# cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
# cp /usr/share/syslinux/ldlinux.c32 /var/lib/tftpboot/
# cp /usr/share/syslinux/libutil.c32 /var/lib/tftpboot/

Выполните команду:

# mkdir -p /var/lib/tftpboot/pxelinux.cfg

Создаете файл меню с содержимым:

# nano /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
PROMPT 0
TIMEOUT 150
MENU TITLE PXE Menu
LABEL REDOS 7.2
MENU LABEL REDOS 7.2
MENU PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0
KERNEL images/REDOS/images/pxeboot/vmlinuz
APPEND initrd=images/REDOS/images/pxeboot/initrd.img ramdisk_size=128000 ip=dhcp method=http://192.168.1.38/images/REDOS/ devfs=nomount

При использовании параметра MENU PASSWD пароль можно задать либо как есть, либо использовать алгоритм хеширования, выбрав соответствующую сигнатуру

Алгоритм Сигнатура
MD5 $1$
SHA-2-256 $5$
SHA-2-512 $6$

Для создания хэш пароля применяется следующая последовательность команд:

python -c "import random,string,crypt;
randomsalt = ''.join(random.sample(string.ascii_letters,8));
print crypt.crypt('Qwerty', '\$1\$%s\$' % randomsalt)"

Таким образом для пароля Qwerty и алгоритма MD5

MENU PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0

Далее необходимо распаковать содержимое установочных дисков (установочный диск представляет собой образ в формате iso) в соответствующие каталоги. Для этого необходимо в корневом каталоге создать папку с названием iso при помощи команды:

# mkdir /mnt/iso
# cd /путь/до/iso

Смонтировать образ системы в папку /mnt/iso, для этого воспользоваться командой mount:

# mount -t iso9660 -o loop redos-MUROM-7.2-x86_64-DVD1.iso /mnt/iso

Скопировать содержимое установочных файлов при помощи команды cp:

# cp -vR /mnt/iso/* /var/lib/tftpboot/images/REDOS/

Размонтировать образ при помощи команды umount:

# umount /mnt/iso

Переведите selinux в режим Permissive.

На время настройки сервиса переведите selinux в режим уведомлений. Для этого измените содержимое конфигурационного файла:

nano /etc/selinux/config

Заменив текст SELINUX=enforcing на SELINUX=permissive
Выполните:

setenforce 0

Более подробно см.ссылку
Не забудьте включить selinux после завершения настройки.

Дайте права всем на файл pxelinux.0.

# chmod 777 /var/lib/tftpboot/pxelinux.0

Автоматизация развертывания

Для создания файла kickstart нужно использовать графическую утилиту system-config-kickstart. Для её установки необходимо выполнить команду:
для РЕД ОС версии 7.1 или 7.2:

yum install system-config-kickstart

для РЕД ОС версии 7.3 и старше:

dnf install system-config-kickstart

Создать файл ks.cfg с помощью программы и поместить его в каталог с установочными файлами ос. Например:

# cp ks.cfg /var/lib/tftpboot
Пример файла ks.cfg
# Здесь указываем раскладку клавиатуры
keyboard --vckeymap=us --xlayouts='us','ru' --switch='grp:alt_shift_toggle'
# Системная локаль
lang ru_RU.UTF-8

# Информация о сетевом интерфейсе и имя машины
network  --bootproto=dhcp --device=enp2s0 --noipv6 --activate
network  --hostname=hostname1337

# Пароль Root представлен в виде хэш-суммы
rootpw --iscrypted $6$DUu0yyOYMRbGS8gL$9zHYPsxROGEZdDKG0wnf7h8SGnKOp3V272De6oGTVUsz2uBLmEeiR6T6cInRN5dyWcxNXh5fVluEUTQ/3rmzB0
# Настройка сервисов (в данном случае сервис по обновлению меток времени и дат)
services --enabled="chronyd"
# Настройка временной зоны
timezone Europe/Moscow --isUtc
#Настройка локального пользователя
user --groups=wheel --name=mekka --password=$6$83fyYZ7KMS7G9t6A$E5/99/ffOwjUOo8THr1ngqGDdKMimpTZf3IT9S/SI98BTV7dta7GksLYnQEZjtqqyZQrwibSRlvYccRqHB7m8/ --iscrypted --gecos="Mekka"
# Настройка xorg при загрузке
xconfig  --startxonboot
# Указание загрузочного сектора и тип структуры
bootloader --location=mbr --boot-drive=sda
# Удаление всей информации с партиций для последующей установки
clearpart --none --initlabel
# Здесь указана вся разметка диска
part /boot --fstype="xfs" --onpart=sda2
part biosboot --fstype="biosboot" --noformat --onpart=sda4
part pv.31 --fstype="lvmpv" --noformat --onpart=sda3
part /boot/efi --fstype="efi" --onpart=sda1 --fsoptions="umask=0077,shortname=winnt"
volgroup ro --noformat --useexisting
logvol swap  --fstype="swap" --useexisting --name=swap --vgname=ro
logvol /home  --fstype="xfs" --noformat --useexisting --name=home --vgname=ro
logvol /  --fstype="ext4" --useexisting --name=root --vgname=ro
#дополнительные пакеты для установки
%packages
@^mate-desktop-environment
@backup-client
@base
@branding
@core
@desktop-debugging
@dial-up
@directory-client
@fonts
@guest-agents
@guest-desktop-agents
@input-methods
@internet-applications
@internet-browser
@java-platform
@mate-desktop
@multimedia
@network-file-system-client
@print-client
@x11
chrony

%end
#настройка аварийных дампов памяти в случае сбоев (оставить как есть)
%addon com_redhat_kdump --enable --reserve-mb='auto'

%end
#настройка анаконды (оставить как есть)
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
Или воспользоваться вариантом — скопировать дефолтный ks.cfg созданный системой при установке:

# cp /root/anaconda-ks.cfg /var/lib/tftpboot

Переименуйте файл:

# mv /var/lib/tftpboot/anaconda-ks.cfg /var/lib/tftpboot/ks.cfg

Добавить в конфигурацию пункта меню pxe, в строку append параметр ks. Пример:

# nano /var/lib/tftpboot/pxelinux.cfg/default

…
APPEND initrd=images/REDOS/images/pxeboot/initrd.img ramdisk_size=128000 ip=dhcp method=http://192.168.1.38/images/REDOS/ devfs=nomount ks=http://192.168.1.38/ks.cfg
…

Подготовка рабочей станции

Для установки ОС на рабочей станции выбираем загрузку по сети: «Network Boot Agent» или «PXE boot».

Важно
Необходимо чтобы загрузка по PXE была активирована в BIOS. Настройка может называться по-разному в зависимости от версии BIOS и производителя материнской платы. Необходимо ознакомиться со спецификацией на конкретную материнскую плату.

Настройка установки РЕД ОС по PXE через VNC

Создаете файл меню с содержимым:

# nano /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
PROMPT 0
TIMEOUT 150
MENU TITLE PXE Menu
LABEL REDOS 7.2
MENU LABEL REDOS 7.2
MENU PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0
KERNEL images/REDOS/images/pxeboot/vmlinuz
APPEND initrd=images/REDOS/images/pxeboot/initrd.img ramdisk_size=128000 ip=dhcp method=http://192.168.1.38/images/REDOS/ devfs=nomount inst.vnc inst.vncpassword=password

В данном файле конфигурации параметр TIMEOUT 150 — счётчик времени, после которого будет запущена установка автоматически.

Параметры в конце строки APPEND:

inst.vnc inst.vncpassword=password

дают возможность подключиться по протоколу VNC, для удалённой настройки установки РЕД ОС, зная IP-адрес машины, порт и заданный пароль.

IP-адрес можно увидеть после того, как произойдёт первичная загрузка сервисов после меню:

Вместо этих параметров можно указать:

inst.vnc inst.vncconnect=узел:порт

Где узел:порт — это заранее известные ip-адрес и порт машины, с которой будет производиться настройка установки.

После того, как эти параметры заданы, на удалённой машине нужно запустить VNC-клиент «Меню-Интернет-Remmina», выбрать тип подключения VNC и ввести IP-адрес:порт. После этого придёт запрос пароля:

В случае, когда был настроен конкретный удалённый компьютер для контроля установки, в Remmina нажмите на кнопку «Плюс» слева вверху и введите настройки порта, на котором он будет ждать запрос:

Если всё настроено верно, то в итоге мы получим возможность удалённой настройки подключившись по vnc:

Если вы нашли ошибку, выделите текст и нажмите Ctrl+Enter.

Print Friendly, PDF & Email