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

Установите несколько дистрибутивов Linux с помощью сетевой загрузки PXE на RHEL/CentOS 8


PXE-серверСреда предварительной загрузки – это стандартизированная клиент-серверная архитектура, которая предписывает клиентской системе загружать, запускать или устанавливать несколько операционных систем Linux с использованием сетевого интерфейса с поддержкой PXE. в вашей сетевой инфраструктуре.

Требования

    • Установка минимального сервера CentOS 8
    • Установка минимального сервера RHEL 8
    • Настройка статического IP-адреса в RHEL/CentOS 8

В этой статье вы узнаете, как установить и настроить Сервер сетевой загрузки PXE в CentOS/RHEL 8 с использованием зеркальных локальных установочных репозиториев, предоставляемых CentOS 8 . и RHEL 8 ISO-образы.

Для этой настройки Сетевой загрузки PXE мы установим в систему следующие пакеты:

  • DNSMASQ – облегченный сервер пересылки DNS, предоставляющий службы DNS и DHCP с поддержкой PXE и . TFTP сервер.
  • Syslinux – загрузчик Linux, предоставляющий загрузчики для сетевой загрузки.
  • TFTP-сервер – простой протокол передачи файлов, который создает загрузочные образы, доступные для загрузки через сеть.
  • Сервер VSFTPD – безопасный протокол передачи файлов, на котором будет размещаться локально смонтированный зеркальный образ DVD. Он будет действовать как официальный зеркальный установочный репозиторий RHEL/CentOS 8, откуда установщик будет извлекать необходимые пакеты.

Шаг 1. Установите и настройте DNSMASQ-сервер

1. Важно напомнить вам, что один из ваших сетевых интерфейсов должен быть настроен со статическим IP-адресом из того же диапазона IP-адресов сети, который предоставляет услуги PXE.

После настройки статического IP-адреса обновите пакеты системного программного обеспечения и установите демон DNSMASQ.

dnf install dnsmasq

2. После установки DNSMASQ вы найдете его файл конфигурации по умолчанию в каталоге /etc/dnsmasq.conf, который не требует пояснений, но более того. его сложно настроить из-за многочисленных комментариев.

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

mv /etc/dnsmasq.conf  /etc/dnsmasq.conf.backup
nano /etc/dnsmasq.conf

3. Теперь скопируйте и вставьте следующие конфигурации в файл /etc/dnsmasq.conf и измените параметры конфигурации в соответствии с настройками вашей сети.

interface=enp0s3,lo
#bind-interfaces
domain=tecmint
DHCP range-leases
dhcp-range= enp0s3,192.168.1.3,192.168.1.253,255.255.255.0,1h
PXE
dhcp-boot=pxelinux.0,pxeserver,192.168.1.2
Gateway
dhcp-option=3,192.168.1.1
DNS
dhcp-option=6,92.168.1.1, 8.8.8.8
server=8.8.4.4
Broadcast Address
dhcp-option=28,10.0.0.255
NTP Server
dhcp-option=42,0.0.0.0

pxe-prompt="Press F8 for menu.", 60
pxe-service=x86PC, "Install CentOS 8 from network server 192.168.1.2", pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot

Ниже приведены операторы конфигурации, которые необходимо изменить:

  • интерфейс – сетевые интерфейсы сервера должны прослушивать и предоставлять услуги.
  • bind-interfaces – раскомментируйте, чтобы привязать интерфейс к данной сетевой карте.
  • домен – замените его своим доменным именем.
  • dhcp-range – измените его на диапазон IP-адресов вашей сети.
  • dhcp-boot – замените его IP-адресом вашего сетевого интерфейса.
  • dhcp-option=3,192.168.1.1 – замените его на свой сетевой шлюз.
  • dhcp-option=6,92.168.1.1 – замените его на IP-адрес вашего DNS-сервера.
  • server=8.8.4.4 – добавьте IP-адреса DNS-переадресаторов.
  • dhcp-option=28,10.0.0.255 – при необходимости замените его на широковещательный IP-адрес вашей сети.
  • dhcp-option=42,0.0.0.0 – Добавьте сетевые серверы времени (адрес 0.0.0.0 указан для справки).
  • pxe-prompt – оставьте по умолчанию.
  • pxe=service – используйте x86PC для 32-битных/64-битных архитектур и добавьте подсказку описания меню под строковыми кавычками.
  • enable-tftp – включает встроенный TFTP-сервер.
  • tftp-root – добавьте расположение файлов сетевой загрузки /var/lib/tftpboot.

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

Шаг 2. Установите загрузчики SYSLINUX

4. После завершения основной настройки DNSMASQ установите пакет загрузчика Syslinx PXE, используя следующую команду.

dnf install syslinux

5. Загрузчики Syslinx PXE установлены в /usr/share/syslinux. Это можно проверить, выполнив команду ls, как показано.

ls /usr/share/syslinux

Шаг 3. Установите TFTP-сервер и скопируйте его с помощью загрузчиков SYSLINUX.

6. Теперь установите TFTP-сервер и скопируйте все загрузчики Syslinux из /usr/share/syslinux/ в /var/lib. /tftpboot, как показано.

