Wyszukiwanie w witrynie

Konfigurowanie „sieciowego serwera rozruchowego PXE” dla wielu instalacji dystrybucji Linuksa w RHEL/CentOS 7


PXE Server – Preboot eXecution Environment – instruuje komputer kliencki, aby uruchomił, uruchomił lub zainstalował system operacyjny bezpośrednio z interfejsu sieciowego, eliminując potrzebę nagrywania płyty CD/DVD lub korzystania z nośnika fizycznego, lub może ułatwić instalację dystrybucji Linuksa w infrastrukturze sieciowej na wielu komputerach jednocześnie.

Wymagania

  1. Minimalna procedura instalacji CentOS 7
  2. Minimalna procedura instalacji RHEL 7
  3. Skonfiguruj statyczny adres IP w RHEL/CentOS 7
  4. Usuń niechciane usługi w RHEL/CentOS 7
  5. Zainstaluj serwer NTP, aby ustawić prawidłowy czas systemowy w RHEL/CentOS 7

W tym artykule wyjaśniono, jak zainstalować i skonfigurować serwer PXE na RHEL/CentOS 7 x64-bit z lustrzanymi lokalnymi repozytoriami instalacyjnymi, źródła dostarczone przez obraz ISO DVD CentOS 7 przy pomocy serwera DNSMASQ.

Który udostępnia usługi DNS i DHCP, pakiet Syslinux, który udostępnia programy ładujące do rozruchu sieciowego, TFTP-Server, który sprawia, że obrazy startowe dostępne do pobrania przez sieć przy użyciu protokołu Trivial File Transfer Protocol (TFTP) i serwera VSFTPD, który będzie hostem zamontowanego lokalnie lustrzanego obrazu DVD – który będzie działał jako oficjalny RHEL Repozytorium instalacji lustrzanej /CentOS 7, z którego instalator wyodrębni wymagane pakiety.

Krok 1: Zainstaluj i skonfiguruj serwer DNSMASQ

1. Nie ma potrzeby przypominać, że jest to absolutnie wymagające, aby jeden z interfejsów karty sieciowej, na wypadek, gdyby Twój serwer posiada więcej kart sieciowych, musiał być skonfigurowany ze statycznym adresem IP z tego samego zakresu adresów IP, który należy do segment sieci, który będzie świadczył usługi PXE.

Zatem po skonfigurowaniu statycznego adresu IP, zaktualizowaniu systemu i wykonaniu innych ustawień początkowych użyj następującego polecenia, aby zainstalować demona DNSMASQ.

yum install dnsmasq

2. Główny domyślny plik konfiguracyjny DNSMASQ znajdujący się w katalogu /etc jest oczywisty, ale jego edycja jest dość trudna, 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 pusty plik konfiguracyjny za pomocą ulubionego edytora tekstu, wydając następujące polecenia.

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

3. Teraz skopiuj i wklej następujące konfiguracje do pliku dnsmasq.conf i upewnij się, że zmieniłeś poniższe objaśnione instrukcje, aby odpowiednio dopasować ustawienia sieciowe.

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

Stwierdzenia, które należy zmienić, są następujące:

  1. interfejs – interfejsy, których serwer powinien nasłuchiwać i świadczyć usługi.
  2. bind-interfaces – odkomentuj, aby powiązać tylko w tym interfejsie.
  3. domena – zastąp ją nazwą swojej domeny.
  4. dhcp-range – zastąp go zakresem IP zdefiniowanym przez maskę sieci w tym segmencie.
  5. dhcp-boot – Zastąp instrukcję IP adresem IP swojego interfejsu.
  6. dhcp-option=3,192.168.1.1 – Zastąp adres IP bramą segmentu sieci.
  7. dhcp-option=6,92.168.1.1 – Zastąp adres IP adresem IP swojego serwera DNS – można zdefiniować kilka adresów IP DNS.
  8. server=8.8.4.4 – Podaj adresy IP swoich usług przesyłania dalej DNS.
  9. dhcp-option=28,10.0.0.255 – Zastąp adres IP adresem rozgłoszeniowym sieci – opcjonalnie.
  10. dhcp-option=42,0.0.0.0 – Umieść swoje sieciowe serwery czasu – opcjonalnie (adres 0.0.0.0 służy do samodzielnego odwoływania się).
  11. pxe-prompt – pozostaw opcję domyślną – oznacza naciśnięcie klawisza F8 w celu wejścia do menu 60 z sekundowym czasem oczekiwania.
  12. pxe=service – użyj x86PC dla architektur 32-bitowych/64-bitowych i wprowadź monit z opisem menu w cudzysłowie. Innymi typami wartości mogą być: PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI i X86-64_EFI.
  13. enable-tftp – Włącza wbudowany serwer TFTP.
  14. tftp-root – użyj /var/lib/tftpboot – lokalizacji wszystkich plików netboot.

