Installer flere Linux-distribusjoner ved å bruke PXE Network Boot på RHEL/CentOS 8


PXE ServerPreboot eXecution Environment er en standardisert klient-server-arkitektur som instruerer et klientsystem til å starte opp, kjøre eller installere flere Linux-operativsystemer ved å bruke et PXE-kompatibelt nettverksgrensesnitt på nettverksinfrastrukturen din.

Krav

    • Installasjon av CentOS 8 Minimal Server
    • Installasjon av RHEL 8 Minimal Server
    • Konfigurer statisk IP-adresse i RHEL/CentOS 8

I denne artikkelen lærer du hvordan du installerer og konfigurerer en PXE Network Boot ServerCentOS/RHEL 8 med speilvendte lokale installasjonslagre levert av CentOS 8 og RHEL 8 ISO-bilder.

For dette PXE Network Boot-oppsettet vil vi installere følgende pakker på systemet:

  • DNSMASQ – en lett DNS-videresending som gir DNS- og DHCP-tjenester med støtte for PXE og en TFTPserver.
  • Syslinux – en Linux-oppstartslaster som gir oppstartslastere for nettverksoppstart.
  • TFTP-server – en enkel låstrinns filoverføringsprotokoll som lager oppstartbare bilder som er tilgjengelige for nedlasting via et nettverk.
  • VSFFTPD-server – en sikker filoverføringsprotokoll som vil være vert for det lokalt monterte speilvendte DVD-bildet – som vil fungere som et offisielt RHEL/CentOS 8 speilinstallasjonslager hvor installasjonsprogrammet vil ta ut de nødvendige pakkene.

Trinn 1: Installer og konfigurer DNSMASQ Server

1. Det er viktig å minne deg på at ett av nettverksgrensesnittene dine må konfigureres med en statisk IP-adresse fra samme nettverks-IP-område som gir PXE-tjenester.

Når du har konfigurert en statisk IP-adresse, oppdater systemprogramvarepakkene og installer DNSMASQ-demonen.

dnf install dnsmasq

2. Når DNSMASQ er installert, vil du finne standard konfigurasjonsfilen i katalogen /etc/dnsmasq.conf, som er selvforklarende, men mer vanskelig å konfigurere på grunn av de svært kommenterte forklaringene.

Først, sørg for å ta en sikkerhetskopi av denne filen i tilfelle du kanskje trenger den for å se gjennom senere, og lag deretter en ny konfigurasjonsfil ved å bruke din favorittredigerer som vist.

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

3. Nå, kopier og lim inn følgende konfigurasjoner i filen /etc/dnsmasq.conf og endre konfigurasjonsparametrene i henhold til nettverksinnstillingene dine.

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

Konfigurasjonssetningene du må endre er fulgt:

  • grensesnitt – Et nettverksgrensesnitt til serveren skal lytte og tilby tjenester.
  • bind-grensesnitt – Fjern kommentarer for å binde grensesnittet til et gitt nettverkskort.
  • domene – Erstatt det med ditt domenenavn.
  • dhcp-range – Endre den med nettverkets IP-rekkevidde.
  • dhcp-boot – Erstatt den med IP-adressen for nettverksgrensesnittet.
  • dhcp-option=3,192.168.1.1 – Erstatt den med nettverksgatewayen.
  • dhcp-option=6,92.168.1.1 – Erstatt den med din DNS-server-IP.
  • server=8.8.4.4 – Legg til IP-adressene til DNS-videresendingene dine.
  • dhcp-option=28,10.0.0.255 – Bytt den ut med IP-adressen for nettverkskringkastingen.
  • dhcp-option=42,0.0.0.0 -Legg til nettverkstidsservere (0.0.0.0-adresse er for selvreferanse).
  • pxe-prompt – Behold den som standard.
  • pxe=service – Bruk x86PC for 32-bit/64-bit arkitektur og legg til en menybeskrivelse under anførselstegn.
  • enable-tftp – Aktiverer den innebygde TFTP-serveren.
  • tftp-root – Legg til nettverksoppstartsfilplassering /var/lib/tftpboot.

For andre avanserte alternativer angående konfigurasjonsfiler, les gjerne dnsmasq-manualen.

Trinn 2: Installer SYSLINUX Bootloaders

4. Etter at DNSMASQ-hovedkonfigurasjonen er fullført, installer Syslinx PXE-oppstartslasterpakken ved å bruke følgende kommando.

dnf install syslinux

