Website-Suche

Installieren Sie mehrere Linux-Distributionen mit PXE Network Boot unter RHEL/CentOS 8


PXE-ServerPreboot eXecution Environment ist eine standardisierte Client-Server-Architektur, die ein Client-System anweist, mehrere Linux-Betriebssysteme über eine PXE-fähige Netzwerkschnittstelle zu starten, auszuführen oder zu installieren auf Ihrer Netzwerkinfrastruktur.

Anforderungen

    • Installation von CentOS 8 Minimal Server
    • Installation von RHEL 8 Minimal Server
    • Konfigurieren Sie die statische IP-Adresse in RHEL/CentOS 8

In diesem Artikel erfahren Sie, wie Sie einen PXE Network Boot Server unter CentOS/RHEL 8 mit gespiegelten lokalen Installations-Repositorys installieren und konfigurieren, die von CentOS 8 bereitgestellt werden. und RHEL 8 ISO-Images.

Für dieses PXE Network Boot-Setup installieren wir die folgenden Pakete auf dem System:

  • DNSMASQ – ein schlanker DNS-Forwarder, der einen DNS- und DHCP-Dienst mit Unterstützung für PXE und bereitstellt TFTP-Server.
  • Syslinux – ein Linux-Bootloader, der Bootloader für den Netzwerkstart bereitstellt.
  • TFTP-Server – ein einfaches Lockstep-Dateiübertragungsprotokoll, das bootfähige Images erstellt, die zum Herunterladen über ein Netzwerk verfügbar sind.
  • VSFTPD-Server – ein sicheres Dateiübertragungsprotokoll, das das lokal gemountete gespiegelte DVD-Image hostet – das als offizielles RHEL/CentOS 8-Spiegelinstallations-Repository fungiert, aus dem das Installationsprogramm die erforderlichen Pakete entnimmt.

Schritt 1: DNSMASQ-Server installieren und konfigurieren

1. Es ist wichtig, Sie daran zu erinnern, dass eine Ihrer Netzwerkschnittstellen mit einer statischen IP-Adresse aus demselben Netzwerk-IP-Bereich konfiguriert werden muss, der PXE-Dienste bereitstellt.

Sobald Sie eine statische IP-Adresse konfiguriert haben, aktualisieren Sie Ihre Systemsoftwarepakete und installieren Sie den DNSMASQ-Daemon.

dnf install dnsmasq

2. Sobald DNSMASQ installiert ist, finden Sie die Standardkonfigurationsdatei im Verzeichnis /etc/dnsmasq.conf, was selbsterklärend ist, aber mehr aufgrund der viel kommentierten Erklärungen schwierig zu konfigurieren.

Stellen Sie zunächst sicher, dass Sie eine Sicherungskopie dieser Datei erstellen, falls Sie sie später zur Überprüfung benötigen, und erstellen Sie dann wie gezeigt eine neue Konfigurationsdatei mit Ihrem bevorzugten Editor.

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

3. Kopieren Sie nun die folgenden Konfigurationen, fügen Sie sie in die Datei /etc/dnsmasq.conf ein und ändern Sie die Konfigurationsparameter entsprechend Ihren Netzwerkeinstellungen.

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

Die Konfigurationsanweisungen, die Sie ändern müssen, sind wie folgt:

  • Schnittstelle – Eine Netzwerkschnittstelle des Servers sollte lauschen und Dienste bereitstellen.
  • bind-interfaces – Entfernen Sie den Kommentar, um die Schnittstelle an eine bestimmte Netzwerkkarte zu binden.
  • domain – Ersetzen Sie es durch Ihren Domainnamen.
  • dhcp-range – Ändern Sie es mit Ihrem Netzwerk-IP-Bereich.
  • dhcp-boot – Ersetzen Sie es durch die IP-Adresse Ihrer Netzwerkschnittstelle.
  • dhcp-option=3,192.168.1.1 – Ersetzen Sie es durch Ihr Netzwerk-Gateway.
  • dhcp-option=6,92.168.1.1 – Ersetzen Sie es durch Ihre DNS-Server-IP.
  • server=8.8.4.4 – Fügen Sie die IP-Adressen Ihrer DNS-Weiterleitungen hinzu.
  • dhcp-option=28,10.0.0.255 – Ersetzen Sie es optional durch Ihre Netzwerk-Broadcast-IP-Adresse.
  • dhcp-option=42,0.0.0.0 – Fügen Sie Ihre Netzwerkzeitserver hinzu (0.0.0.0-Adresse dient zur Selbstreferenz).
  • pxe-prompt – Behalten Sie es als Standard bei.
  • pxe=service – Verwenden Sie x86PC für 32-Bit-/64-Bit-Architekturen und fügen Sie eine Menübeschreibungsaufforderung unter Anführungszeichen hinzu.
  • enable-tftp – Aktiviert den integrierten TFTP-Server.
  • tftp-root – Speicherort für Netzwerk-Bootdateien hinzufügen: /var/lib/tftpboot.

Für weitere erweiterte Optionen bezüglich Konfigurationsdateien lesen Sie bitte das dnsmasq-Handbuch.

Schritt 2: Installieren Sie die SYSLINUX-Bootloader

4. Nachdem die DNSMASQ-Hauptkonfiguration abgeschlossen ist, installieren Sie das Syslinx PXE-Bootloader-Paket mit dem folgenden Befehl.

