Zoeken op website

Een 'PXE Network Boot Server' opzetten voor meerdere Linux-distributie-installaties in RHEL/CentOS 7


PXE Server – Preboot eXecution Environment – instrueert een clientcomputer om een besturingssysteem rechtstreeks vanaf een netwerkinterface op te starten, uit te voeren of te installeren, waardoor het niet meer nodig is om een CD/DVD te branden of een fysiek medium te gebruiken, of, kan het werk van het tegelijkertijd installeren van Linux-distributies op uw netwerkinfrastructuur op meerdere machines vergemakkelijken.

Vereisten

  1. CentOS 7 Minimale installatieprocedure
  2. RHEL 7 Minimale installatieprocedure
  3. Configureer een statisch IP-adres in RHEL/CentOS 7
  4. Verwijder ongewenste services in RHEL/CentOS 7
  5. Installeer NTP-server om de juiste systeemtijd in RHEL/CentOS 7 in te stellen

In dit artikel wordt uitgelegd hoe u een PXE-server kunt installeren en configureren op RHEL/CentOS 7 x64-bit met gespiegelde lokale installatiebronnen, bronnen worden verstrekt door CentOS 7 DVD ISO-image, met behulp van DNSMASQ Server.

Dit levert DNS- en DHCP-services, een Syslinux-pakket dat bootloaders levert voor het opstarten van het netwerk, TFTP-server, dat ervoor zorgt opstartbare afbeeldingen beschikbaar om te downloaden via het netwerk met behulp van Trivial File Transfer Protocol (TFTP) en VSFTPD Server die de lokaal gemonteerde gespiegelde dvd-image zal hosten – die zal fungeren als een officiële RHEL /CentOS 7 mirror-installatierepository van waaruit het installatieprogramma de vereiste pakketten zal extraheren.

Stap 1: Installeer en configureer DNSMASQ Server

1. Het is niet nodig u eraan te herinneren dat het absoluut vereist dat een van uw netwerkkaartinterfaces, voor het geval uw server over meer NIC's beschikt, moet worden geconfigureerd met een statisch IP-adres uit hetzelfde IP-bereik waartoe behoort het netwerksegment dat PXE-diensten zal leveren.

Nadat u uw statische IP-adres heeft geconfigureerd, uw systeem heeft bijgewerkt en andere initiële instellingen heeft uitgevoerd, gebruikt u dus de volgende opdracht om de DNSMASQ-daemon te installeren.

yum install dnsmasq

2. Het standaardconfiguratiebestand van DNSMASQ in de map /etc spreekt voor zich, maar is nogal moeilijk te bewerken, gezien de veelbecommentarieerde uitleg.

Zorg er eerst voor dat u een back-up van dit bestand maakt voor het geval u het later moet bekijken en maak vervolgens een nieuw, leeg configuratiebestand met uw favoriete teksteditor door de volgende opdrachten te geven.

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

3. Kopieer en plak nu de volgende configuraties in het dnsmasq.conf bestand en zorg ervoor dat u de hieronder uitgelegde verklaringen wijzigt zodat deze overeenkomen met uw netwerkinstellingen.

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

De verklaringen die u moet wijzigen, zijn de volgende:

  1. interface – Interfaces waarnaar de server moet luisteren en services moet leveren.
  2. bind-interfaces – Verwijder commentaar om alleen op deze interface te binden.
  3. domein – Vervang het door uw domeinnaam.
  4. dhcp-bereik – Vervang dit door het IP-bereik dat is gedefinieerd door uw netwerkmasker in dit segment.
  5. dhcp-boot – Vervang de IP-instructie door het IP-adres van uw interface.
  6. dhcp-option=3,192.168.1.1 – Vervang het IP-adres door de gateway van uw netwerksegment.
  7. dhcp-option=6,92.168.1.1 – Vervang het IP-adres door uw DNS-server-IP – er kunnen verschillende DNS-IP's worden gedefinieerd.
  8. server=8.8.4.4 – Voer de IP-adressen van uw DNS-forwarders in.
  9. dhcp-option=28,10.0.0.255 – Vervang het IP-adres door een netwerkbroadcastadres – optioneel.
  10. dhcp-option=42,0.0.0.0 – Plaats uw netwerktijdservers – optioneel (0.0.0.0 adres is voor zelfreferentie).
  11. pxe-prompt – Laat het op de standaardwaarde staan – betekent dat je op de F8-toets drukt om menu 60 te openen met seconden wachttijd.
  12. pxe=service – Gebruik x86PC voor 32-bit/64-bit architecturen en voer een menubeschrijvingsprompt in tussen aanhalingstekens. Andere typen waarden kunnen zijn: PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI en X86-64_EFI.
  13. enable-tftp – Schakelt de ingebouwde TFTP-server in.
  14. tftp-root – Gebruik /var/lib/tftpboot – de locatie voor alle netbooting-bestanden.

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

