Автоматическая установка AstraLinux по сети
В первую очередь необходимо настроить установку по сети с сервера. Для этого на сервере нужно настроить DHCP-, TFTP-, FTP-сервисы, разместить файлы для установки системы в нужной папке. А чтобы система устанавливалась автоматически, необходим файл ответов. Обо всём этом ниже по шагам.
1.Установка необходимых пакетов
sudo apt install isc-dhcp-server tftpd-hpa pxelinux syslinux vsftpd
Где:
isc-dhcp-server - DНCP-сервер; tftpd-hpa - TFTP-сервер; pxelinux - загрузчик для сетевой загрузки PXE; syslinux - загрузчик для сетевой загрузки DOS FAT / NTFS; vsftpd — FTP-сервер.
Служба tftpd после установки запускается автоматически и сразу предоставляет доступ к каталогу /srv/tftp/, в котором далее и будут размещены файлы для сетевой загрузки.
2. Настройка DHCP
1) прописать сетевой интерфейс в файле /etc/default/isc-dhcp-server:
DHCPDv4_CONF=/etc/dhcp/dhcpd.conf
INTERFACESv4="eth0"
2) Настроим /etc/dhcp/dhcpd.conf.
В данной конфигурации dhcp сервер будет определять тип клиента (UEFI или Legacy BIOS) и отдавать ему нужный загрузчик.
authoritative;
option domain-name "my.dom";
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
option domain-name-servers 8.8.8.8;
allow booting;
allow bootp;
option fqdn.no-client-update on;
option fqdn.rcode2 255;
option pxegrub code 150 = text ;
next-server 192.168.56.1;
option architecture code 93 = unsigned integer 16 ;
if option architecture = 00:07 {
filename "bootx64.efi";
} elsif option architecture = 00:09 {
filename "bootx64.efi";
} else {
filename "pxelinux.0";
}
subnet 192.168.56.0 netmask 255.255.255.0 {
range 192.168.56.20 192.168.56.250;
option domain-name "my.dom";
option broadcast-address 192.168.56.255;
option routers 192.168.56.1;
option subnet-mask 255.255.255.0;
}
3) После внесения изменений в настройки перезапустим сервис:
sudo service isc-dhcp-server restart
3. Настройка FTP-сервера
1) Пропишем настройки сервера в файле /etc/vsftpd.conf
listen=NO
listen_ipv6=YES
anonymous_enable=YES
local_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
2) Изменим домашний каталог пользователя:
sudo usermod -d /srv ftp
3) Перезагрузим сервис:
sudo service vsftpd restart
4. Загрузка по сети.
Для загрузки по сети нужны следующие файлы:
pxelinux.0;
библиотеки syslinux;
ядро ОС;
специальный initrd.
Эти файлы находятся на установочном диске в каталоге netinst.
1) Создадим папку для репозитория /srv/repo/smolensk/ и примонтируем туда дистрибутив (это может быть как образ, так и непосредственно установочный диск).
sudo mkdir -p /srv/repo/smolensk/
При использовании установочного диска:
sudo mount /dev/sr0 /srv/repo/smolensk/
Или при использовании образа:
sudo mount smolensk-1.6-20.06.2018_15.56.iso /srv/repo/smolensk/
2) Создадим папку /srv/tftp/smolensk/, куда положим ядро и initrd. И скопируем эти файлы в папку:
sudo mkdir -p /srv/tftp/smolensk/
sudo cp /srv/repo/smolensk/netinst/linux /srv/tftp/smolensk/
sudo cp /srv/repo/smolensk/netinst/initrd.gz /srv/tftp/smolensk/
3) Скопируем в каталог /srv/tftp/ файл pxelinux.0 и необходимые библиотеки syslinux:
sudo cp /usr/lib/PXELINUX/pxelinux.0 /srv/tftp/
sudo cp /usr/lib/syslinux/modules/bios/{chain.c32,ldlinux.c32,libcom32.c32,libutil.c32,menu.c32} /srv/tftp/
Pxelinux -- это PXE-версия универсального загрузчика SYSLINUX. Функционал Pxelinux может быть расширен за счёт COM32 модулей SYSLINUX. Этими модулям мы и воспользовалисью
4) Создадим каталог /srv/tftp/pxelinux.cfg/:
sudo mkdir -p /srv/tftp/pselinux.cfg
5) И создадим в этом каталоге файл меню /srv/tftp/pxelinux.cfg/default со следующим содержимым:
ui menu.c32
PROMPT 0
MENU TITLE PXE Boot menu
TIMEOUT 50
DEFAULT local
LABEL local
MENU LABEL Boot from local drive
kernel chain.c32
append hd0
# Astra Linux SE Smolensk
LABEL netinstall
MENU LABEL Start Astra Linux Smolensk net install
kernel smolensk/linux
append initrd=smolensk/initrd.gz modprobe.blacklist=evbug auto=true priority=critical debian-installer/locale=en_US console-keymaps-at/keymap=ru hostname=astra16 domain=my.dom astra-license/license=true url=tftp://192.168.56.1/smolensk/preseed.cfg interface=auto netcfg/dhcp_timeout=60
TIMEOUT 1
В этом файле необходимо указать свои следующие параметры:
hostname - имя хоста, которое будет использована при автоматической установке ОС;
domain - имя домена ;
url - адрес, по которому должны быть доступны конфигурационные файлы.
По умолчанию в файле на первом месте стоит загрузка с локального жёсткого диска, чтобы после установки и перезагрузки система автоматически не стала снова устанавливаться.
5. Загрузчик
Для загрузки в режиме UEFI служит специальный EFI образ загрузчика grub, который можно скачать здесь
1)Распаковать архив netinst.tar.gz в /srv/tftp
sudo tar xvf netinst.tar.gz -C /srv/tftp
2) Конфигурационный файл /srv/tftp/debian-installer/amd64/grub/grub.cfg привести к виду:
if loadfont $prefix/font.pf2 ; then
set gfxmode=800x600
set gfxpayload=keep
insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
insmod gfxterm
insmod png
terminal_output gfxterm
fi
if background_image /isolinux/splash.png; then
set color_normal=light-gray/black
set color_highlight=white/black
else
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
fi
menuentry "Boot default EFI bootloader" {
set background_color=black
regexp -s root '\((.+)\)' "$cmdpath"
chainloader /EFI/Boot/Bootx64.efi
}
# Установка Astra Linux SE Смоленск
menuentry 'Install Astra Linux SE Smolensk' {
set background_color=black
linux /smolensk/linux modprobe.blacklist=evbug debian-installer/allow_unauthenticated=true auto=true priority=critical debian-installer/locale=en_US console-keymaps-at/keymap=ru hostname=test2 domain=my.dom astra-license/license=true url=tftp://192.168.56.1/smolensk/preseed.cfg interface=auto netcfg/dhcp_timeout=60
initrd /smolensk/initrd.gz
}
Не забываем указать в файле правильно все необходимые параметры (имена хоста и домена, а также путь к файлам). В пути url=tftp://192.168.56.1/smolensk/preseed.cfg указан файл ответов, который необходим для автоматической установки. В следующем пункте его и рассмотрим.
6. Автоматическая установка.
1) Для автоматической установки необходим файл preseed.cfg. Общий вид его можно скачать отсюда.
2) Этот файл скопируем в каталог установочных файлов /srv/tftp/smolensk/, переименовав в preseed.cfg:
sudo cp preseed_smol.cfg /srv/tftp/smolensk/preseed.cfg
Рассмотрим этот файл и изменим нужные строки.
3) Укажем путь к директории, где лежит репозиторий:
# Репозиторий для установки
# Если вы выберете ftp, то mirror/country string устанавливать не нужно.
d-i mirror/protocol string ftp
d-i mirror/country string manual
d-i mirror/ftp/hostname string 192.168.56.1
d-i mirror/ftp/directory string /repo/smolensk
4) Не забудем указать учётную запись и пароли:
# Пароль суперпользователя, любой открытым текстом
d-i passwd/root-password password very_string_password
d-i passwd/root-password-again password very_string_password
# или в виде MD5 хеша.
#d-i passwd/root-password-crypted password [MD5 хеш]
# Создать учётную запись обычного пользователя.
d-i passwd/user-fullname string ahv
d-i passwd/username string ahv
# Пароль обычного пользователя, или открытым текстом
d-i passwd/user-password password very_string_password
d-i passwd/user-password-again password very_string_password
Если у вас остались вопросы, пишите нам ipc@nnz.ru
Last updated
Was this helpful?