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

Подготовка к сетевой установке PXE

Для сетевой установки на рабочих станциях в необходимо отключить имеющийся DHCP сервер на время установки ОС, либо добавить настройки в уже имеющийся DHCP.

Первоначально необходимо настроить DHCP демон на сервере.

Важно
Для работы DHCP необходим проброс портов 67/udp и 68/udp, для  TFTP  — порт 69/udp, для HTTP — порт 80/tcp на коммутаторе. При отсутствии проброса портов можно настроить установку по PXE на одной из рабочих станций, либо ноутбуке, подключённому в подсеть рабочих станций, но только на момент сетевой установки.

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

Необходимо установить пакет TFTP и syslinux командой:

# yum install tftp-server syslinux

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

# mkdir /var/www/html/pxeboot

пример файла /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/www/html/pxeboot/
StandardInput=socket
[Install]
Also=tftp.socket

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

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

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

Необходимо:

Установить HTTPD на сервер командой:

# yum install httpd

Строку, Options конфигурационного файла /etc/httpd/conf/httpd.conf привести к виду:

Options All Indexes FollowSymLinks

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

# systemctl restart httpd
# systemctl enable httpd

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

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

# cp /usr/share/syslinux/menu.c32 /var/www/html/pxeboot/
# cp /usr/share/syslinux/mboot.c32 /var/www/html/pxeboot/
# cp /usr/share/syslinux/chain.c32 /var/www/html/pxeboot/
# cp /usr/share/syslinux/vesamenu.c32 /var/www/html/pxeboot/
# cp /usr/share/syslinux/memdisk /var/www/html/pxeboot/

Создать папку и конфигурационный файл pxe:

# mkdir /var/www/html/pxeboot/pxelinux.cfg/
# nano /var/www/html/pxeboot/pxelinux.cfg/default

Содержимое файла /var/www/html/pxeboot/pxelinux.cfg/default

default vesamenu.c32
font russian.psf
menu background splash.jpg
prompt 0
timeout 30
ONTIMEOUT local
MENU TITLE PXE_BOOT # заголовок окна
label 1
   menu label ^1) RedOS # заголовок пункта меню
   menu PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0 # пароль для пункта меню
   kernel images/redos/images/pxeboot/vmlinuz # путь до загрузочного файла
   append initrd=images/redos/images/pxeboot/initrd.img # путь до загрузочного файла method=http://192.168.0.5/pxeboot/images/redos/ devfs=nomount # метод получения файлов ос
label 2
   menu label ^2) GosLinux-7.1
   menu PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0
   kernel images/goslinux/images/pxeboot/vmlinuz
   append initrd=images/goslinux/images/pxeboot/initrd.img method=http://192.168.0.5/pxeboot/images/goslinux/ devfs=nomount
menu end

Дополнение

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

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

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

menu PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0

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

# mkdir /mnt/iso

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

# mount -t iso9660 -o loop GosLinux-RTM-x86_64-DVD1.iso /mnt/iso

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

# cp -vR /mnt/iso/* /var/www/html/pxeboot/

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

# umount /mnt/iso

Отключить selinux. Для этого отредактируйте строку в файле /etc/selinux/config. Замените SELINUX=enforcing на  SELINUX=disabled. И выполните команду:

# setenforce 0

Назначить владельцем apache директорию /var/www/html/pxeboot и дать права всем на файл pxelinux.0.

# chown -R apache. /var/www/html/pxeboot
# chmod 777 /var/www/html/pxeboot/pxelinux.0

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

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

yum install system-config-kickstart

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

# cp ks.cfg /var/www/html/pxeboot/images/redos/

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

# nano /var/www/html/pxeboot/pxelinux.cfg/default

…
append initrd=images/redos/images/pxeboot/initrd.img # путь до загрузочного файла method=http://192.168.0.5/pxeboot/images/redos/ devfs=nomount ks=http://192.168.0.5/pxeboot/images/redos/ks.cfg
…

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

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

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

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

Print Friendly, PDF & Email