Open Source im professionellen Einsatz
Linux-Magazin 01/2009
© Harald Bauer, Fotolia.com

© Harald Bauer, Fotolia.com

Automatisches System-Deployment mit FAI

Blitzstart

,

Linux auf vielen Rechnern manuell installieren ist für jeden Administrator ein Graus. Zum Glück gibt es mit FAI ein Werkzeug, das diese monotone, zeitraubende und fehleranfällige Arbeit zumindest für Debian-Systeme automatisiert.

1084

Vielfalt und Reichtum sind eigentlich nützliche Eigenschaften. Für die Fakultät Elektronik und Informatik der Hochschule für Technik und Wirtschaft Aalen [1] bedeuten sie jedoch erst einmal viel Arbeit. Denn sie betreibt in ihren Pools und Laboren rund 200 Linux-Systeme auf Basis von Debian [2]. Das ist aufwändig und zeitintensiv.

Das an der Universität zu Köln entwickelte Framework Fully Automatic Installation (FAI) erleichtert den Aalener Admins künftig die zeitaufwändige Wartung, da es die verteilte Neuinstallation von Systemen übernimmt. Die neue Version 3.2.9 [3] unterstützt auch Debian Lenny und bringt ein neues Partitionierungswerkzeug mit. Für neue Admins eine gute Gelegenheit, um sich mit den neuen Features auseinanderzusetzen, für erfahrene, um ihre Installation auf den neusten Stand zu bringen.

FAI automatisiert den Installationsprozess, indem es versucht die typischen Schritte einer Debian-Installtion zu automatisieren (siehe Abbildung 1). Die FAI-Clients mit PXE-Netzwerkkarten installieren sich daher über das Netzwerk. Das PXE fragt per DHCP nach einer IP und der Adresse eines TFTP-Servers.

Abbildung 1: Die Fully Automated Installation (FAI) durchläuft mehrere Phasen, um auf einem Client ein vollwertiges Debian aufzuspielen. Dabei orientiert es sich an den Schritten einer manuellen Installation.

Installation ferngesteuert

FAI arbeitet auch mit älteren Rechnern ohne PXE. In diesem Fall startet der Administrator das Einrichten händisch durch ein Bootimage auf Floppy, CD-ROM oder USB-Stick. Mit oder ohne PXE holt sich die Startroutine einen bootfähigen Kernel. Nach dessen Start kontaktiert der Client den FAI-Server und bindet dessen Wurzel- und das Konfigurationsverzeichnis via NFS ein. Diese enthalten alle notwendigen Informationen, um den Client zu installieren.

Ein Init-Skript startet die lokale Installation. Es ermittelt anhand des Hostnamens und der gemounteten Konfigurationsdaten so genannte Installationsklassen. Jede enthält eine Liste von Paketen sowie Konfigurationsdateien und Skripte zum Setup. Der Installtionsprozess partitioniert die Festplatte des Clients und lädt die vorgegebenen Pakete von einem Debian-Mirror herunter und spielt sie über den Apt-Mechanismus ein. Schließlich passt er den Client individuell nach Vorgaben des FAI-Servers an.

Server aufsetzen

Bevor also Admins ihre Clients installieren dürfen, steht das Aufsetzen eines FAI-Servers an, der aus mehreren Komponenten besteht. Abbildung 2 illustriert diese Schritte. Als Erstes gilt es, den Serverdienst aufzusetzen, der die Konfigurationen verteilt. Der Admin benötigt dazu einen Debian-Rechner und rüstet ihn mit NFS, TFTP und DHCP aus. Zusätzlich sind die FAI-Pakete »fai-server«, »fai-doc«, »fai-quickstart« und »fai-nfsroot« empfohlen. Sie sind über die normalen Debian-Repositories erhältlich. Das Paket »fai-client« braucht später nur der Client.

Abbildung 2: Eine FAI-Installation will gut geplant sein. Das Diagramm leitet den Administrator durch die vier Vorbereitungsphasen. Gerade die Planung entscheidet mit über den Erfolg.

Eine FAI-Installation besteht nicht nur aus technischen Konfigurationen, sondern auch aus planerischen Prozess-Schritten. Daher überlegt der Admin als Nächstes, welche Hardware und welche Software er auf welchem Client benötigt. Dazu nimmt der er den Bestand an Hardware auf und gruppiert Rechner mit baugleicher oder ähnlicher Ausstattung. Die Auswahl der Software hängt vom Einsatzgebiet des Rechners ab. Ganz nach Debian-Art stellt der Systemverwalter dazu Listen von DEB-Paketen zusammen.

Steht der Computer beispielsweise in einem Informatik-Pool, ist ein umfangreiches Software-Angebot wünschenswert, angefangen von Office-Anwendungen über verschiedene Windowmanager und Entwicklungsumgebungen. Auch die Hardware beeinflusst die Paketauswahl. So ergibt die Installation von Brennprogrammen wie etwa K3B nur dann einen Sinn, wenn der betreffende Rechner einen CD- oder DVD-Brenner besitzt.

Im dritten Schritt widmet sich der Systemverwalter der praktischen Konfiguration der Rechnergruppen, die sich an seinen Planungen orientiert. Weiterhin gibt er vor, wie FAI das Netz einrichtet und die Festplatte aufteilt. Details erklärt der Kasten "Verbesserte Partitionierung". Als Letztes trägt er definierte Paketklassen in Konfigurationsdateien ein und legt so fest, welche Debian-Pakete und Shellskripte für eine Gruppe von Rechnern gelten.

Verbesserte
Partitionierung

