Mit einem passenden PXE-Boot-Server installieren Administratoren Linux-Server und -Clients automatisiert direkt über das LAN, ohne CDs und auf Wunsch auch ohne Interaktion eines Benutzers.
Das grafische Tool »redhat-config-kickstart« listet alle Konfigurations-optionen einer Linux-Installation auf und sichert diese in einer Datei. Später dient die Datei zur unbeaufsichtigten Maschineninstallation.
Die Konfiguration des DHCP-Servers steht in der Datei /etc/dhcp.conf. Dort legen Sie zunächst die globalen Einstellungen des DHCP-Servers fest und geben dann einen IP-Adressbereich für die automatische IP-Vergabe an. In unserem Test-Setup arbeitet der PXE-Server mit dem Namen »srv01.nwc6.local« auf der statischen IP-Adresse 192.168.6.1. Den DNS-Dienst übernimmt die Firewall auf 192.168.6.250, die zugleich als Default-Gateway auftritt:
Da unser PXE-Server zugleich als CIFS/SMB-Dateiserver arbeitet, listet ihn die DHCP-Konfiguration als NetBIOS-Nameserver.
Das Netzwerk arbeitet ohne dynamische DNS-Updates. Diese Funktion müssen Sie entweder komplett konfigurieren oder explizit ausschalten, sonst startet der DHCP-Server nicht.
Nach den globalen Optionen folgt die Definition des DHCP-Adressegments. Hier stehen der zu verwendende Adressbereich und der Name der PXE-Bootdatei. Der Adressbereich ist mit dem Parameter »dynamic-bootp« versehen, der die Remote-Boot-Funktion aktiviert.
Möchten Sie einen DNS-Server auf dem gleichen Rechner verwenden und dynamische Updates zulassen, gehen Sie wie folgt vor: Installieren und konfigurieren Sie den Bind-9-Nameserver mit einer Primary-Forward-Zone für Ihr Adresssegment. Die Bind-9-Installation generiert dabei auch eine Schlüsseldatei für dynamische Updates. Nur wenn DHCP- und DNS-Server den gleichen Schlüssel einsetzen, nimmt der DNS-Server die Updates an. Aktivieren Sie in der Forward-Zone des DNS die Funktion für dynamische Updates, und hinterlegen Sie dort den Schlüssel. Die gleichen Schritte nehmen Sie beim DHCP-Server im zugehörigen Subnet vor. Wie die exakten Konfigurations-Parameter dafür lauten, finden Sie in den Man-Pages zu dhcp.conf und named sowie in den Howtos. Starten Sie nach Abschluss der Konfiguration den Dienst neu:
Achten Sie darauf, dass Sie im LAN-Segment nur einen DHCP-Server verwenden, sonst kommt es zu Problemen.
Der TFTP-Server startet über den Xinet-Daemon. Die Installation des TFTP-Dienstes generiert ein Verzeichnis /tftpboot, das die Boot- und Konfigurationsdateien für Clients aufnimmt. Um den Dienst zu aktivieren, gehen Sie in das Verzeichnis /etc/xinetd.d. Dort liegen die Grundkonfigurationsdateien aller Services, die xinetd verwaltet. Öffnen Sie die Datei tftp mit einem Editor und ändern die Zeile
Anschließend starten Sie den xinetd-Prozess neu:
Sollte Sie das /tftpboot-Verzeichnis direkt im Root ihres Systems zu sehr stören, können Sie es auch in ein anderes Unterverzeichnis verschieben und in /etc/xinetd.d/tftp entsprechend die Verzeichniszeile
ändern.
Anschließend benötigen Sie den passenden Installations-Kernel und den PXE-Bootloader. Installieren Sie zunächst das syslinux-Paket, falls es sich nicht bereits auf dem Rechner befindet. Kopieren Sie den Bootloader aus dem Syslinux-Verzeichnis in das Boot-Verzeichnis
Legen Sie dann die erste CD der Linux-Distribution ein, die Sie über PXE anbieten möchten, und mounten Sie diese. Redhat legt im CD-Verzeichnis /images/pxeboot einen PXE-tauglichen Installationskernel mit passender Initial-Ramdisk ab. Kopieren Sie beide Dateien vmlinuz und initrd.img in das /tftpboot-Verzeichnis.
Im nächsten Schritt erzeugen Sie die Konfigurationsdatei des Bootloaders. Legen Sie zunächst das Verzeichnis /tftpboot/pxelinux.cfg an. Dort sucht der Loader später nach gültigen Konfigurationsdateien. In diesem Verzeichnis erstellen Sie eine Datei namens default mit folgendem Inhalt:
Diese Parameter weisen den Bootloader an, auf dem per PXE startenden Client zunächst den Inhalt der Textdatei /tftpboot/pxeboot.msg anzuzeigen. In dieser Datei sollten Sie dokumentieren, welche Optionen zur Verfügung stehen. Danach wartet pxelinux 60 Sekunden auf eine Benutzereingabe. Drückt der Anwender einfach <ENTER>, gibt »install« ein oder tut einfach 60 Sekunden lang gar nichts, veranlasst es den Loader, die Aktion »install« auszuführen, die später in der Konfigurationsdatei genau beschrieben wird:
Mit dem Label-Segment gibt der Anwender die verschiedenen Aktionen vor, die beim PXE-Boot zur Verfügung stehen. »Install« lädt einfach den im /tftboot hinterlegten Kernel und die passende initrd.img. Bei Fedora Core und Redhat 9 läuft dann auf dem Client die interaktive Installation an. Zudem können Sie folgende Aktion in default eintragen:
Tippt der Anwender am Prompt das Kommando »local« ein, versucht pxeboot den Client von der lokalen Platte aus zu starten und bricht den LAN-Boot-Prozess ab.
Weitere Aktionen fügen Sie später hinzu, wenn Sie Kickstart-Installationen verwenden wollen.
Für die eigentliche Linux-Installation über das LAN muss der Client Zugriff auf die Distribution erhalten. Dazu kopieren Sie den Inhalt aller Distributions-CDs in ein Verzeichnis des PXE-Servers und geben dieses über NFS frei. Für den Workshop benutzen wir die Fedora-Core-1-Distribution und kopieren alle drei CDs in das Verzeichnis /export/fc1. Übergehen Sie dabei die Warnmeldungen des cp-Kommandos, wenn es die TRANS.TBL-Dateien überschreiben möchte, diese Dateien werden nicht benötigt.
Anschließend legen Sie eine Read-only-Freigabe des Verzeichnisses für alle Maschinen an. Editieren Sie dazu die Datei /etc/exports wie folgt:
Danach starten Sie den NFS-Server neu
Jetzt können Sie bereits einen Client über PXE starten und die Option »Install« auswählen.
Der Client wird den Kernel laden und die Installation von Fedora-Core-1 beginnen. Nach dem Laden aller Treiber fragt das Installationsprogramm nach der Dateiquelle. Hier wählen Sie »NFS« aus und geben im folgenden Dialog die IP-Adresse des PXE-Boot-Servers und das NFS-Verzeichnis /export/fc1 an.
Steht die Verbindung, startet die Linux-Installation das Redhat-Setup-Tool Anaconda, mit dem Sie dann interaktiv den Linux-PC nach Ihren Anforderungen konfigurieren und einrichten können.
Redhat-Distributionen unterstützen eine automatisierte Installation. Dazu gibt es eine Kickstart-Konfigurationsdatei. Diese enthält alle Optionen, die Sie normalerweise während einer interaktiven Anaconda-Installation eingeben. Das beginnt bei der Plattenpartitionierung und geht über die Paketauswahl bis hin zur Konfiguration des X-Servers und des Admin-Passworts. Die Datei übergeben Sie bei der Installation einfach als Kernel-Parameter, und Anaconda führt die Installation ohne Benutzereingabe durch. Redhat 9 und den Fedora-Core-Distributionen liegt ein grafisches Tool bei, das sehr einfach eine Kickstart-Datei erstellt. Starten Sie dazu X mit oder ohne Gnome auf ihrem PXE-Server und führen Sie das Programm redhat-config-kickstart aus. Das Programm läuft auch auf einem PC-X-Server auf einem Windows- oder Linux-Client im Netzwerk, falls ihr PXE-Server ohne X arbeitet. Das Tool führt alle zu konfigurierenden Punkte nacheinander auf. Am Ende sichert es eine .cfg-Datei. Sie können mehrere verschiedene dieser Dateien anlegen und als Aktion im PXE-Bootloader angeben. Wichtig ist hierbei nur, dass Sie als Installationsmedium stets den NFS-Server und die zuvor angelegten Freigaben angeben. Für den Workshop generieren wir zwei Kickstart-Dateien, eine für Linux-Server ks-server.cfg und eine für Linux-Clients ks-client.cfg.
Die fertigen Kickstart-Konfigurationsdateien legen Sie unter /export/fc1 ab. Dann passen Sie /tftpboot/pxelinux.cfg/default entsprechend an:
Zudem sollten Sie diese Aktionen in /tftpboot/pxeboot.msg entsprechend dokumentieren. Starten Sie nun einen Client über PXE, können Sie neben der interaktiven Konfiguration eine der vorgefertigten Kickstart-Installationen wählen. Beachten Sie dabei aber, dass Kickstart ohne weitere Rückfrage die Platte ihres Clients partitioniert und formatiert.
Natürlich können Sie ihren PXE-Boot-Server weiter ausbauen, so dass er verschiedene Linux-Versionen zur Installation anbietet. Dazu legen Sie einfach mehrere über NFS freigegebene Verzeichnisse mit den jeweiligen Distributions-Dateien an. Zudem hinterlegen Sie die Kernel der verschiedenen Linux-Versionen unter verschiedenen Namen in /tftpboot ab und passen die Datei /tftpboot/pxelinux.cfg/default entsprechend an.
Möchten Sie beispielsweise neben Fedora-Core-1 auch die Netzwerkinstallation der neuen Version Fedora-Core-2 ermöglichen, gehen Sie wie folgt vor:
Kopieren Sie alle vier CDs der Distribution in das Verzeichnis /export/fc2 ihres PXE-Servers, und geben Sie das Verzeichnis wie beschrieben über NFS im Netz-werk frei. Kopieren Sie aus /export/fc2/images/pxeboot den Kernel und die Initiale-Ramdisk mit geänderten Namen in das /tftpboot-Verzeichnis.
Jetzt brauchen Sie nur noch die PXE-Konfigurationsdatei unter /tftpboot/pxelinux.cfg/default entsprechend anzupassen, und Sie können über das LAN auf Wunsch FC1 oder FC2 starten. Zudem lassen sich verschiedenste Klickstart-Konfigurationen für beide Systeme hinterlegen.
Neben Systeminstallationen können Sie auch Rescue-Systeme auf ihrem PXE-Server hinterlegen, so dass PCs mit Startproblemen über das LAN hochfahren.
Das PXE-Boot-Verfahren lässt sich nicht nur für die System-Installation verwenden. Mit der passenen Konfiguration starten Sie Diskless-Clients und -Server über das LAN. Den Zugriff auf das Root-Dateisystem erhalten diese Maschinen dann über NFS-Freigaben. Auch lässt sich PXE dazu verwenden, Server aufzusetzen, die ihre Platten über ein iSCSI-SAN ansprechen. Der PXE-Boot erspart dabei den teuren iSCSI-Adapter. Vom PXE-Server kann die Maschine einen Kernel mit dem Software-iSCSI-Initiator laden und im weiteren Verlauf der Startphase die Root-Platte über iSCSI mounten. [ ast ]