Serwer PXE – Preboot eXecution Environment to standardowa architektura klient-serwer, która nakazuje systemowi klienckiemu rozruch, uruchamianie lub instalowanie wielu systemów operacyjnych Linux przy użyciu interfejsu sieciowego obsługującego PXE w infrastrukturze sieciowej.
- Wymagania
- Krok 1: Zainstaluj i skonfiguruj serwer DNSMASQ
- Krok 2: Zainstaluj SYSLINUX Bootloaders
- Krok 3: Zainstaluj TFTP-Server i skopiuj go z SYSLINUX Bootloaders
- Krok 4: Ustaw plik konfiguracyjny serwera PXE
- Krok 5: Dodaj obrazy startowe CentOS 8 do serwera PXE
- Krok 6: Utwórz lokalne lustrzane źródło instalacji CentOS 8
- Krok 7: Konfiguracja klientów do uruchamiania z sieci
Wymagania
-
- Instalacja CentOS 8 Minimal Server
- Instalacja RHEL 8 Minimal Server
- Konfiguracja statycznego adresu IP w RHEL/CentOS 8
W tym artykule, dowiesz się, jak zainstalować i skonfigurować sieciowy serwer startowy PXE w systemie CentOS/RHEL 8 przy użyciu lustrzanych lokalnych repozytoriów instalacyjnych dostarczonych przez obrazy ISO systemów CentOS 8 i RHEL 8.
Dla tej konfiguracji PXE Network Boot, zainstalujemy w systemie następujące pakiety:
- DNSMASQ – lekki DNS forwarder, który zapewnia usługi DNS i DHCP z obsługą PXE oraz serwer TFTP.
- Syslinux – linuksowy boot loader, który dostarcza boot loadery do rozruchu sieciowego.
- Serwer TFTP – prosty protokół transferu plików typu lockstep, który tworzy bootowalne obrazy dostępne do pobrania przez sieć.
- Serwer VSFTPD – bezpieczny protokół transferu plików, który będzie hostował lokalnie zamontowany lustrzany obraz DVD – który będzie działał jako oficjalne repozytorium instalacji lustrzanej RHEL/CentOS 8, z którego instalator pobierze wymagane pakiety.
Krok 1: Zainstaluj i skonfiguruj serwer DNSMASQ
1. Należy przypomnieć, że jeden z twoich interfejsów sieciowych musi być skonfigurowany ze statycznym adresem IP z tego samego zakresu IP sieci, który zapewnia usługi PXE.
Po skonfigurowaniu statycznego adresu IP zaktualizuj pakiety oprogramowania systemowego i zainstaluj demona DNSMASQ.
# dnf install dnsmasq
2. Po zainstalowaniu DNSMASQ znajdziesz jego domyślny plik konfiguracyjny w katalogu /etc/dnsmasq.conf
, który nie wymaga wyjaśnień, ale jest trudniejszy do skonfigurowania, ze względu na mocno skomentowane objaśnienia.
Po pierwsze, upewnij się, że wykonasz kopię zapasową tego pliku na wypadek, gdybyś potrzebował go później do przeglądu, a następnie utwórz nowy plik konfiguracyjny przy użyciu ulubionego edytora, jak pokazano na rysunku.
# mv /etc/dnsmasq.conf /etc/dnsmasq.conf.backup# nano /etc/dnsmasq.conf
3. Teraz skopiuj i wklej następujące konfiguracje do pliku /etc/dnsmasq.conf
i zmień parametry konfiguracyjne zgodnie z ustawieniami sieci.
Konfiguracje, które należy zmienić, są następujące:
- interface – Interfejsy sieciowe serwera powinny nasłuchiwać i świadczyć usługi.
- bind-interfaces – Usuń komentarz, aby powiązać interfejs z daną kartą sieciową.
- domain – Zamień na nazwę swojej domeny.
- dhcp-range – Zamień na zakres IP swojej sieci.
- dhcp-boot – Zamień na adres IP swojego interfejsu sieciowego.
- dhcp-option=3,192.168.1.1 – Zamień na bramę swojej sieci.
- dhcp-option=6,92.168.1.1 – Zastąpić go IP Twojego serwera DNS.
- server=8.8.4.4 – Dodać adresy IP Twoich forwarderów DNS.
- dhcp-option=28,10.0.0.255 – Zastąpić go opcjonalnie adresem IP Twojej transmisji sieciowej.
- dhcp-option=42,0.0.0 – Dodać Twoje sieciowe serwery czasu (adres 0.0.0.0 jest do samodzielnego wykorzystania).
- pxe-prompt – Zachowaj jako domyślne.
- pxe=service – Użyj x86PC dla architektur 32-bitowych/64-bitowych i dodaj podpowiedź opisu menu w cudzysłowie.
- enable-tftp – Włącza wbudowany serwer TFTP.
- tftp-root – Dodaj lokalizację plików rozruchowych sieci /var/lib/tftpboot.
Po inne zaawansowane opcje dotyczące plików konfiguracyjnych zapraszamy do przeczytania podręcznika dnsmasq.
Krok 2: Zainstaluj SYSLINUX Bootloaders
4. Po zakończeniu głównej konfiguracji DNSMASQ, zainstaluj pakiet Syslinx PXE bootloader za pomocą następującego polecenia.
# dnf install syslinux
5. Bootloadery Syslinx PXE są zainstalowane pod /usr/share/syslinux
, można to potwierdzić, uruchamiając polecenie ls, jak pokazano na rysunku.
# ls /usr/share/syslinux
Krok 3: Zainstaluj TFTP-Server i skopiuj go z SYSLINUX Bootloaders
6. Teraz zainstaluj TFTP-Server i skopiuj wszystkie bootloadery Syslinux z /usr/share/syslinux/
do /var/lib/tftpboot
, jak pokazano na rysunku.
# dnf install tftp-server# cp -r /usr/share/syslinux/* /var/lib/tftpboot
Krok 4: Ustaw plik konfiguracyjny serwera PXE
7. Domyślnie serwer PXE odczytuje swoją konfigurację z zestawu określonych plików znajdujących się w katalogu pxelinux.cfg
, który musi znajdować się w katalogu opisanym w ustawieniu tftp-root z powyższego pliku konfiguracyjnego DNSMASQ.
Najpierw utwórz katalog pxelinux.cfg
i utwórz plik default
, wydając następujące polecenia.
# mkdir /var/lib/tftpboot/pxelinux.cfg# touch /var/lib/tftpboot/pxelinux.cfg/default
8. Teraz otwórz i edytuj plik konfiguracyjny PXE default
z poprawnymi opcjami instalacji dystrybucji Linuksa. Należy również pamiętać, że ścieżki ustawione w tym pliku muszą być względne w stosunku do katalogu /var/lib/tftpboot
.
# nano /var/lib/tftpboot/pxelinux.cfg/default
Poniżej znajduje się przykładowy plik konfiguracyjny, który można wykorzystać, ale należy pamiętać o zmianie obrazów instalacyjnych, protokołów i adresów IP, aby odzwierciedlić odpowiednio repozytoria źródłowe i lokalizacje instalacji sieciowej.
W powyższej konfiguracji można zauważyć, że obrazy startowe CentOS 8 (kernel i initrd) rezydują w katalogu centos7 względem /var/lib/tftpboot
(i.e /var/lib/tftpboot/centos7
), a repozytoria instalatora mogą być dostępne za pomocą protokołu FTP na 192.168.1.2/pub
(adres IP serwera PXE).
Ponadto, menu label 2
opisuje oficjalne źródła repozytoriów lustrzanych instalacji CentOS 8 (połączenie z Internetem jest konieczne w systemie klienckim), a menu label 3
opisuje, że instalacja kliencka powinna być przeprowadzona za pomocą zdalnego VNC (tutaj należy zastąpić hasło VNC silnym hasłem).
Important: Jak widzisz w powyższej konfiguracji, użyliśmy obrazu CentOS 8 dla celów demonstracyjnych, ale możesz również użyć obrazów RHEL 8.
Krok 5: Dodaj obrazy startowe CentOS 8 do serwera PXE
9. Aby dodać obrazy CentOS 8 do serwera PXE, należy pobrać lokalnie obraz ISO DVD CentOS 8 za pomocą polecenia wget i zamontować go.
10. Po pobraniu CentOS 8, musisz utworzyć katalog centos7
i skopiować bootowalne obrazy jądra i initrd.
Powodem takiego podejścia jest to, że później możesz mieć oddzielne katalogi dla każdej nowej dystrybucji Linuksa pod /var/lib/tftpboot
bez bałaganu w całej strukturze katalogów.
Krok 6: Utwórz lokalne lustrzane źródło instalacji CentOS 8
11. Istnieje wiele protokołów (HTTP, HTTPS, lub NFS), które są dostępne do tworzenia lokalnych mirrorów instalacyjnych CentOS 8, ale ja wybrałem protokół FTP, ponieważ jest łatwy do skonfigurowania przy użyciu serwera vsftpd.
Zainstalujmy serwer Vsftpd i skopiujmy całą zawartość CentOS 8 DVD do katalogu FTP /var/ftp/pub
, jak pokazano.
# dnf install vsftpd# cp -r /mnt/* /var/ftp/pub/ # chmod -R 755 /var/ftp/pub
12. Teraz, gdy cała konfiguracja serwera PXE została zakończona, można uruchomić, włączyć i sprawdzić stan serwerów DNSMASQ i VSFTPD.
# systemctl start dnsmasq# systemctl status dnsmasq# systemctl start vsftpd# systemctl status vsftpd# systemctl enable dnsmasq# systemctl enable vsftpd
13. Następnie należy otworzyć porty w zaporze sieciowej, aby systemy klienckie mogły dotrzeć i uruchomić się z serwera PXE.
14. Aby zweryfikować lokalizację sieciową źródła instalacji FTP, otwórz przeglądarkę i wpisz adres IP serwera PXE z protokołem FTP, a następnie /pub
lokalizację sieciową.
ftp://192.168.1.2/pub
Krok 7: Konfiguracja klientów do uruchamiania z sieci
15. Teraz skonfiguruj systemy klienckie do uruchamiania i instalowania systemu CentOS 8 na ich systemach, konfigurując Network Boot jako główne urządzenie startowe w menu BIOS.
Po uruchomieniu systemu pojawi się monit PXE, w którym należy nacisnąć klawisz F8
, aby wejść do prezentacji, a następnie nacisnąć klawisz Enter, aby przejść do menu PXE.
To wszystko dla ustawienia minimalnego serwera PXE na CentOS/RHEL 8.
.