dnf install tftp-server
cp -r /usr/share/syslinux/* /var/lib/tftpboot

Шаг 4. Настройка файла конфигурации PXE-сервера

7. По умолчанию PXE-сервер считывает свою конфигурацию из набора определенных файлов, находящихся в pxelinux.cfg, который должен находиться в каталог, описанный в настройке tftp-root из файла конфигурации DNSMASQ выше.

Сначала создайте каталог pxelinux.cfg и файл default, выполнив следующие команды.

mkdir /var/lib/tftpboot/pxelinux.cfg
touch /var/lib/tftpboot/pxelinux.cfg/default

8. Теперь откройте и отредактируйте файл конфигурации PXE default, указав правильные параметры установки дистрибутива Linux. Также обязательно помните, что пути, заданные в этом файле, должны быть относительными к каталогу /var/lib/tftpboot.

nano /var/lib/tftpboot/pxelinux.cfg/default

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

default menu.c32
prompt 0
timeout 300
ONTIMEOUT local

menu title ########## PXE Boot Menu ##########

label 1
menu label ^1) Install CentOS 8 x64 with Local Repo
kernel centos8/vmlinuz
append initrd=centos7/initrd.img method=ftp://192.168.1.2/pub devfs=nomount

label 2
menu label ^2) Install CentOS 8 x64 with http://mirror.centos.org Repo
kernel centos8/vmlinuz
append initrd=centos8/initrd.img method=http://mirror.centos.org/centos/8/BaseOS/x86_64/os/ devfs=nomount ip=dhcp

label 3
menu label ^3) Install CentOS 8 x64 with Local Repo using VNC
kernel centos8/vmlinuz
append  initrd=centos8/initrd.img method=ftp://192.168.1.2/pub devfs=nomount inst.vnc inst.vncpassword=password

label 4
menu label ^4) Boot from local drive

В приведенной выше конфигурации вы можете заметить, что загрузочные образы CentOS 8 (kernel и initrd) находятся в centos7. > каталог относительно /var/lib/tftpboot (т. е. /var/lib/tftpboot/centos7), а доступ к репозиториям установщика можно получить с помощью протокола FTP в >192.168.1.2/pub (IP-адрес PXE-сервера).

Кроме того, метка меню 2 описывает официальные зеркальные репозитории источников установки CentOS 8 (в клиентской системе необходимо подключение к Интернету), а метка меню 3 описывает, что необходимо выполнить установку клиента. через удаленный VNC (здесь замените пароль VNC надежным паролем).

Важно. Как вы видите в приведенной выше конфигурации, мы использовали образ CentOS 8 для демонстрационных целей, но вы также можете использовать Изображения RHEL 8.

Шаг 5. Добавьте загрузочные образы CentOS 8 на PXE-сервер

9. Чтобы добавить образы CentOS 8 на PXE-сервер, вам необходимо загрузить ISO-образ DVD CentOS 8 локально с помощью команды wget и смонтировать его.

wget http://centos.mirrors.estointernet.in/8.2.2004/isos/x86_64/CentOS-8.2.2004-x86_64-dvd1.iso
mount -o loop CentOS-8.2.2004-x86_64-dvd1.iso /mnt

10. После загрузки CentOS 8 вам необходимо создать каталог centos8 и скопировать загрузочные образы ядра и initrd.

mkdir /var/lib/tftpboot/centos8
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/centos8
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/centos8

Причина использования такого подхода заключается в том, что позже вы сможете иметь отдельные каталоги для каждого нового дистрибутива Linux в /var/lib/tftpboot, не нарушая при этом всю структуру каталогов.

Шаг 6. Создайте источник установки локального зеркала CentOS 8

11. Существует множество протоколов (HTTP, HTTPS или NFS), доступных для настройки. Локальные зеркала источника установки CentOS 8, но я выбрал протокол FTP, поскольку его легко настроить с помощью сервера vsftpd.

Давайте установим сервер Vsftpd и скопируем все содержимое DVD CentOS 8 в каталог FTP /var/ftp/pub, как показано.

dnf install vsftpd
cp -r /mnt/*  /var/ftp/pub/ 
chmod -R 755 /var/ftp/pub

12. Теперь, когда вся настройка PXE-сервера завершена, вы можете запустить, включить и проверить состояние серверов DNSMASQ и VSFTPD.

systemctl start dnsmasq
systemctl status dnsmasq
systemctl start vsftpd
systemctl status vsftpd
systemctl enable dnsmasq
systemctl enable vsftpd

13. Далее вам необходимо открыть порты на брандмауэре, чтобы клиентские системы могли подключаться к PXE-серверу и загружаться с него.

firewall-cmd --add-service=ftp --permanent  	## Port 21
firewall-cmd --add-service=dns --permanent  	## Port 53
firewall-cmd --add-service=dhcp --permanent  	## Port 67
firewall-cmd --add-port=69/udp --permanent  	## Port for TFTP
firewall-cmd --add-port=4011/udp --permanent  ## Port for ProxyDHCP
firewall-cmd --reload  ## Apply rules

14. Чтобы проверить сетевое расположение источника установки FTP, откройте браузер и введите IP-адрес PXE-сервера с протоколом FTP, а затем сетевое местоположение /pub.

ftp://192.168.1.2/pub

Шаг 7. Настройте клиенты для загрузки из сети

15. Теперь настройте клиентские системы для загрузки и установки CentOS 8 на свои системы, настроив Сетевую загрузку в качестве основного загрузочного устройства в меню BIOS.

После загрузки системы вы получите приглашение PXE, в котором вам нужно нажать клавишу F8, чтобы войти в презентацию, а затем нажать клавишу Enter, чтобы перейти в меню PXE.

Это все, что касается настройки минимального PXE-сервера на CentOS/RHEL 8.