Installation mehrerer Linux-Distributionen mit PXE-Netzwerk-Boot unter RHEL/CentOS 8

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

Anforderungen

    • Installation von CentOS 8 Minimal Server
    • Installation von RHEL 8 Minimal Server
    • Konfigurieren einer statischen IP-Adresse in RHEL/CentOS 8

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

Für diese PXE Network Boot Einrichtung werden wir folgende Pakete auf dem System installieren:

  • DNSMASQ – ein leichtgewichtiger DNS-Forwarder, der DNS- und DHCP-Dienste mit Unterstützung für PXE und einen TFTP-Server bietet.
  • Syslinux – ein Linux-Bootloader, der Bootloader für das Booten über das Netzwerk bereitstellt.
  • TFTP Server – ein einfaches Lockstep File Transfer Protocol, das bootfähige Images erstellt, die über ein Netzwerk heruntergeladen werden können.
  • VSFTPD Server – ein sicheres Dateiübertragungsprotokoll, das das lokal gemountete gespiegelte DVD-Image hostet – das als offizielles RHEL/CentOS 8 Spiegel-Installations-Repository fungiert, aus dem der Installer seine benötigten Pakete entnimmt.

Schritt 1: Installieren und Konfigurieren des DNSMASQ Servers

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.

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

# dnf install dnsmasq
Installieren Sie DNSMASQ auf CentOS

2. Sobald DNSMASQ installiert ist, finden Sie seine Standardkonfigurationsdatei im Verzeichnis /etc/dnsmasq.conf, die selbsterklärend ist, aber aufgrund ihrer stark kommentierten Erläuterungen schwieriger zu konfigurieren ist.

Sichern Sie zunächst diese Datei für den Fall, dass Sie sie später noch einmal benötigen, und erstellen Sie dann eine neue Konfigurationsdatei mit Ihrem bevorzugten Editor, wie in der Abbildung gezeigt.

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

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

dnsmasq.conf – Configuration File
Configure DNSMASQ on CentOS

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

  • interface – Eine Netzwerkschnittstelle des Servers soll lauschen und Dienste bereitstellen.
  • bind-interfaces – Uncomment to bind the interface to a given network card.
  • domain – Ersetzen Sie es durch Ihren Domainnamen.
  • dhcp-range – Ersetzen Sie es durch Ihren 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 Ihre DNS-Forwarder-IP-Adressen hinzu.
  • dhcp-option=28,10.0.0.255 – Ersetzen Sie es durch Ihre Netzwerk-Broadcast-IP-Adresse (optional).
  • dhcp-option=42,0.0.0.0 – Fügen Sie Ihre Netzwerk-Zeitserver hinzu (0.0.0.0-Adresse ist für die Selbstreferenz).
  • pxe-prompt – Behalte es als Standard bei.
  • pxe=service – Verwende x86PC für 32-bit/64-bit Architekturen und füge einen Menübeschreibungsprompt unter Anführungszeichen hinzu.
  • enable-tftp – Aktiviert den eingebauten TFTP-Server.
  • tftp-root – Füge den Speicherort der Netzwerkbootdateien /var/lib/tftpboot hinzu.

Für andere erweiterte Optionen bezüglich der Konfigurationsdateien lesen Sie bitte das dnsmasq Handbuch.

Schritt 2: Installieren des SYSLINUX Bootloaders

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

# dnf install syslinux
Syslinux in CentOS installieren

5. Die Syslinx PXE Bootloader sind unter /usr/share/syslinux installiert, Sie können dies mit dem ls-Befehl wie gezeigt überprüfen.

# ls /usr/share/syslinux
Syslinux Bootloader überprüfen

Schritt 3: TFTP-Server installieren und mit SYSLINUX Bootloader 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
Installieren Sie TFTP-Server in CentOS

Schritt 4: Einrichten der PXE Server Konfigurationsdatei

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

Erstellen Sie zunächst ein pxelinux.cfg-Verzeichnis und erstellen Sie eine default-Datei, indem Sie die folgenden Befehle eingeben.

# 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 der Linux-Distribution. Denken Sie auch daran, dass die in dieser Datei festgelegten Pfade relativ zum /var/lib/tftpboot-Verzeichnis sein müssen.

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

Das Folgende ist eine Beispielkonfigurationsdatei, die Sie verwenden können, aber stellen Sie sicher, dass Sie die Installations-Images, Protokolle und IPs so ändern, dass sie Ihre Netzwerkinstallationsquellen und -orte entsprechend widerspiegeln.

PXE-Standardkonfigurationsdatei
PXE-Standardkonfigurationsdatei

In der obigen Konfiguration können Sie feststellen, dass die CentOS 8-Boot-Images (Kernel und initrd) in einem centos7-Verzeichnis relativ zu /var/lib/tftpboot (d.d.h. /var/lib/tftpboot/centos7) befinden und auf die Installer-Repositories über das FTP-Protokoll auf 192.168.1.2/pub (IP-Adresse des PXE-Servers) zugegriffen werden kann.

Außerdem beschreibt menu label 2 die offiziellen CentOS 8-Installationsquellen und Mirror-Repositories (Internetverbindung auf dem Client-System erforderlich) und menu label 3, dass die Client-Installation über ein Remote-VNC durchgeführt werden sollte (hier VNC-Passwort durch ein sicheres Passwort ersetzen).

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

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.

10. Sobald Sie CentOS 8 heruntergeladen haben, müssen Sie ein centos7-Verzeichnis erstellen und bootfähige Kernel- und initrd-Images kopieren.

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

Schritt 6: Erstellen von CentOS 8 Local Mirror Installation Source

11. Es gibt eine Reihe von Protokollen (HTTP, HTTPS oder NFS), die für die Einrichtung von lokalen CentOS 8-Installationsquellenspiegeln zur Verfügung stehen, aber ich habe mich für das FTP-Protokoll entschieden, weil es mit dem vsftpd-Server einfach einzurichten ist.

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

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

12. Nun, da die gesamte PXE-Serverkonfiguration abgeschlossen ist, können Sie die DNSMASQ- und VSFTPD-Server starten, aktivieren und ihren Status ü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 die Ports auf Ihrer Firewall öffnen, damit die Client-Systeme den PXE-Server erreichen und von ihm booten können.

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 von /pub Netzwerkstandort ein.

ftp://192.168.1.2/pub
FTP-Verzeichnis überprüfen

Schritt 7: Konfigurieren der Clients zum Booten vom Netzwerk

15. Konfigurieren Sie nun die Client-Systeme so, dass sie booten und CentOS 8 auf ihren Systemen installieren, indem Sie Network Boot als primäres Boot-Gerät im BIOS-Menü konfigurieren.

Nach dem Booten des Systems erhalten Sie eine PXE-Eingabeaufforderung, bei der Sie die Taste F8 drücken müssen, um die Präsentation einzugeben, und dann die Eingabetaste drücken, um zum PXE-Menü zu gelangen.

PXE Boot Server Menü
Installation von CentOS 8 über PXE Server

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.