Zoeken op website

Installeer meerdere Linux-distributies met behulp van PXE Network Boot op RHEL/CentOS 8


PXE ServerPreboot eXecution Environment is een gestandaardiseerde client-server-architectuur die een clientsysteem instrueert om meerdere Linux-besturingssystemen op te starten, uit te voeren of te installeren met behulp van een PXE-compatibele netwerkinterface op uw netwerkinfrastructuur.

Vereisten

    • Installatie van CentOS 8 Minimal Server
    • Installatie van RHEL 8 Minimal Server
    • Configureer een statisch IP-adres in RHEL/CentOS 8

In dit artikel leert u hoe u een PXE Network Boot Server installeert en configureert op CentOS/RHEL 8 met gespiegelde lokale installatiebronnen geleverd door CentOS 8 en RHEL 8 ISO-afbeeldingen.

Voor deze configuratie van PXE Network Boot installeren we de volgende pakketten op het systeem:

  • DNSMASQ – een lichtgewicht DNS-forwarder die DNS- en DHCP-services levert met ondersteuning voor PXE en een TFTP-server.
  • Syslinux – een Linux-bootloader die bootloaders biedt voor het opstarten van netwerken.
  • TFTP-server – een eenvoudig bestandsoverdrachtprotocol dat opstartbare afbeeldingen creëert die beschikbaar zijn om te downloaden via een netwerk.
  • VSFTPD Server – een beveiligd protocol voor bestandsoverdracht dat de lokaal gemonteerde gespiegelde dvd-image zal hosten – die zal fungeren als een officiële RHEL/CentOS 8 mirror-installatierepository van waaruit het installatieprogramma de vereiste pakketten zal verwijderen.

Stap 1: DNSMASQ-server installeren en configureren

1. Het is belangrijk u eraan te herinneren dat een van uw netwerkinterfaces moet worden geconfigureerd met een statisch IP-adres uit hetzelfde netwerk-IP-bereik dat PXE-services levert.

Zodra u een statisch IP-adres heeft geconfigureerd, updatet u uw systeemsoftwarepakketten en installeert u de DNSMASQ-daemon.

dnf install dnsmasq

2. Zodra DNSMASQ is geïnstalleerd, vindt u het standaardconfiguratiebestand in de map /etc/dnsmasq.conf. Dit spreekt voor zich, maar is meer moeilijk te configureren vanwege de veelbecommentarieerde uitleg.

Zorg er eerst voor dat u een back-up van dit bestand maakt, voor het geval u het later nodig heeft om te bekijken, en maak vervolgens een nieuw configuratiebestand met uw favoriete editor, zoals weergegeven.

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

3. Kopieer en plak nu de volgende configuraties in het bestand /etc/dnsmasq.conf en wijzig de configuratieparameters volgens uw netwerkinstellingen.

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

De configuratie-instructies die u moet wijzigen, worden gevolgd:

  • interface – Een netwerkinterface van de server moet luisteren en diensten leveren.
  • bind-interfaces – Verwijder commentaar om de interface aan een bepaalde netwerkkaart te binden.
  • domein – Vervang het door uw domeinnaam.
  • dhcp-bereik – Wijzig dit met het IP-bereik van uw netwerk.
  • dhcp-boot – Vervang dit door het IP-adres van uw netwerkinterface.
  • dhcp-option=3,192.168.1.1 – Vervang het door uw netwerkgateway.
  • dhcp-option=6,92.168.1.1 – Vervang dit door uw DNS-server-IP.
  • server=8.8.4.4 – Voeg de IP-adressen van uw DNS-forwarders toe.
  • dhcp-option=28,10.0.0.255 – Vervang dit optioneel door het IP-adres van uw netwerkuitzending.
  • dhcp-option=42,0.0.0.0 -Voeg uw netwerktijdservers toe (0.0.0.0-adres is voor zelfreferentie).
  • pxe-prompt – Behoud dit als standaard.
  • pxe=service – Gebruik x86PC voor 32-bit/64-bit architecturen en voeg een menubeschrijvingsprompt toe onder aanhalingstekens.
  • enable-tftp – Schakelt de ingebouwde TFTP-server in.
  • tftp-root – Voeg de locatie van netwerkopstartbestanden /var/lib/tftpboot toe.

Voor andere geavanceerde opties met betrekking tot configuratiebestanden kunt u de dnsmasq-handleiding lezen.

Stap 2: Installeer SYSLINUX-bootloaders

4. Nadat de DNSMASQ-hoofdconfiguratie is voltooid, installeert u het Syslinx PXE bootloaderpakket met behulp van de volgende opdracht.

dnf install syslinux