5. Syslinx PXE-oppstartslasterene er installert under /usr/share/syslinux, du kan bekrefte det ved å kjøre ls-kommandoen som vist.

ls /usr/share/syslinux

Trinn 3: Installer TFTP-serveren og kopier den med SYSLINUX Bootloaders

6. Installer nå TFTP-server og kopier alle Syslinux-oppstartslastere fra /usr/share/syslinux/ til /var/lib /tftpboot som vist.

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

Trinn 4: Konfigurer PXE-serverkonfigurasjonsfil

7. Som standard leser PXE-serveren sin konfigurasjon fra et sett med spesifikke filer som finnes i pxelinux.cfg, som må finnes i katalogen beskrevet i tftp-root-innstillingen fra DNSMASQ-konfigurasjonsfilen ovenfor.

Først oppretter du en pxelinux.cfg-katalog og oppretter en standard-fil ved å utstede følgende kommandoer.

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

8. Åpne og rediger PXE standard-konfigurasjonsfil med riktige installasjonsalternativer for Linux-distribusjon. Husk også at banene som er satt i denne filen må være i forhold til /var/lib/tftpboot-katalogen.

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

Følgende er et eksempel på en konfigurasjonsfil som du kan bruke den, men sørg for å endre installasjonsbildene, protokollene og IP-ene for å gjenspeile nettverksinstallasjonens kildelagre og plasseringer tilsvarende.

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

I konfigurasjonen ovenfor kan du legge merke til at CentOS 8 oppstartsbildene (kjerne og initrd) ligger i en centos7 > katalog i forhold til /var/lib/tftpboot (dvs. /var/lib/tftpboot/centos7) og installasjonsrepositoriene kan nås ved å bruke FTP-protokollen på 192.168.1.2/pub (IP-adressen til PXE-serveren).

I tillegg beskriver menyetikett 2 offisielle CentOS 8-installasjonskilder speillagre (internetttilkobling må på klientsystemet) og menyetikett 3 beskriver at klientinstallasjonen bør gjøres via en ekstern VNC (her bytt ut VNC-passord med et sterkt passord).

Viktig: Som du ser i konfigurasjonen ovenfor, har vi brukt CentOS 8-bilde til demonstrasjonsformål, men du kan også bruke RHEL 8-bilder.

Trinn 5: Legg til CentOS 8 Boot Images til PXE Server

9. For å legge til CentOS 8-bilder til PXE Server, må du laste ned CentOS 8 DVD ISO Image lokalt ved å bruke wget-kommandoen og montere den.

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. Når du har lastet ned CentOS 8, må du opprette en centos8-katalog og kopiere oppstartbar kjerne og initrd-bilder.

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

Årsaken bak denne tilnærmingen er at du senere kan ha separate kataloger for hver nye Linux-distribusjon under /var/lib/tftpboot uten å rote til hele katalogstrukturen.

Trinn 6: Opprett CentOS 8 Local Mirror Installation Source

11. Det finnes en rekke protokoller (HTTP, HTTPS eller NFS) som er tilgjengelige for oppsett CentOS 8 lokal installasjonskilde speiler, men jeg har valgt FTP-protokollen fordi den er enkel å sette opp ved hjelp av vsftpd-serveren.

La oss installere Vsftpd-serveren og kopiere alt CentOS 8 DVD-innholdet til FTP-katalogen /var/ftp/pub som vist.

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

12. Nå som all PXE-serverkonfigurasjonen er fullført, kan du starte, aktivere og bekrefte statusen til DNSMASQ- og VSFFTPD-servere.

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

13. Deretter må du åpne porter på brannmuren din for at klientsystemer skal kunne nå og starte opp fra PXE-serveren.

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. For å bekrefte nettverksplasseringen for FTP-installasjonskilden, åpne nettleseren din og skriv inn PXE-serverens IP-adresse med FTP-protokollen etterfulgt av /pub nettverksplassering.

ftp://192.168.1.2/pub

Trinn 7: Konfigurer klienter til å starte opp fra nettverket

15. Konfigurer nå klientsystemer til å starte opp og installere CentOS 8 på systemene deres ved å konfigurere Nettverksoppstart som primær oppstartsenhet fra BIOS-menyen.

Etter oppstart av systemet vil du få en PXE-prompt, der du må trykke F8-tasten for å gå inn i presentasjonen og deretter trykke Enter-tasten for å gå videre til PXE-menyen.

Det er alt for å sette opp en minimal PXE-server på CentOS/RHEL 8.