Stap 2: Installeer SYSLINUX-bootloaders

4. Nadat je het DNSMASQ hoofdconfiguratiebestand hebt bewerkt en opgeslagen, ga je gang en installeer je het Syslinx PXE bootloaderpakket door de volgende opdracht te geven.

yum install syslinux

5. De PXE-bootloaderbestanden bevinden zich in het absolute systeempad /usr/share/syslinux, dus u kunt dit controleren door de inhoud van dit pad op te sommen. Deze stap is optioneel, maar u moet mogelijk op de hoogte zijn van dit pad, omdat we bij de volgende stap alle inhoud ervan naar het TFTP-server-pad kopiëren.

ls /usr/share/syslinux

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

6. Laten we nu naar de volgende stap gaan en TFTP-Server installeren en vervolgens alle bootloders-bestanden die door het Syslinux-pakket worden geleverd kopiëren van de hierboven genoemde locatie naar / var/lib/tftpboot pad door de volgende opdrachten te geven.

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

Stap 4: Stel het PXE-serverconfiguratiebestand in

7. Normaal gesproken leest de PXE-server zijn configuratie uit een groep specifieke bestanden (GUID-bestanden – eerst MAC files – next, Standaard file – last) gehost in een map met de naam pxelinux.cfg, die zich moet bevinden in de map die is opgegeven in tftp-root verklaring uit het DNSMASQ-hoofdconfiguratiebestand.

Maak de vereiste map pxelinux.cfg en vul deze met een standaard bestand door de volgende opdrachten te geven.

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

8. Nu is het tijd om het PXE Server-configuratiebestand te bewerken met geldige installatieopties voor Linux-distributies. Houd er ook rekening mee dat alle paden die in dit bestand worden gebruikt relatief moeten zijn ten opzichte van de map /var/lib/tftpboot.

Hieronder ziet u een voorbeeld van een configuratiebestand dat u kunt gebruiken, maar pas de installatie-images (kernel- en initrd-bestanden), protocollen (FTP, HTTP, HTTPS, NFS) en IP's aan om de bronrepository's en paden van uw netwerkinstallatie dienovereenkomstig weer te geven.

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

Voeg het volgende volledige fragment toe aan het bestand.

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

Zoals je kunt zien bevinden CentOS 7 opstartimages (kernel en initrd) zich in een map met de naam centos7 relatief ten opzichte van /var/lib/tftpboot (op een absoluut systeempad zou dit betekenen /var/lib/tftpboot/centos7) en de installatiebronnen kunnen worden bereikt door het FTP-protocol te gebruiken op 192.168.1.20/pub netwerklocatie – in dit geval worden de repo's lokaal gehost omdat het IP-adres hetzelfde is als het PXE-serveradres).

Ook specificeert menu label 3 dat de clientinstallatie moet worden uitgevoerd vanaf een externe locatie via VNC (vervang hier het VNC-wachtwoord door een sterk wachtwoord) voor het geval u installeert op een headless client en het menu label 2 specificeert als
installatie levert een CentOS 7 officiële internetspiegel op (in dit geval is een internetverbinding vereist die beschikbaar is op de client via DHCP en NAT).

Belangrijk: zoals je in de bovenstaande configuratie ziet, hebben we CentOS 7 gebruikt voor demonstratiedoeleinden, maar je kunt ook RHEL 7-images definiëren en de volledige instructies en configuraties volgen zijn alleen gebaseerd op CentOS 7, dus wees voorzichtig bij het kiezen van distributie.

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

9. Voor deze stap zijn CentOS-kernel- en initrd-bestanden vereist. Om deze bestanden te verkrijgen heeft u de CentOS 7 DVD ISO Image nodig. Dus ga je gang en download CentOS DVD Image, plaats het in je dvd-station en koppel de image aan het /mnt systeempad door de onderstaande opdracht te geven.

De reden om de dvd te gebruiken en niet een minimale cd-image is het feit dat deze dvd-inhoud later zou worden gebruikt om de
lokale installatiebronnen voor FTP-bronnen.

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

