Sette opp en 'PXE Network Boot Server' for flere Linux-distribusjonsinstallasjoner i RHEL/CentOS 7


PXE Server – Preboot eXecution Environment – instruerer en klientdatamaskin til å starte opp, kjøre eller installere et operativsystem direkte fra et nettverksgrensesnitt, noe som eliminerer behovet for å brenne en CD/DVD eller bruke et fysisk medium, eller, kan lette jobben med å installere Linux-distribusjoner på nettverksinfrastrukturen din på flere maskiner samtidig.

Krav

  1. CentOS 7 minimal installasjonsprosedyre
  2. RHEL 7 Minimal installasjonsprosedyre
  3. Konfigurer statisk IP-adresse i RHEL/CentOS 7
  4. Fjern uønskede tjenester i RHEL/CentOS 7
  5. Installer NTP-server for å stille inn riktig systemtid i RHEL/CentOS 7

Denne artikkelen vil forklare hvordan du kan installere og konfigurere en PXE-serverRHEL/CentOS 7 x64-bit med speilvendte lokale installasjonslagringssteder, medfølgende kilder av CentOS 7 DVD ISO image, ved hjelp av DNSMASQ Server.

Som gir DNS- og DHCP-tjenester, Syslinux-pakke som gir oppstartslastere for nettverksoppstart, TFTP-server, som gjør oppstartbare bilder tilgjengelig for nedlasting via nettverk ved hjelp av Trivial File Transfer Protocol (TFTP) og VSFFTPD-server som vil være vert for det lokalt monterte speilede DVD-bildet – som vil fungere som en offisiell RHEL /CentOS 7 speilinstallasjonslager hvor installasjonsprogrammet vil trekke ut de nødvendige pakkene.

Trinn 1: Installer og konfigurer DNSMASQ Server

1. Du trenger ikke å minne deg på at det er absolutt krevende at et av nettverkskortgrensesnittene dine, i tilfelle serveren din har flere NIC-er, må konfigureres med en statisk IP-adresse fra samme IP-område som tilhører nettverkssegmentet som skal levere PXE-tjenester.

Så, etter at du har konfigurert den statiske IP-adressen, oppdatert systemet og utført andre innledende innstillinger, bruk følgende kommando for å installere DNSMASQ-demonen.

yum install dnsmasq

2. DNSMASQ hovedstandard konfigurasjonsfil som ligger i katalogen /etc er selvforklarende, men har til hensikt å være ganske vanskelig å redigere, følg dens svært kommenterte forklaringer.

Sørg først for at du sikkerhetskopierer denne filen i tilfelle du trenger å se den senere, og deretter oppretter du en ny tom konfigurasjonsfil ved å bruke din favoritt tekstredigerer ved å utstede følgende kommandoer.

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

3. Nå kopierer og limer du inn følgende konfigurasjoner i dnsmasq.conf-filen og forsikrer deg om at du endrer de forklarte setningene nedenfor slik at de samsvarer med nettverksinnstillingene dine.

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

Utsagnene du må endre er som følger:

  1. grensesnitt – Grensesnitt som serveren skal lytte og tilby tjenester.
  2. binding-grensesnitt – Fjern kommentarer for bare å binde på dette grensesnittet.
  3. domene – Erstatt det med ditt domenenavn.
  4. dhcp-range – Erstatt det med IP-område definert av nettverksmasken på dette segmentet.
  5. dhcp-boot – Erstatt IP-setningen med grensesnittets IP-adresse.
  6. dhcp-option=3,192.168.1.1 – Bytt ut IP-adressen med nettverkssegmentet Gateway.
  7. dhcp-option=6,92.168.1.1 – Bytt ut IP-adressen med din DNS-server-IP – flere DNS-IP-er kan defineres.
  8. server=8.8.4.4 – Angi IP-adressene til DNS-videresendingene dine.
  9. dhcp-option=28,10.0.0.255 – Bytt ut IP-adressen med nettverkskringkastingsadresse – valgfritt.
  10. dhcp-option=42,0.0.0.0 – Sett nettverkstidsservere – valgfritt (0.0.0.0-adresse er for selvreferanse).
  11. pxe-prompt – La det være standard – betyr å trykke F8-tasten for å gå inn i meny 60 med sekunders ventetid.
  12. pxe=service – Bruk x86PC for 32-bit/64-bit arkitektur og skriv inn en menybeskrivelse under anførselstegn. Andre verdityper kan være: PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI og X86-64_EFI.
  13. enable-tftp – Aktiverer den innebygde TFTP-serveren.
  14. tftp-root – Bruk /var/lib/tftpboot – plasseringen for alle nettoppstartsfiler.

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

