Автоматическая установка 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