1. Блог Админа
  2. >
  3. Компьютерное
  4. >
  5. Установка Debian 9 (Stretch)...

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

В этом руководстве я расскажу как установить последнюю версию сервера Debian 9 через PXE-сервер с удаленных зеркал.

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

Требования

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

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

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

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

Примерное содержимое файла:

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

Для проверки того что новый IP адрес был применен для сетевого интерфейса можно выполнить следующую команду:

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

или

Так же перед продолжением советую выполнить полное обновление системы, если вы по каким-либо причинам его ещё не сделали:

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

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

Следующий шаг — установка сервера DHCPи настройка PXE, для этого войдите в систему под root или под аккаунтом с привилегиями root и установите пакет isc-dhcp-server из репозитория Debian 9.

Теперь сохраните резервную копию основного файла настроек сервера ISC-DHCP  и измените содержимое конфигурационного файла на следующие настройки:

Содержимое dhcpcd.conf:

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

Для определения диапазона сети в котором DHCP будет выделять IP адресадля вашего сегмента сети

option routers = IP вашего шлюза

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

option subnet-mask = маска подсети

option ntp-servers

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

option domain-name = доменное имя вашей сети

option domain-name-servers = IP адреса ваших DNS серверов

if option arch = 00:07 or 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 адреса.

Тут показано как статичный IP адрес объявляется DHCP сервером. Устройство с MAC адресом указанным в hardware ethernet всегда будет получать один и тот же IP адрес. Имя хоста указанное как nas — не имеет ззначения. вы можете указать любую произвольную строку.

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

Вывод  файла isc-dhcp-server

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

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

Если утилита netstat не установлена в системе вы можете установить её этой командой:

Установка TFTP сервера

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

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

Вывод файла tftpd-hpa:

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

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

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

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

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

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

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

Далее, идем на страницу Debian с файлами сетевой установки  по адресу https://www.debian.org/distrib/netinst и качаем последнюю версию архива Debian netboot используя утилиту wget.

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

Так же скопируйте файл memdisk поставляемый пакетом Syslinux в корень TFTP и осмотрите содержимое директории TFTP. Директория /srv/tftp должна иметь содержимое как показано на скриншоте.

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

Сервер 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-сервер, вы должны открыть файл конфигурации txt.cfg PXE по умолчанию с помощью следующей команды и сделать соответствующие изменения.

txt.cfg:

Стандартная установка:

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

Режим восстановления:

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

Установка в режиме Expert:

Установка в автоматическом режиме:

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

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

Для просмотра сообщений записываемых в журнал DHCP, которыми обмениваются клиенты и сервер в режиме реального времени, используйте команду tail для файла системного лога syslog.

Записи журнала TFTP-сервера можно посмотреть в файле daemon.log. Нижеприведенные скриншоты иллюстрируют выдержку записей журнала, выданных серверами DHCP и TFTP.

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

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

В итоге: у вас теперь есть в вашей сети PXE сервер. Вы можете запускать установку Debian по сети настроив ваши клиентские машины на загрузку по PXE. Вы можете запускать сетевую загрузку клиентских машин по нажатию специальных клавиш во время прохождения инициализации POST. Какие это клавиши, вам потребуется узнавать из документации производителя вашей материнской платы.

Сам процесс установки Debian по сети очень простой и (за несколькими незначительными отличиями) в принципе такой же как установка с DVD или загрузочной USB flash.

Автор: Mirivlad

Скромный труженик консоли и окошек.

Комментарии:

Добавить комментарий