Поиск по сайту:

Установите Debian 9 (Stretch) через сетевой загрузочный сервер PXE


На этой странице

  1. Требования
  2. Исходная конфигурация
  3. Установка и настройка сервера ISC-DHCP
  4. Установить TFTP-сервер
  5. Развертывание файлов сетевой загрузки Debian 9

В этом руководстве мы расскажем вам, как установить последнюю версию сервера Debian 9 через сервер PXE с удаленными источниками HTTP-зеркал в Интернете, предлагаемыми зеркалами архива Debian. Сервер DHCP, который мы будем использовать в этом руководстве для настройки среды PXE, будет сервером ISC-DHCP, а файлы сетевой загрузки Debian будут обслуживаться в локальной сети сервером TFTPD-HPA. Установка системы через PXE может повысить скорость установки, а также в случае развертывания нескольких установок Debian за короткий период времени или в случаях, когда машины не оборудованы модулем CD/DVD ROM.

Требования

  • Debian 9, установленный на чистом железе или на виртуальной машине.
  • Сетевой интерфейс, настроенный со статическим IP-адресом для сегмента сети, который будет использоваться для динамического выделения IP-адреса и других связанных настроек DHCP и PXE.
  • Локальная или удаленная учетная запись с привилегиями root на сервере Debian или прямой доступ к учетной записи root через консоль сервера или удаленный доступ через SSH.
  • Для установки Debian по сети требуется подключение к Интернету.

Начальная конфигурация

На первом этапе вам необходимо убедиться, что система Debian, которую мы будем использовать для установки новых серверов, имеет сетевой интерфейс, который будет использоваться для привязки к DHCP-серверу, настроенному со статическим IP-адресом.

Чтобы вручную настроить карту сетевого интерфейса, откройте файл сетевых интерфейсов и отредактируйте следующие строки с помощью предпочитаемого вами текстового редактора, например nano. Замените строки настроек IP, описанные ниже, чтобы они соответствовали вашим собственным сетевым конфигурациям.

sudo nano /etc/network/interfaces

Выдержка из файла Интерфейсы:

auto ens33
iface ens33 inet static
address 192.168.1.102
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.2 8.8.4.4
dns-search debian.local

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

ifdown ens33
ifup ens33

Чтобы проверить, настроен ли новый IP-адрес для сетевого интерфейса, введите следующую команду.

ip a

Иногда настройки IP не применяются при простом перезапуске сетевого демона или отключении и включении интерфейса. В этом случае вы должны перезагрузить систему с помощью следующей команды.

init 6

Или

systemctl reboot

Вы также должны выполнить полное обновление системы, выполнив следующие команды:

apt update
apt upgrade

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

apt install wget bash-completion unzip

Установите и настройте сервер ISC-DHCP.

Чтобы настроить DHCP-сервер и конфигурацию PXE, войдите в систему с учетной записью root или учетной записью с привилегиями root и установите пакет isc-dhcp-server из репозитория Debian 9, выполнив следующую команду: команда.

apt install isc-dhcp-server

Теперь создайте резервную копию основного файла конфигурации сервера ISC-DHCP и отредактируйте файл конфигурации сервера dhcpc, чтобы он содержал следующие параметры.

mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.backup
nano /etc/dhcp/dhcpd.conf

Выдержка из файла dhcpcd.conf:

ddns-update-style none;
option option-128 code 128 = string;
option option-129 code 129 = text;
authoritative;
log-facility local7;
option arch code 93 = unsigned integer 16;

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.50 192.168.1.100;
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
option subnet-mask 255.255.255.0;
option ntp-servers 192.168.1.102;
option time-servers 192.168.1.102;

option domain-name "debian.local";
option domain-name-servers 192.168.1.1, 192.168.1.2;
allow booting;
allow bootp;
if option arch = 00:07 or option arch = 00:09 {
filename "bootnetx64.efi";
} else {
filename "pxelinux.0";
}
next-server 192.168.1.102;

#default lease 4H, max lease 8H
default-lease-time 14400;
max-lease-time 28800;

}

host nas {
hardware ethernet 00:17:a4:f6:b2:2e;
fixed-address 192.168.1.105;
}

В приведенном выше файле конфигурации замените следующие строки соответствующим образом.

subnet {..
range 192.168.1.50 192.168.1.100;

Чтобы определить свой собственный диапазон сети для DHCP для выделения IP-адресов этому сегменту сети

option routers=настройте IP-адрес вашего шлюза.

option широковещательный адрес =настроить сетевой широковещательный адрес

option subnet-mask = настроить адрес маски подсети вашей сети

опциональные ntp-серверы

option time-servers = установите IP-адрес сетевого NTP-сервера

option domain-name = укажите доменное имя вашей сети, если оно есть

option domain-name-servers = настроить IP-адреса сетевых DNS-серверов

if option arch=00:07 или option arch=00:09 = если конечное устройство является компьютером на базе UEFI, загрузите с помощью файла bootnetx64.efi или загрузите любые другие машины, не основанные на UEFI, с помощью pxelinux.0 файл. Эти машины обычно представляют собой более старые системы BIOS.

next-server 192.168.1.102 = Это IP-адрес TFTP сервер, где в вашей сети можно найти файл pxelinux.0 или bootnetx64.efi . В этом случае сервер TFTP расположен на той же машине.

default-lease-time =время по умолчанию в секундах, предоставленное IP-адресу до истечения срока его действия.

max-lease-time=максимальное время в секундах, предоставляемое IP-адресу до истечения срока его действия.

host nas {
hardware ethernet 00:17:a4:f6:b2:2e;
fixed-address 192.168.1.105;
}

Вот как статический IP-адрес объявляется на DHCP-сервере. Устройство с MAC-адресом, определенным оператором аппаратного Ethernet , всегда будет получать один и тот же IP-адрес. Объявленное имя хоста не имеет значения. В качестве имени хоста можно использовать любую произвольную строку.

Затем откройте файл isc-dhcp-server в каталоге /etc/default/ для редактирования, перейдите к конец файла и добавьте свою сетевую карту, настроенную со статическим IP-адресом, в строку интерфейсов IPv4, как описано в приведенном ниже примере. Убедитесь, что вы добавили соответствующее имя карты сетевого интерфейса. Используйте команды ip или ifconfig, чтобы получить список сетевых интерфейсов вашего компьютера и найти правильное имя.

nano /etc/default/isc-dhcp-server

Выдержка из файла isc-dhcp-server по умолчанию:

INTERFACESv4=”ens33”

Наконец, перезапустите демон DHCP, чтобы изменения вступили в силу. Проверьте состояние службы DHCP, введя приведенную ниже команду, чтобы убедиться, что служба запущена.

systemctl restart isc-dhcp-server.service
systemctl status isc-dhcp-server.service

Кроме того, выполните команду ss или netstat, чтобы получить список всех открытых сокетов DHCP-сервером.

netstat –tulpn
ss –tulpn

Если утилита netstat не установлена в вашей системе, введите следующую команду, чтобы установить ее.

apt install net-tools

Установить TFTP-сервер

Чтобы обслуживать файлы сетевой загрузки, необходимые клиентам для удаленной загрузки Debian через PXE и TFTP, вам также необходимо установить в вашей системе сервер TFTP. Одним из наиболее распространенных и защищенных TFTP-серверов, доступных для локальных сетей, является сервер tftpd-hpa. Пакеты TFTP-HPA можно установить из официальных репозиториев, предлагаемых Debian 9. Выполните приведенную ниже команду, чтобы установить сервер tftpd-hpa в Debian 9.

apt install tftpd-hpa

После установки пакета откройте файл конфигурации TFTPD-HPA по умолчанию и убедитесь, что файл имеет указанное ниже содержимое.

nano /etc/default/tftpd-hpa

Выдержка из файла tftpd-hpa :

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"

Если строка TFTP_OPTIONS имеет указанное ниже содержимое, убедитесь, что вы удалили флаг --create, чтобы защитить сервер TFTP.

TFTP_OPTIONS="--secure --create"

Флаг create позволяет удаленным клиентам загружать файлы на сервер tftp. Эта опция опасна, потому что произвольные пользователи могут загружать или удалять файлы из корневого пути TFTP-сервера.

Наконец, включите службу для всей системы, запустите сервер TFTP и проверьте состояние демона tftp, выполнив следующую серию команд:

systemctl enable tftpd-hpa
systemctl start tftpd-hpa
systemctl status tftpd-hpa

Вы также должны выполнить команду netstat или ss, чтобы получить список всех открытых сетевых сокетов в состоянии прослушивания в вашей системе. В сетевом стеке должны быть открыты следующие порты UDP, необходимые для серверов DHCP и TFTP: 67 и 69. Вы должны открыть эти порты в своем брандмауэре, выполнив следующие команды:

ufw allow 67/udp
ufw allow 69/udp

Если вы используете необработанные правила iptables для управления политикой брандмауэра на сервере Debian, добавьте следующие правила, чтобы разрешить входящему трафику UDP портов 67 и 69 проходить через брандмауэр, чтобы клиенты могли получить доступ к DHCP и TFTP. серверы.

apt-get install iptables-persistent
iptables -A INPUT -p udp --dport 67 -j ACCEPT
iptables -A INPUT -p udp --dport 69 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload

На следующем шаге установите утилиты загрузчика Syslinux, выполнив следующую команду.

apt install syslinux-utils syslinux

Развертывание файлов сетевой загрузки Debian 9

Затем перейдите на веб-страницу Debian netinstall по следующему адресу https://www.debian.org/distrib/netinst и загрузите последнюю версию tar-архива Debian netboot с помощью утилиты командной строки wget.

wget http://ftp.nl.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz

После загрузки tar-архива Debian netinstall извлеките содержимое архива непосредственно в корневой путь TFTP, выполнив приведенную ниже команду.

tar xfz netboot.tar.gz -C /srv/tftp/

Также скопируйте файл memdisk, предоставленный пакетом Syslinux, в корневой путь TFTP и выведите список содержимого каталога TFTP, выполнив следующие команды. Каталог /srv/tftp должен иметь содержимое, как показано на снимке экрана ниже.

cp /usr/lib/syslinux/memdisk /srv/tftp/
ls /srv/tftp/

Затем создайте символическую ссылку для файла загрузчика UEFI, предоставленного пакетом Debian netinstall, на корневой путь TFTP, выполнив приведенную ниже команду. Кроме того, сделайте длинный список каталога TFTP, чтобы увидеть, правильно ли программная ссылка указывает на файл сетевой загрузки UEFI.

ln -s /srv/tftp/debian-installer/amd64/bootnetx64.efi /srv/tftp/
ls -l /srv/tftp/

Сервер PXE считывает и выполняет файлы конфигурации, расположенные в каталоге pxelinux.cfg, по корневому пути TFTP в следующем порядке: файлы GUID, файлы MAC и файл по умолчанию. Каталог pxelinux.cfg уже создан и заполнен необходимым файлом конфигурации PXE по умолчанию, поскольку ранее мы извлекли необходимые файлы сетевой загрузки из архива Debian netinstall в каталог /srv/tftp. Нет необходимости дополнительно изменять файл конфигурации PXE по умолчанию из каталога pxelinux.cfg. Однако файл, который фактически управляет начальным меню загрузки Debian, называется txt.cfg и находится в папке /srv/tftp/debian-installer/amd64/boot-screens/ каталог. Файл конфигурации pxe по умолчанию из каталога pxelinux.cfg фактически представляет собой программную ссылку, указывающую на файл txt.cfg. Чтобы изменить или добавить другие параметры, которые необходимо передать ядру во время процесса загрузки по сети, или добавить другие записи или загрузить другие дистрибутивы Linux через сервер PXE, вы должны открыть файл конфигурации PXE по умолчанию txt.cfg с помощью приведенной ниже команды и внести соответствующие изменения.

 nano /srv/tftp/debian-installer/amd64/boot-screens/txt.cfg

Выдержка из файла txt.cfg :

label install
menu label ^Install
kernel debian-installer/amd64/linux
append vga=788 initrd=debian-installer/amd64/initrd.gz --- quiet

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

label rescue
menu label ^Rescue mode
kernel debian-installer/amd64/linux
append vga=788 initrd=debian-installer/amd64/initrd.gz rescue/enable=true --- quiet

Чтобы добавить записи, необходимые для загрузки Debian по сети в экспертном режиме или для использования режима автоматической установки, добавьте дополнительные конфигурации в файл txt.cfg, как показано в приведенных ниже выдержках.

Экспертная установка:

label expert
menu label ^Expert install
kernel debian-installer/amd64/linux
append priority=low vga=788 initrd=debian-installer/amd64/initrd.gz ---
include debian-installer/amd64/boot-screens/rqtxt.cfg

Автоматическая установка:

label auto
menu label ^Automated install
kernel debian-installer/amd64/linux
append auto=true priority=critical vga=788 initrd=debian-installer/amd64/initrd.gz --- quiet

Кроме того, изучив содержимое этого файла, вы увидите, что изображения kernel и initrd.gz , загружаемые в оперативную память клиента по сетевому протоколу TFTP, после начального PXE-меню располагаются в каталоге /srv/tftp/debian-installer/amd64/. Вы можете изменить только эти два файла для будущих обновлений ядра Debian и initrd.gz.

Вот и все! Теперь есть возможность загрузить клиентскую машину по сети, использовать все записи, которые обычно отображаются при загрузке Debian с образа DVD, и начать установку Debian 9 через сервер PXE.

Чтобы увидеть сообщения журнала DHCP, которыми обмениваются клиенты и сервер в режиме реального времени, используйте команду tail для системного системного журнала. DHCP-сервер отбрасывает все свои сообщения журнала в файл системного журнала. Сообщения журнала сервера TFTP можно просмотреть в файле daemon.log. На приведенных ниже снимках экрана показан отрывок из сообщений журнала, выдаваемых серверами DHCP и TFTP.

tailf /var/log/syslog
tailf /var/log/daemon.log

Вы также можете выполнить приведенную ниже команду, чтобы просмотреть сообщения журнала, созданные сервером TFTP.

journalctl -fu tftpd-hpa

Чтобы показать расширенную информацию об аренде, предоставленной DHCP-сервером своим клиентам, отобразите содержимое файла dhcpd.leases с помощью команды cat, как показано в приведенном ниже примере.

cat /var/lib/dhcp/dhcpd.leases

Вот и все! Вы успешно развернули PXE-сервер в своей сети. Теперь вы можете начать установку Debian по сети, настроив клиентскую машину на загрузку через PXE. Вы можете загрузить клиентскую машину по сети, нажав специальную функциональную клавишу во время POST-инициализации машины. Обратитесь к документации поставщика материнской платы вашего компьютера, чтобы узнать правильный ключ сетевой загрузки.

Процесс установки Debian по сети очень похож (за исключением нескольких небольших отличий) на процесс установки системы с помощью ISO-образа DVD или с помощью загрузочного USB-накопителя.