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
- Schritt 1: Installieren und Konfigurieren des DNSMASQ Servers
- Schritt 2: Installieren des SYSLINUX Bootloaders
- Schritt 3: TFTP-Server installieren und mit SYSLINUX Bootloader kopieren
- Schritt 4: Einrichten der PXE Server Konfigurationsdatei
- Schritt 5: CentOS 8-Boot-Images zum PXE-Server hinzufügen
- Schritt 6: Erstellen von CentOS 8 Local Mirror Installation Source
- Schritt 7: Konfigurieren der Clients zum Booten vom Netzwerk
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
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.
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
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
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
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.
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
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.
Das ist alles für die Einrichtung eines minimalen PXE Servers auf CentOS/RHEL 8.