Подготовка к сетевой установке PXE
Настройка tftp на сервере
Настройка lighttp на сервере
Подготовка необходимых файлов для начальной загрузки на сервере
Автоматизация развертывания
Подготовка рабочей станции
Настройка установки РЕД ОС по PXE через VNC
Подготовка к сетевой установке РЕД ОС в PXE
Для установки РЕД ОС по сети на рабочую станцию первоначально необходимо настроить DHCP сервер на машине.
Выполните команду:
# yum 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 командой:
# yum 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 на сервер командой:
# yum 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.
nano /etc/selinux/config
Заменив текст SELINUX=enforcing
на SELINUX=permissive
Выполните:
setenforce 0
Более подробно см.ссылку
Не забудьте включить selinux после завершения настройки.
Дайте права всем на файл pxelinux.0.
# chmod 777 /var/lib/tftpboot/pxelinux.0
Автоматизация развертывания
Для создания файла kickstart нужно использовать графическую утилиту system-config-kickstart. Для её установки необходимо выполнить:
yum install system-config-kickstart
Создать файл ks.cfg с помощью программы и поместить его в каталог с установочными файлами ос. Например:
# cp ks.cfg /var/lib/tftpbootИли воспользоваться вариантом — скопировать дефолтный 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 через 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: