Wyszukiwanie w witrynie

Zainstaluj wiele dystrybucji systemu Linux przy użyciu rozruchu sieciowego PXE w systemie RHEL/CentOS 8


Serwer PXEŚrodowisko Preboot eXecution to standardowa architektura klient-serwer, która instruuje system kliencki, aby uruchamiał, uruchamiał lub instalował wiele systemów operacyjnych Linux przy użyciu interfejsu sieciowego obsługującego PXE w infrastrukturze sieciowej.

Wymagania

    • Instalacja minimalnego serwera CentOS 8
    • Instalacja minimalnego serwera RHEL 8
    • Skonfiguruj statyczny adres IP w RHEL/CentOS 8

W tym artykule dowiesz się, jak zainstalować i skonfigurować sieciowy serwer startowy PXE na CentOS/RHEL 8 z lokalnymi lustrzanymi repozytoriami instalacyjnymi dostarczonymi przez CentOS 8 i RHEL 8 obrazy ISO.

W przypadku tej konfiguracji rozruchu sieciowego PXE zainstalujemy w systemie następujące pakiety:

  • DNSMASQ – lekki forwarder DNS zapewniający usługi DNS i DHCP z obsługą PXE i serwer TFTP.
  • Syslinux – moduł ładujący Linuksa, który udostępnia moduły ładujące do uruchamiania sieciowego.
  • Serwer TFTP – prosty, blokowany protokół przesyłania plików, który tworzy obrazy startowe dostępne do pobrania przez sieć.
  • Serwer VSFTPD – bezpieczny protokół przesyłania 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, skąd instalator pobierze wymagane pakiety.

Krok 1: Zainstaluj i skonfiguruj serwer DNSMASQ

1. Należy przypomnieć, że jeden z interfejsów sieciowych musi być skonfigurowany ze statycznym adresem IP z tego samego zakresu adresów 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 domyślny plik konfiguracyjny znajdziesz w katalogu /etc/dnsmasq.conf, który nie wymaga wyjaśnień, ale zawiera więcej trudny w konfiguracji ze względu na szeroko komentowane wyjaśnienia.

Najpierw wykonaj kopię zapasową tego pliku na wypadek konieczności późniejszego przejrzenia go, a następnie utwórz nowy plik konfiguracyjny za pomocą ulubionego edytora, jak pokazano.

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

3. Teraz skopiuj i wklej poniższe konfiguracje do pliku /etc/dnsmasq.conf i zmień parametry konfiguracyjne zgodnie z ustawieniami sieci.

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

Poniżej znajdują się instrukcje konfiguracyjne, które należy zmienić:

  • interfejs – interfejsy sieciowe serwera powinny nasłuchiwać i świadczyć usługi.
  • bind-interfaces – Odkomentuj, aby powiązać interfejs z daną kartą sieciową.
  • domena – zastąp ją nazwą swojej domeny.
  • dhcp-range – zmień go, dopasowując zakres adresów IP swojej sieci.
  • dhcp-boot – zastąp go adresem IP interfejsu sieciowego.
  • dhcp-option=3,192.168.1.1 – Zastąp go bramą sieciową.
  • dhcp-option=6,92.168.1.1 – zastąp go adresem IP swojego serwera DNS.
  • server=8.8.4.4 – Dodaj adresy IP swoich usług przesyłania dalej DNS.
  • dhcp-option=28,10.0.0.255 – opcjonalnie zastąp go adresem rozgłoszeniowym IP sieci.
  • dhcp-option=42,0.0.0.0 -Dodaj swoje sieciowe serwery czasu (adres 0.0.0.0 służy do samodzielnego odwoływania się).
  • pxe-prompt – zachowaj tę opcję jako domyślną.
  • pxe=service – użyj x86PC dla architektur 32-bitowych/64-bitowych i dodaj monit z opisem menu w cudzysłowie.
  • enable-tftp – Włącza wbudowany serwer TFTP.
  • tftp-root – Dodaj lokalizację plików startowych sieci /var/lib/tftpboot.

Aby zapoznać się z innymi zaawansowanymi opcjami dotyczącymi plików konfiguracyjnych, przeczytaj instrukcję dnsmasq.

Krok 2: Zainstaluj programy ładujące SYSLINUX

4. Po wykonaniu głównej konfiguracji DNSMASQ zainstaluj pakiet bootloadera Syslinx PXE za pomocą następującego polecenia.

