Installeer meerdere Linux-distributies met behulp van PXE Network Boot op RHEL/CentOS 8
PXE Server – Preboot 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.