5. De Syslinx PXE bootloaders worden geïnstalleerd onder /usr/share/syslinux. Je kunt dit bevestigen door het ls commando uit te voeren, zoals getoond.

ls /usr/share/syslinux

Stap 3: Installeer de TFTP-server en kopieer deze met SYSLINUX Bootloaders

6. Installeer nu TFTP-Server en kopieer alle Syslinux-bootloaders van /usr/share/syslinux/ naar /var/lib /tftpboot zoals weergegeven.

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

Stap 4: Stel het PXE-serverconfiguratiebestand in

7. Standaard leest de PXE-server zijn configuratie uit een reeks specifieke bestanden gevonden in pxelinux.cfg, die gevonden moeten worden in de directory beschreven in de tftp-root instelling uit het DNSMASQ-configuratiebestand hierboven.

Maak eerst een map pxelinux.cfg aan en maak een default bestand door de volgende opdrachten te geven.

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

8. Open en bewerk nu het PXE default configuratiebestand met de juiste installatieopties voor de Linux-distributie. Zorg er ook voor dat u onthoudt dat de paden die in dit bestand zijn ingesteld, relatief moeten zijn ten opzichte van de map /var/lib/tftpboot.

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

Het volgende is een voorbeeld van een configuratiebestand dat u kunt gebruiken, maar zorg ervoor dat u de installatie-images, protocollen en IP's wijzigt zodat deze de bronrepository's en -locaties van uw netwerkinstallatie dienovereenkomstig weerspiegelen.

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

In de bovenstaande configuratie kun je zien dat de opstartimages van CentOS 8 (kernel en initrd) zich in een centos7 bevinden > map relatief aan /var/lib/tftpboot (d.w.z. /var/lib/tftpboot/centos7) en de installatiebronnen zijn toegankelijk via het FTP-protocol op 192.168.1.2/pub (IP-adres van de PXE-server).

Bovendien beschrijft menulabel 2 de officiële CentOS 8-installatiebronnen, spiegelrepository's (internetverbinding is vereist op het clientsysteem) en menulabel 3 beschrijft dat de clientinstallatie moet worden uitgevoerd via een externe VNC (vervang hier het VNC-wachtwoord door een sterk wachtwoord).

Belangrijk: zoals je in de bovenstaande configuratie ziet, hebben we de CentOS 8-afbeelding gebruikt voor demonstratiedoeleinden, maar je kunt ook RHEL 8 afbeeldingen.

Stap 5: Voeg CentOS 8 Boot Images toe aan de PXE-server

9. Om CentOS 8-images aan de PXE-server toe te voegen, moet u CentOS 8 DVD ISO Image lokaal downloaden met de opdracht wget en deze mounten.

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. Nadat u CentOS 8 heeft gedownload, moet u een map centos8 maken en opstartbare kernel- en initrd-images kopiëren.

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

De reden achter deze aanpak is dat je later aparte mappen kunt hebben voor elke nieuwe Linux-distributie onder /var/lib/tftpboot zonder de hele mapstructuur te verpesten.

Stap 6: Maak CentOS 8 lokale mirror-installatiebron aan

11. Er zijn verschillende protocollen (HTTP, HTTPS of NFS) beschikbaar voor het instellen CentOS 8 lokale installatiebronspiegels, maar ik heb gekozen voor het FTP-protocol omdat het eenvoudig in te stellen is met de vsftpd-server.

Laten we de Vsftpd-server installeren en alle CentOS 8 DVD-inhoud kopiëren naar de FTP-map /var/ftp/pub, zoals weergegeven.

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

12. Nu alle PXE-serverconfiguratie is voltooid, kunt u de DNSMASQ- en VSFTPD-servers starten, inschakelen en verifiëren.

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

13. Vervolgens moet u poorten op uw firewall openen zodat clientsystemen de PXE-server kunnen bereiken en ervan kunnen opstarten.

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. Om de netwerklocatie van de FTP-installatiebron te verifiëren, opent u uw browser en typt u het IP-adres van de PXE-server met het FTP-protocol, gevolgd door /pub netwerklocatie.

ftp://192.168.1.2/pub

Stap 7: Configureer clients om op te starten vanaf een netwerk

15. Configureer nu clientsystemen om CentOS 8 op hun systemen op te starten en te installeren door Network Boot te configureren als primair opstartapparaat vanuit het BIOS-menu.

Nadat het systeem is opgestart, krijgt u een PXE-prompt, waarbij u op de F8-toets moet drukken om de presentatie te openen en vervolgens op de Enter-toets moet drukken om verder te gaan naar het PXE-menu.

Dat is alles voor het opzetten van een minimale PXE-server op CentOS/RHEL 8.