Aby zapoznać się z innymi zaawansowanymi opcjami dotyczącymi pliku konfiguracyjnego, przeczytaj instrukcję dnsmasq.

Krok 2: Zainstaluj programy ładujące SYSLINUX

4. Po edycji i zapisaniu głównego pliku konfiguracyjnego DNSMASQ, zainstaluj pakiet bootloadera Syslinx PXE, wydając następujące polecenie.

yum install syslinux

5. Pliki programów ładujących PXE znajdują się w bezwzględnej ścieżce systemowej /usr/share/syslinux, więc możesz to sprawdzić, wyświetlając zawartość tej ścieżki. Ten krok jest opcjonalny, ale być może będziesz musiał znać tę ścieżkę, ponieważ w następnym kroku skopiujemy całą jej zawartość do ścieżki serwera TFTP.

ls /usr/share/syslinux

Krok 3: Zainstaluj serwer TFTP i zapełnij go programami ładującymi SYSLINUX

6. Teraz przejdźmy do następnego kroku i zainstaluj serwer TFTP, a następnie skopiuj wszystkie pliki bootloderów dostarczone przez pakiet Syslinux z wyżej wymienionej lokalizacji do / var/lib/tftpboot, wydając następujące polecenia.

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

Krok 4: Skonfiguruj plik konfiguracyjny serwera PXE

7. Zwykle serwer PXE odczytuje swoją konfigurację z grupy określonych plików (pliki GUID – najpierw MAC pliki – następny, plik domyślny – ostatni) hostowany w folderze o nazwie pxelinux.cfg, który musi znajdować się w katalogu określonym w tftp-root instrukcja z głównego pliku konfiguracyjnego DNSMASQ.

Utwórz wymagany katalog pxelinux.cfg i zapełnij go plikiem domyślnym, wydając następujące polecenia.

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

8. Teraz nadszedł czas na edycję pliku konfiguracyjnego PXE Server z prawidłowymi opcjami instalacji dystrybucji Linuksa. Należy również pamiętać, że wszystkie ścieżki użyte w tym pliku muszą być powiązane z katalogiem /var/lib/tftpboot.

Poniżej możesz zobaczyć przykładowy plik konfiguracyjny, którego możesz użyć, ale zmodyfikuj obrazy instalacyjne (pliki jądra i initrd), protokoły (FTP, HTTP, HTTPS, NFS) i adresy IP, aby odpowiednio odzwierciedlić repozytoria źródłowe instalacji sieciowej i ścieżki.

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

Dodaj następujący cały fragment do pliku.

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

Jak widać obrazy rozruchowe CentOS 7 (jądro i initrd) znajdują się w katalogu o nazwie centos7 względem /var/lib/tftpboot (w przypadku bezwzględnej ścieżki systemowej oznaczałoby to /var/lib/tftpboot/centos7), a repozytoria instalatora można uzyskać za pomocą protokołu FTP w lokalizacji sieciowej 192.168.1.20/pub – w tym przypadku repozytoria są hostowane lokalnie, ponieważ adres IP jest taki sam jak adres serwera PXE).

Również menu etykieta 3 określa, że instalacja klienta powinna zostać przeprowadzona ze zdalnej lokalizacji poprzez VNC (tutaj zamień hasło VNC na silne hasło) w przypadku instalacji na kliencie bezgłowym a menu etykieta 2 określa jako
źródła instalacji to oficjalny serwer lustrzany CentOS 7 (w tym przypadku wymagane jest połączenie internetowe dostępne na kliencie poprzez DHCP i NAT).

Ważne: jak widać w powyższej konfiguracji, użyliśmy CentOS 7 w celach demonstracyjnych, ale możesz także zdefiniować obrazy RHEL 7 i postępować zgodnie z całymi instrukcjami i konfiguracjami opierają się wyłącznie na CentOS 7, dlatego należy zachować ostrożność przy wyborze dystrybucji.

Krok 5: Dodaj obrazy rozruchowe CentOS 7 do serwera PXE

9. W tym kroku wymagane jest jądro CentOS i pliki initrd. Aby uzyskać te pliki, potrzebujesz obrazu ISO CentOS 7 DVD. Zatem pobierz obraz DVD CentOS, umieść go w napędzie DVD i zamontuj obraz w ścieżce systemowej /mnt, wydając poniższe polecenie.