Als uw machine geen dvd-station heeft, kunt u CentOS 7 DVD ISO ook lokaal downloaden met de wget- of curl-hulpprogramma's van een CentOS-mirror en deze koppelen.

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. Nadat de dvd-inhoud beschikbaar is gemaakt, maakt u de map centos7 en kopieert u de opstartbare kernel en initrd-images van CentOS 7 van de op de dvd gemonteerde locatie naar de mapstructuur van 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

De reden om deze aanpak te gebruiken is dat je later nieuwe afzonderlijke mappen kunt maken in het pad /var/lib/tftpboot en andere Linux-distributies aan het PXE-menu kunt toevoegen zonder de hele mapstructuur te verpesten.

Stap 6: Maak CentOS 7 lokale mirror-installatiebron aan

11. Hoewel je Installatiebronmirrors kunt instellen via verschillende protocollen zoals HTTP, HTTPS of NFS, heb ik voor deze handleiding FTP gekozen > protocol omdat het zeer betrouwbaar en eenvoudig in te stellen is met behulp van de vsftpd-server.

Installeer de vsftpd-daemon verder, kopieer alle op de dvd gemonteerde inhoud naar het standaardserverpad van vsftpd (/var/ftp/pub) – dit kan enige tijd duren, afhankelijk van uw systeembronnen en voeg deze toe leesbare machtigingen voor dit pad door de volgende opdrachten uit te voeren.

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

Stap 7: Start en schakel Daemons in het hele systeem in

12. Nu de PXE-serverconfiguratie eindelijk is voltooid, start u de DNSMASQ- en VSFTPD-servers, controleert u hun status en schakelt u deze voor het hele systeem in automatisch starten na elke herstart van het systeem, door de onderstaande opdrachten uit te voeren.

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

Stap 8: Open Firewall en test FTP-installatiebron

13. Om een lijst te krijgen van alle poorten die open moeten zijn op uw firewall zodat clientmachines de PXE-server kunnen bereiken en opstarten, voert u de opdracht netstat uit en voegt u CentOS toe 7 Firewalld regelt dienovereenkomstig de luisterpoorten dnsmasq en 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. Om het FTP-installatiebronnetwerkpad te testen, opent u lokaal een browser (lynx zou dit moeten doen) of op een andere computer en typt u het IP-adres van uw PXE-server met
FTP-protocol gevolgd door /pub netwerklocatie op URL opgeslagen en het resultaat zou moeten zijn zoals weergegeven in de onderstaande schermafbeelding.

ftp://192.168.1.20/pub

15. Om de PXE-server te debuggen voor eventuele verkeerde configuraties of andere informatie en diagnostiek in de live-modus, voert u de volgende opdracht uit.

tailf /var/log/messages

16. Ten slotte is de laatste vereiste stap die u moet doen het ontkoppelen van CentOS 7 DVD en het verwijderen van het fysieke medium.

umount /mnt

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

17. Nu kunnen uw klanten CentOS 7 opstarten en installeren op hun machines door Network Boot te configureren als primair opstartapparaat vanuit hun systeem-BIOS of door op een opgegeven sleutel te drukken tijdens BIOS POST-bewerkingen zoals gespecificeerd in de moederbordhandleiding.

Om netwerk opstarten te kiezen. Nadat de eerste PXE-prompt verschijnt, drukt u op de F8-toets om de presentatie te openen en drukt u vervolgens op de Enter-toets om verder te gaan naar het PXE-menu.

18. Zodra u het PXE-menu heeft bereikt, kiest u het CentOS 7-installatietype, drukt u op de Enter-toets en gaat u verder met de installatieprocedure op dezelfde manier als waarop u deze zou installeren vanaf een lokaal media-opstartapparaat.

Houd er rekening mee dat voor het gebruik van variant 2 uit dit menu een actieve internetverbinding op de doelclient vereist is. Ook hieronder
screenshots ziet u een voorbeeld van een client-installatie op afstand via VNC.

Dat is alles voor het instellen van een minimale PXE-server op CentOS 7. In mijn volgende artikel uit deze serie zal ik andere kwesties met betrekking tot deze PXE-serverconfiguratie bespreken, zoals het instellen van geautomatiseerde installaties van CentOS 7 met behulp van Kickstart-bestanden en het toevoegen van andere Linux-distributies naar PXE-menu – Ubuntu Server en Debian 7.