Trinn 2: Installer SYSLINUX Bootloaders

4. Etter at du har redigert og lagret DNSMASQ hovedkonfigurasjonsfil, fortsett og installer Syslinx PXE oppstartslasterpakke ved å utstede følgende kommando.

yum install syslinux

5. PXE-oppstartslasterfilene ligger i /usr/share/syslinux absolutte systembane, så du kan sjekke det ved å liste dette baneninnholdet. Dette trinnet er valgfritt, men du må kanskje være klar over denne banen fordi på neste trinn vil vi kopiere alt innholdet til TFTP Server banen.

ls /usr/share/syslinux

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

6. La oss nå gå videre til neste trinn og installere TFTP-server og deretter kopiere alle bootloders-filer levert av Syslinux-pakken fra plasseringen ovenfor til / var/lib/tftpboot-bane ved å utstede følgende kommandoer.

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

Trinn 4: Konfigurer PXE-serverkonfigurasjonsfil

7. Vanligvis leser PXE-serveren sin konfigurasjon fra en gruppe spesifikke filer (GUID-filer – først MAC filer – neste, Standard fil – sist) som ligger i en mappe kalt pxelinux.cfg, som må være plassert i katalogen som er spesifisert i tftp-root uttalelse fra DNSMASQ hovedkonfigurasjonsfil.

Opprett den nødvendige katalogen pxelinux.cfg og fyll den med en standard-fil ved å utstede følgende kommandoer.

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

8. Nå er det på tide å redigere PXE Server-konfigurasjonsfilen med gyldige installasjonsalternativer for Linux-distribusjoner. Vær også oppmerksom på at alle stier som brukes i denne filen må være i forhold til /var/lib/tftpboot-katalogen.

Nedenfor kan du se et eksempel på en konfigurasjonsfil som du kan bruke den, men modifiser installasjonsbildene (kjerne- og initrd-filer), protokoller (FTP, HTTP, HTTPS, NFS) og IP-er for å gjenspeile nettverksinstallasjonens kildelagre og stier tilsvarende.

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

Legg til følgende hele utdrag til filen.

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

Som du kan se CentOS 7-oppstartsbilder (kjerne og initrd) ligger i en katalog kalt centos7 i forhold til /var/lib/tftpboot (på en absolutt systembane vil dette bety /var/lib/tftpboot/centos7) og installasjonsrepositoriene kan nås ved å bruke FTP-protokollen på 192.168.1.20/pub nettverksplassering – i dette tilfellet vert repoene lokalt fordi IP-adressen er den samme som PXE-serveradressen).

Meny etikett 3 spesifiserer også at klientinstallasjonen skal gjøres fra et eksternt sted via VNC (her erstatte VNC-passordet med et sterkt passord) i tilfelle du installerer på en hodeløs klient og menyen etikett 2 spesifiserer som
installasjonen henter et CentOS 7 offisielt Internett-speil (dette tilfellet krever en Internett-tilkobling tilgjengelig på klienten via DHCP og NAT).

Viktig: Som du ser i konfigurasjonen ovenfor, har vi brukt CentOS 7 til demonstrasjonsformål, men du kan også definere RHEL 7-bilder og følge hele instruksjoner og konfigurasjoner er kun basert på CentOS 7, så vær forsiktig når du velger distribusjon.

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

9. For dette trinnet kreves CentOS-kjerne- og initrd-filer. For å få disse filene trenger du CentOS 7 DVD ISO-bildet. Så fortsett og last ned CentOS DVD Image, legg det i DVD-stasjonen og monter bildet til /mnt systembanen ved å gi kommandoen nedenfor.

Grunnen til å bruke DVD-en og ikke et Minimal CD-bilde er det faktum at dette DVD-innholdet senere vil bli brukt til å lage
lokalt installasjonsprogram for FTP-kilder.

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

