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

Настройка «Сетевого загрузочного сервера PXE» для нескольких установок дистрибутива Linux в RHEL/CentOS 7


PXE-сервер — среда предварительной загрузки — дает указание клиентскому компьютеру загружать, запускать или устанавливать операционную систему непосредственно через сетевой интерфейс, устраняя необходимость записи CD/DVD или использования физического носителя, или может облегчить работу по установке дистрибутивов Linux в вашей сетевой инфраструктуре на нескольких машинах одновременно.

Требования

  1. Минимальная процедура установки CentOS 7
  2. Минимальная процедура установки RHEL 7
  3. Настройка статического IP-адреса в RHEL/CentOS 7
  4. Удалить нежелательные службы в RHEL/CentOS 7
  5. Установите NTP-сервер для установки правильного системного времени в RHEL/CentOS 7

В этой статье объясняется, как установить и настроить PXE-сервер на RHEL/CentOS 7 x64-разрядной версии с зеркальными локальными установочными репозиториями, предоставленными источниками. ISO-образом DVD CentOS 7 с помощью сервера DNSMASQ.

Он предоставляет службы DNS и DHCP, пакет Syslinux, предоставляющий загрузчики для сетевой загрузки, TFTP-сервер, который делает загрузочные образы, доступные для загрузки через сеть с использованием Простого протокола передачи файлов (TFTP) и сервера VSFTPD, на котором будет размещен локально смонтированный зеркальный образ DVD, который будет действовать как официальный RHEL. Зеркальный установочный репозиторий /CentOS 7, из которого установщик извлечет необходимые пакеты.

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

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

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

yum install dnsmasq

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

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

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

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

interface=eno16777736,lo
#bind-interfaces
domain=centos7.lan
DHCP range-leases
dhcp-range= eno16777736,192.168.1.3,192.168.1.253,255.255.255.0,1h
PXE
dhcp-boot=pxelinux.0,pxeserver,192.168.1.20
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 7 from network server 192.168.1.20", pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot

Утверждения, которые вам необходимо изменить, следующие:

  1. интерфейс — интерфейсы, которые сервер должен прослушивать и предоставлять услуги.
  2. bind-interfaces – раскомментируйте, чтобы привязать только этот интерфейс.
  3. домен — замените его своим доменным именем.
  4. dhcp-range – замените его диапазоном IP-адресов, определенным маской вашей сети в этом сегменте.
  5. dhcp-boot – замените оператор IP IP-адресом вашего интерфейса.
  6. dhcp-option=3,192.168.1.1 – замените IP-адрес на шлюз вашего сегмента сети.
  7. dhcp-option=6,92.168.1.1 – замените IP-адрес на IP-адрес вашего DNS-сервера – можно определить несколько IP-адресов DNS.
  8. server=8.8.4.4 – укажите IP-адреса DNS-переадресаторов.
  9. dhcp-option=28,10.0.0.255 — замените IP-адрес широковещательным адресом сети (необязательно).
  10. dhcp-option=42,0.0.0.0 — установите сетевые серверы времени — опционально (адрес 0.0.0.0 указан для справки).
  11. pxe-prompt – оставьте по умолчанию – означает нажатие клавиши F8 для входа в меню 60 с временем ожидания в секундах.
  12. pxe=service – используйте x86PC для 32-битных/64-битных архитектур и введите подсказку описания меню в кавычках. Другими типами значений могут быть: PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI и X86-64_EFI.
  13. enable-tftp – включает встроенный TFTP-сервер.
  14. tftp-root – используйте /var/lib/tftpboot – расположение всех файлов сетевой загрузки.

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

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

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

yum install syslinux

5. Файлы загрузчиков PXE находятся по абсолютному системному пути /usr/share/syslinux, поэтому вы можете проверить это, перечислив содержимое этого пути. Этот шаг не является обязательным, но вам, возможно, придется знать об этом пути, поскольку на следующем шаге мы скопируем все его содержимое по пути TFTP-сервера.

ls /usr/share/syslinux

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

6. Теперь перейдем к следующему шагу и установим TFTP-сервер, а затем скопируем все файлы загрузчиков, предоставленные пакетом Syslinux, из указанного выше места в / var/lib/tftpboot, выполнив следующие команды.

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

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

7. Обычно PXE-сервер считывает свою конфигурацию из группы определенных файлов (файлы GUID – сначала MAC) файлы — следующий, файл Default — последний), размещенный в папке с именем pxelinux.cfg, которая должна находиться в каталоге, указанном в tftp-root. > оператор из основного файла конфигурации DNSMASQ.

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

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

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

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

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

Добавьте в файл следующий отрывок.

default menu.c32
prompt 0
timeout 300
ONTIMEOUT local

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

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

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

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