Frühere FAI-Versionen partitionierten die Festplatten des Clients mit dem Skript »setup-harddisks«. Das Tool arbeitet mit normalen Festplatten, verweigert aber bei Raid-Systemen seinen Dienst und unterstützt keinen Logical Volume Manager (LVM2). Ab der Version 3.2.8 liefert FAI das Tool »setup-storage« als Alternative zu »setup_harddisks« mit. Das neue Werkzeug behebt die beiden Defizite.

Findet FAI die Zeile »USE_SETUP_STORAGE=1« in einer Konfigurationsklasse, verwendet es »setup-storage« statt »setup_harddisks«, um die Festplatten zu partitionieren. Leider ist das neue Tool nicht abwärtskompatibel zu seinem Vorgänger, da es für seine Konfigurationsdateien eine andere Syntax vorgibt.

Automatisiert aufteilen

Listing 6 ist ein Konfigurationsbeispiel für »setup-storage«. Es partitioniert die erste Festplatte eines Dualboot-Systems, wobei die erste Partition Windows XP enthält. Jede Zeile des Skripts enthält einen Befehl mit zugehörigen Optionen. Der Befehl »disk_config« legt globale Einstellungen zur Partitionierung der gesamten Festplatte fest. Die Option »disk 1« wählt die erste Festplatte aus. Handelt es sich um eine IDE-Festplatte, verwendet »setup-storage« intern die Partitionsbezeichner »hda«, bei SATA- oder SCSI-Festplatten entsprechend die Bezeichner »sda«.

Die Option »preserve_always:1« bestimmt, die erste primäre Partition nicht zu verändern und somit das installierte Windows zu erhalten. Alle anderen Partitionen löscht »setup-storage«. Die Option »bootable:2« aktiviert die zweite Partition als Bootpartition. Mit den Befehlen »primary« und »logical« legt »setup-storage« eine primäre beziehungsweise logische Partition an. Die Nummerierung der Partitionen ergibt sich aus der Reihenfolge der in der Datei eingetragenen Befehle.

In Listing 6 erzeugt der Eintrag »setup-storage« in der Zeile 2 mit Hilfe des »primary«-Befehls die Partition »sda2« mit einer Größe von 200 MByte. Die Partition erhält ein Ext-2-Dateisystem und den Mountpoint »/boot«. Der erste »logical«-Befehl in Zeile 3 erzeugt in der ersten logischen Partition »sda5« ein Swap-Dateisystem mit 4000 MByte Größe. Es folgen die logischen Partitionen »sda6« und »sda7« für »/tmp« beziehungsweise »/var«. Der letzte Befehl erzeugt die Partition »sda8«. Der Parameter »3000-« weist das Programm an, den restlichen Plattenplatz, jedoch mindestens 3000 MByte, für die Partition zu nutzen. Ist nicht hinreichend Platz vorhanden, bricht die Installation mit einer Fehlermeldung ab. Die Partitionsnamen findet FAI übrigens selbst heraus, der Systemverwalter braucht nur festzulegen, ob er primäre oder logische Partitionen wünscht.

Ausfallsicher dank Mirroring mit Raid 1

Listing 7 ist ein Beispiel für Partitionierung eines Raid 1 mit zwei SCSI-Festplatten. Zuerst partitioniert »setup-storage« die Festplatten »sda« und »sdb« auf identische Weise, wobei das Tool weder Dateisysteme noch Mountpoints zuweist. Anhand der Befehle des Blocks »disk_config raid« baut »setup-storage« ein Raid-System mit drei Partitionen auf und formatiert die Partitionen gemäß den Vorgaben.

Das Tool »setup-storage« ist ein mächtiges Werkzeug, dessen Funktionsumfang weit über die Möglichkeiten von »setup_harddisks« hinausgeht. Die Syntax der Konfigurationsbefehle spezifiziert der Admin durch EBNF-Regeln. Diese Regeln und weitere Informationen zur Bedienung von »setup-storage« erläutern die Manpage und das FAI-Wiki [6].

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • FAI 3.3 vereinfacht Cross-Platform-Installation

    Das Installationswerkzeug Fully Automatic Installation (FAI) ist in Version 3.3 verfügbar.

  • Noch einfacher: Debiansysteme automatisch installieren mit FAI-Simple

    Wer immer schon mal mit FAI gearbeitet habe, der wisse zu schätzen, worum es in FAI-Simple ginge, schreibt Entwickler Alfie John in seinem Readme auf Github. Seine Software will das Deployment-Tool einfacher und schneller zu installieren machen.

  • Block-Spirale

    Versorgt ein Server zum Beispiel Thin Clients mit einem Read-only-Dateisystem, muss er das nicht unbedingt mit NFS oder Samba tun. Für viele Aufgaben reichen Remote-Blockdevices, die kräftig an der Performance- und Effizienz-Spirale drehen.

  • Die Netzstarter

    Plattenlose Clients auf Basis von Linux bieten die Möglichkeiten vollwertiger klassischer Workstations bei reduzierten Hardwarekosten, geringerem Lärmpegel sowie vermindertem Administrationsaufwand. Bei Standard-PC-Komponenten sinken die Kosten weiter.

  • Dhcpy6d

    Die IPv6-Variante von DHCP hält ein paar Tücken bereit, die zwar im RFC stehen, jedoch eine gleichförmige Adressenvergabe schwierig machen. Es sind derzeit nur wenige freie DHCPv6-Server im Spiel, von einem davon, Dhcpy6d aus Dresden, soll hier die Rede sein.

comments powered by Disqus

Ausgabe 07/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.