dnf install syslinux

5. Die Syslinx PXE-Bootloader werden unter /usr/share/syslinux installiert. Sie können dies bestätigen, indem Sie den Befehl ls wie gezeigt ausführen.

ls /usr/share/syslinux

Schritt 3: TFTP-Server installieren und mit SYSLINUX-Bootloadern kopieren

6. Installieren Sie nun TFTP-Server und kopieren Sie alle Syslinux-Bootloader von /usr/share/syslinux/ nach /var/lib /tftpboot wie gezeigt.

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

Schritt 4: Richten Sie die PXE-Server-Konfigurationsdatei ein

7. Standardmäßig liest der PXE-Server seine Konfiguration aus einer Reihe spezifischer Dateien in pxelinux.cfg, die im gefunden werden müssen Verzeichnis, das in der Einstellung tftp-root aus der DNSMASQ-Konfigurationsdatei oben beschrieben ist.

Erstellen Sie zunächst ein Verzeichnis pxelinux.cfg und eine Datei default, indem Sie die folgenden Befehle ausführen.

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

8. Öffnen und bearbeiten Sie nun die PXE-default-Konfigurationsdatei mit den korrekten Installationsoptionen für die Linux-Distribution. Denken Sie außerdem daran, dass die in dieser Datei festgelegten Pfade relativ zum Verzeichnis /var/lib/tftpboot sein müssen.

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

Im Folgenden finden Sie eine Beispielkonfigurationsdatei, die Sie verwenden können. Stellen Sie jedoch sicher, dass Sie die Installationsimages, Protokolle und IP-Adressen ändern, um die Quellrepositorys und Speicherorte Ihrer Netzwerkinstallation entsprechend zu widerspiegeln.

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 der obigen Konfiguration können Sie feststellen, dass sich die CentOS 8-Boot-Images (kernel und initrd) in einem centos7 befinden > Verzeichnis relativ zu /var/lib/tftpboot (d. h. /var/lib/tftpboot/centos7) und auf die Installationsrepositorys kann über das FTP-Protokoll auf 192.168.1.2/pub (IP-Adresse des PXE-Servers).

Außerdem beschreibt Menübezeichnung 2 die Spiegel-Repositorys der offiziellen CentOS 8-Installationsquellen (auf dem Clientsystem ist eine Internetverbindung erforderlich) und Menübezeichnung 3 beschreibt, dass die Client-Installation durchgeführt werden sollte über einen entfernten VNC (ersetzen Sie hier das VNC-Passwort durch ein sicheres Passwort).

Wichtig: Wie Sie in der obigen Konfiguration sehen, haben wir zu Demonstrationszwecken das CentOS 8-Image verwendet, Sie können aber auch verwenden RHEL 8-Bilder.

Schritt 5: CentOS 8-Boot-Images zum PXE-Server hinzufügen

9. Um CentOS 8-Images zum PXE-Server hinzuzufügen, müssen Sie das CentOS 8-DVD-ISO-Image lokal mit dem Befehl „wget“ herunterladen und 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. Sobald Sie CentOS 8 heruntergeladen haben, müssen Sie ein centos8-Verzeichnis erstellen und bootfähige Kernel- und Initrd-Images kopieren.

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

Der Grund für diesen Ansatz besteht darin, dass Sie später für jede neue Linux-Distribution separate Verzeichnisse unter /var/lib/tftpboot haben können, ohne die gesamte Verzeichnisstruktur durcheinander zu bringen.

Schritt 6: Erstellen Sie eine lokale CentOS 8 Mirror-Installationsquelle

11. Für die Einrichtung stehen verschiedene Protokolle (HTTP, HTTPS oder NFS) zur Verfügung Die lokalen Installationsquellen von CentOS 8 spiegeln sich, aber ich habe das FTP-Protokoll gewählt, weil es mit dem vsftpd-Server einfach einzurichten ist.

Lassen Sie uns den Vsftpd-Server installieren und den gesamten Inhalt der CentOS 8-DVD in das FTP-Verzeichnis /var/ftp/pub kopieren, wie gezeigt.

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

12. Nachdem nun die gesamte PXE-Serverkonfiguration abgeschlossen ist, können Sie den Status der DNSMASQ- und VSFTPD-Server starten, aktivieren und überprüfen.

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

13. Als Nächstes müssen Sie Ports in Ihrer Firewall öffnen, damit Clientsysteme den PXE-Server erreichen und von diesem starten können.

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. Um den Netzwerkstandort der FTP-Installationsquelle zu überprüfen, öffnen Sie Ihren Browser und geben Sie die IP-Adresse des PXE-Servers mit dem FTP-Protokoll gefolgt vom Netzwerkstandort /pub ein.

ftp://192.168.1.2/pub

Schritt 7: Konfigurieren Sie Clients so, dass sie vom Netzwerk starten

15. Konfigurieren Sie nun Client-Systeme zum Booten und Installieren von CentOS 8 auf ihren Systemen, indem Sie Network Boot als primäres Startgerät im BIOS-Menü konfigurieren.

Nach dem Systemstart erhalten Sie eine PXE-Eingabeaufforderung, in der Sie die Taste F8 drücken müssen, um die Präsentation aufzurufen, und dann die Eingabetaste drücken, um zum PXE-Menü zu gelangen.

Das ist alles für die Einrichtung eines minimalen PXE-Servers unter CentOS/RHEL 8.