label 4
menu label ^4) Boot from local drive

Как вы можете видеть, загрузочные образы CentOS 7 (ядро и initrd) находятся в каталоге с именем centos7 относительно /var/lib/tftpboot (при абсолютном системном пути это будет означать /var/lib/tftpboot/centos7), а к репозиториям установщика можно получить доступ с помощью протокола FTP в сетевой папке 192.168.1.20/pub — в этом случае репозитории размещаются локально, поскольку IP-адрес совпадает с адресом PXE-сервера).

Также в меню метка 3 указывается, что установка клиента должна выполняться из удаленного местоположения через VNC (здесь замените пароль VNC надежным паролем) в случае установки на автономный клиент. и в меню метка 2 указывается как
При установке используется официальное интернет-зеркало CentOS 7 (в этом случае требуется подключение к Интернету, доступное на клиенте через DHCP и NAT).

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

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

9. Для этого шага необходимы ядро CentOS и файлы initrd. Чтобы получить эти файлы, вам понадобится ISO-образ DVD CentOS 7. Итак, скачайте DVD-образ CentOS, поместите его в DVD-привод и смонтируйте образ по системному пути /mnt, введя приведенную ниже команду.

Причиной использования DVD, а не минимального образа компакт-диска, является тот факт, что позднее содержимое DVD будет использоваться для создания
локальные репозитории установщиков для источников FTP.

mount -o loop /dev/cdrom  /mnt
ls /mnt

Если на вашем компьютере нет привода DVD, вы также можете загрузить CentOS 7 DVD ISO локально с помощью утилит wget или curl из зеркала CentOS и смонтировать его.

wget http://mirrors.xservers.ro/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso
mount -o loop /path/to/centos-dvd.iso  /mnt

10. После того, как содержимое DVD станет доступным, создайте каталог centos7 и скопируйте загрузочное ядро CentOS 7 и образы initrd из места подключения DVD в структуру папок centos7.

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

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

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

11. Хотя вы можете настроить Зеркала исходного кода установки с помощью различных протоколов, таких как HTTP, HTTPS или NFS, для этого руководства я выбрал FTP. > протокол, потому что он очень надежен и прост в настройке с помощью сервера vsftpd.

Далее установите демон vsftpd, скопируйте все смонтированное содержимое DVD в путь к серверу по умолчанию vsftpd (/var/ftp/pub) — это может занять некоторое время в зависимости от ресурсов вашей системы и добавить разрешения на чтение по этому пути, выполнив следующие команды.

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

Шаг 7. Запустите и включите демоны для всей системы.

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

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

Шаг 8. Откройте брандмауэр и проверьте источник установки FTP

13. Чтобы получить список всех портов, которые должны быть открыты на вашем брандмауэре, чтобы клиентские компьютеры могли подключаться к PXE-серверу и загружаться с него, выполните команду netstat и добавьте CentOS. 7 Правила Firewalld соответствуют портам прослушивания dnsmasq и vsftpd.

netstat -tulpn
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, откройте браузер локально (lynx должен сделать это) или на другом компьютере и введите IP-адрес вашего PXE-сервера с помощью
Протокол FTP, за которым следует сетевое местоположение /pub в URL-адресе, и результат должен быть таким, как показано на снимке экрана ниже.

ftp://192.168.1.20/pub

15. Для отладки PXE-сервера на предмет возможных неправильных конфигураций или получения другой информации и диагностики в режиме реального времени выполните следующую команду.

tailf /var/log/messages

16. Наконец, последний необходимый шаг — отмонтировать DVD-диск CentOS 7 и удалить физический носитель.

umount /mnt

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

17. Теперь ваши клиенты могут загружать и устанавливать CentOS 7 на свои компьютеры, настроив сетевую загрузку в качестве основного загрузочного устройства в BIOS своей системы или нажав указанную клавишу во время Операции BIOS POST, как указано в руководстве по материнской плате.

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

18. Как только вы перейдете в меню PXE, выберите тип установки CentOS 7, нажмите клавишу Enter и продолжите процедуру установки так же, как если бы вы установили ее с локального компьютера. загрузочное устройство с носителя.

Обратите внимание, что для использования варианта 2 этого меню требуется активное подключение к Интернету на целевом клиенте. Также ниже
На скриншотах вы можете увидеть пример удаленной установки клиента через VNC.

Это все, что касается настройки минимального PXE-сервера в CentOS 7. В моей следующей статье из этой серии я расскажу о других проблемах, связанных с этой конфигурацией PXE-сервера, например о том, как настроить автоматическую установку CentOS 7 с использованием файлов Kickstart и добавление других дистрибутивов Linux. в меню PXE – Ubuntu Server и Debian 7.