dnf install syslinux

5. Programy ładujące Syslinx PXE są zainstalowane w /usr/share/syslinux. Możesz to sprawdzić, uruchamiając polecenie ls, jak pokazano.

ls /usr/share/syslinux

Krok 3: Zainstaluj serwer TFTP i skopiuj go za pomocą programów ładujących SYSLINUX

6. Teraz zainstaluj serwer TFTP i skopiuj wszystkie programy ładujące Syslinux z /usr/share/syslinux/ do /var/lib /tftpboot jak pokazano.

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

Krok 4: Skonfiguruj plik konfiguracyjny serwera PXE

7. Domyślnie serwer PXE odczytuje swoją konfigurację z zestawu określonych plików znajdujących się w pxelinux.cfg, które muszą znajdować się w katalog opisany w ustawieniu tftp-root w powyższym pliku konfiguracyjnym DNSMASQ.

Najpierw utwórz katalog pxelinux.cfg i utwórz plik default, wydając poniższe polecenia.

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

8. Teraz otwórz i edytuj default plik konfiguracyjny PXE z poprawnymi opcjami instalacji dystrybucji Linuksa. Pamiętaj też, że ścieżki ustawione w tym pliku muszą być względne względem katalogu /var/lib/tftpboot.

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

Poniżej znajduje się przykładowy plik konfiguracyjny, którego możesz użyć, ale pamiętaj o zmianie obrazów instalacyjnych, protokołów i adresów IP, aby odpowiednio odzwierciedlały repozytoria i lokalizacje źródłowe instalacji sieciowej.

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

W powyższej konfiguracji można zauważyć, że obrazy startowe CentOS 8 (kernel i initrd) znajdują się w centos7 > katalog powiązany z /var/lib/tftpboot (tj. /var/lib/tftpboot/centos7), a dostęp do repozytoriów instalatora można uzyskać za pomocą protokołu FTP na 192.168.1.2/pub (adres IP serwera PXE).

Ponadto etykieta menu 2 opisuje oficjalne repozytoria lustrzane źródeł instalacji CentOS 8 (w systemie klienckim wymagane jest połączenie internetowe), a etykieta menu 3 opisuje, że należy przeprowadzić instalację klienta za pośrednictwem zdalnego VNC (tutaj zamień hasło VNC na silne hasło).

Ważne: jak widać w powyższej konfiguracji, do celów demonstracyjnych użyliśmy obrazu CentOS 8, ale możesz także użyć Obrazy RHEL 8.

Krok 5: Dodaj obrazy rozruchowe CentOS 8 do serwera PXE

9. Aby dodać obrazy CentOS 8 do serwera PXE, musisz pobrać obraz ISO DVD CentOS 8 lokalnie za pomocą polecenia wget i zamontować go.

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. Po pobraniu CentOS 8 musisz utworzyć katalog centos8 i skopiować startowe obrazy jądra i 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

Powodem takiego podejścia jest to, że później możesz mieć osobne katalogi dla każdej nowej dystrybucji Linuksa w /var/lib/tftpboot bez psucia całej struktury katalogów.

Krok 6: Utwórz źródło instalacji lokalnego kopii lustrzanej CentOS 8

11. Istnieje wiele protokołów (HTTP, HTTPS lub NFS) dostępnych do konfiguracji Lokalne kopie źródłowe instalacji CentOS 8, ale wybrałem protokół FTP, ponieważ można go łatwo skonfigurować przy użyciu serwera vsftpd.

Zainstalujmy serwer Vsftpd i skopiujmy całą zawartość DVD CentOS 8 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 ukończona, możesz 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 musisz otworzyć porty w zaporze ogniowej, aby systemy klienckie mogły uzyskać dostęp do serwera PXE i uruchomić go z niego.

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. Aby sprawdzić lokalizację sieciową źródła instalacji FTP, otwórz przeglądarkę i wpisz adres IP serwera PXE z protokołem FTP, a następnie lokalizację sieciową /pub.

ftp://192.168.1.2/pub

Krok 7: Skonfiguruj klientów do uruchamiania z sieci

15. Teraz skonfiguruj systemy klienckie tak, aby uruchamiały się i instalowały CentOS 8 na swoich systemach, konfigurując Network Boot jako główne urządzenie rozruchowe z 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ść dalej do menu PXE.

To wszystko, jeśli chodzi o skonfigurowanie minimalnego serwera PXE na CentOS/RHEL 8.