Hvis maskinen din ikke har noen DVD-stasjon, kan du også laste ned CentOS 7 DVD ISO lokalt ved å bruke wget eller curl-verktøy fra et CentOS-speil og montere det.

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. Etter at DVD-innholdet er gjort tilgjengelig, oppretter du centos7-katalogen og kopierer CentOS 7 oppstartbar kjerne og initrd-bilder fra DVD-montert plassering til centos7-mappestrukturen.

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

Grunnen til å bruke denne tilnærmingen er at du senere kan lage nye separate kataloger i /var/lib/tftpboot banen og legge til andre Linux-distribusjoner til PXE-menyen uten å rote til hele katalogstrukturen.

Trinn 6: Opprett CentOS 7 Local Mirror Installation Source

11. Selv om du kan konfigurere Installasjonskildespeil via en rekke protokoller som HTTP, HTTPS eller NFS, for denne veiledningen, har jeg valgt FTP protokollen fordi den er veldig pålitelig og enkel å sette opp ved hjelp av vsftpd server.

Installer vsftpd-demonen videre, kopier alt DVD-montert innhold til vsftpd standard serverbane (/var/ftp/pub) – dette kan ta en stund avhengig av systemressursene dine og tillegg lesbare tillatelser til denne banen ved å utstede følgende kommandoer.

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

Trinn 7: Start og aktiver Daemons hele systemet

12. Nå som PXE-serverkonfigurasjonen endelig er fullført, start DNSMASQ- og VSFFTPD-servere, verifiser statusen deres og aktiverer den for hele systemet, for å starter automatisk etter hver omstart av systemet, ved å kjøre kommandoene nedenfor.

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

Trinn 8: Åpne brannmuren og test FTP-installasjonskilden

13. For å få en liste over alle porter som må være åpne på brannmuren din for at klientmaskiner skal nå og starte opp fra PXE-server, kjør kommandoen netstat og legg til CentOS 7 Firewalld regler i henhold til dnsmasq og vsftpd lytteporter.

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. For å teste nettverksbanen for FTP-installasjonskilden, åpne en nettleser lokalt (lynx bør gjøre det) eller på en annen datamaskin og skriv inn IP-adressen til PXE-serveren med
FTP-protokoll etterfulgt av /pub nettverksplassering på URL arkivert, og resultatet skal være som presentert i skjermbildet nedenfor.

ftp://192.168.1.20/pub

15. For å feilsøke PXE-serveren for eventuelle feilkonfigurasjoner eller annen informasjon og diagnostikk i live-modus, kjør følgende kommando.

tailf /var/log/messages

16. Til slutt, det siste nødvendige trinnet du må gjøre er å avmontere CentOS 7 DVD og fjerne det fysiske mediet.

umount /mnt

Trinn 9: Konfigurer klienter til å starte opp fra nettverket

17. Nå kan klientene dine starte opp og installere CentOS 7 på maskinene sine ved å konfigurere Network Boot som primær oppstartsenhet fra systemets BIOS eller ved å trykke på en spesifisert tast under BIOS POST-operasjoner som spesifisert i hovedkorthåndboken.

For å velge nettverksoppstart. Etter at den første PXE-ledeteksten vises, trykk F8-tasten for å gå inn i presentasjonen og trykk deretter Enter-tasten for å gå videre til PXE-menyen.

18. Når du har kommet til PXE-menyen, velg din CentOS 7-installasjonstype, trykk Enter-tasten og fortsett med installasjonsprosedyren på samme måte som du kan installere den fra en lokal medieoppstartsenhet.

Vær oppmerksom på at bruk av variant 2 fra denne menyen krever en aktiv Internett-tilkobling på målklienten. Også nedenfor
skjermbilder kan du se et eksempel på en ekstern klientinstallasjon via VNC.

Det er alt for å sette opp en minimal PXE-serverCentOS 7. I min neste artikkel fra denne serien vil jeg diskutere andre problemer angående denne PXE-serverkonfigurasjonen, for eksempel hvordan du setter opp automatiserte installasjoner av CentOS 7 ved å bruke Kickstart-filer og legge til andre Linux-distribusjoner til PXE-menyen – Ubuntu Server og Debian 7.