Powodem użycia DVD, a nie minimalnego obrazu CD, jest fakt, że później ta zawartość DVD zostanie wykorzystana do stworzenia
lokalne repozytoria instalatorów dla źródeł FTP.

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

Jeśli Twój komputer nie ma napędu DVD, możesz także pobrać lokalnie CentOS 7 DVD ISO za pomocą narzędzi wget lub curl z kopii lustrzanej CentOS i zamontować go.

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. Po udostępnieniu zawartości DVD utwórz katalog centos7 i skopiuj startowe jądro i obrazy initrd CentOS 7 z lokalizacji zamontowanej na DVD do struktury folderów 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

Powodem stosowania tego podejścia jest to, że później możesz utworzyć nowe osobne katalogi w ścieżce /var/lib/tftpboot i dodać inne dystrybucje Linuksa do menu PXE bez psucia całej struktury katalogów.

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

11. Chociaż Duble źródła instalacji można skonfigurować za pomocą różnych protokołów, takich jak HTTP, HTTPS lub NFS, w tym przewodniku wybrałem FTP protokół, ponieważ jest bardzo niezawodny i łatwy w konfiguracji za pomocą serwera vsftpd.

Następnie zainstaluj demona vsftpd, skopiuj całą zawartość zamontowaną na DVD do domyślnej ścieżki serwera vsftpd (/var/ftp/pub) – może to chwilę potrwać, w zależności od zasobów systemowych i dołączenia czytelne uprawnienia do tej ścieżki, wydając następujące polecenia.

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

Krok 7: Uruchom i włącz demony w całym systemie

12. Teraz, gdy konfiguracja serwera PXE jest już zakończona, uruchom serwery DNSMASQ i VSFTPD, sprawdź ich status i włącz je w całym systemie, aby uruchamia się automatycznie po każdym ponownym uruchomieniu systemu, uruchamiając poniższe polecenia.

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

Krok 8: Otwórz zaporę sieciową i przetestuj źródło instalacji FTP

13. Aby uzyskać listę wszystkich portów, które muszą być otwarte w zaporze sieciowej, aby komputery klienckie mogły uzyskać dostęp do serwera PXE i uruchomić go z serwera PXE, uruchom polecenie netstat i dodaj CentOS 7 Firewalld rządzi zgodnie z portami nasłuchiwania dnsmasq i 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. Aby przetestować ścieżkę sieciową źródła instalacji FTP, otwórz przeglądarkę lokalnie (powinien to zrobić Lynx) lub na innym komputerze i wpisz adres IP swojego serwera PXE za pomocą
Protokół FTP, a następnie lokalizacja sieci /pub w podanym adresie URL, a wynik powinien wyglądać jak na poniższym zrzucie ekranu.

ftp://192.168.1.20/pub

15. Aby debugować serwer PXE pod kątem ewentualnych błędnych konfiguracji lub innych informacji i diagnostyki w trybie na żywo, uruchom następujące polecenie.

tailf /var/log/messages

16. Na koniec ostatnim wymaganym krokiem, który musisz wykonać, jest odmontowanie płyty DVD CentOS 7 i usunięcie nośnika fizycznego.

umount /mnt

Krok 9: Skonfiguruj klientów do uruchamiania z sieci

17. Teraz Twoi klienci mogą uruchomić i zainstalować CentOS 7 na swoich komputerach, konfigurując Network Boot jako główne urządzenie rozruchowe z BIOS-u swojego systemu lub naciskając określony klawisz podczas Operacje BIOS POST zgodnie z instrukcją płyty głównej.

Aby wybrać uruchamianie sieciowe. Po wyświetleniu pierwszego monitu PXE naciśnij klawisz F8, aby wejść do prezentacji, a następnie naciśnij klawisz Enter, aby przejść dalej do menu PXE.

18. Po dotarciu do menu PXE wybierz typ instalacji CentOS 7, naciśnij klawisz Enter i kontynuuj procedurę instalacji w taki sam sposób, w jaki instalujesz ją z lokalnego urządzenie rozruchowe z nośnika.

Należy pamiętać, że użycie wariantu 2 z tego menu wymaga aktywnego połączenia internetowego na kliencie docelowym. Również poniżej
na zrzutach ekranu widać przykład zdalnej instalacji klienta poprzez VNC.

To wszystko, jeśli chodzi o skonfigurowanie minimalnego serwera PXE w CentOS 7. W kolejnym artykule z tej serii omówię inne kwestie dotyczące konfiguracji serwera PXE, takie jak konfiguracja automatycznych instalacji CentOS 7 przy użyciu plików Kickstart i dodawanie innych dystrybucji Linuksa do menu PXE – Serwer Ubuntu i Debian 7.