Open Source im professionellen Einsatz

Auswahl von Software

Oft erfordern studentische Projekte zusätzliche Programmen auf einer Gruppe von Rechnern. Hierfür definiert der Admin für jedes Projekt eine eigene Programmklasse. Ein anderes Anwendungsbeispiel für die Nutzung einer Programmklasse ist das Deaktivieren der Bildschirmsperre unter KDE bei allen Pool-Rechnern. Solche Einstellungen erledigt üblicherweise kein Debian-Paket, sondern entweder ein Eintrag in einer bestehenden Datei oder ein Skript, das diese Einträge vornimmt. Sind also solche Einstellungen notwendig, fügen sie eine weitere Klasse den betreffenden Rechnern hinzu.

Das Aufschlüsseln der jeweiligen Programme in eigene Klassen eröffnet die Möglichkeit, sie leicht zu aktivieren oder zu deaktivieren. Es gilt allerdings darauf zu achten, nicht zu viele Programmklassen zu definieren, da sonst leicht der Überblick verloren geht. Besser ist es, auch hier Gruppen zu bilden. Tabelle 1 bietet eine Übersicht aller definierten Klassen mit zugehörigen Beispielen.

Tabelle 1:
Klassenkonzept

Im Konfigurationsverzeichnis »/srv/fai/config/« und seinen Unterverzeichnissen sind alle Informationen abgelegt, die FAI für die Installation eines Clients benötigt. Jedem Unterverzeichnis obliegt dabei eine andere Aufgabe. Im Unterverzeichnis »class/« befinden sich alle Dateien und Skripte zur Definition der einzelnen Klassen und Variablen. Hervorzuheben ist hier die Datei »50-host-classes«. In ihr speichert der Verwalter für jede Clientgruppe die zugeordneten Klassen.

Listing 3 enthält ein Beispiel für die »50-host-classes«. Die Datei ist ein Shellskript, das abhängig von der Variablen »$HOSTNAME« die Klassennamen anzeigt. Beginnt der Hostname des Clients etwa mit »L024-«, so handelt es sich um einen Rechner des Labors L0.24. Auf einem solchen Client installiert FAI die Basisklassen »BC_LINUX«, »BC_X11«, »BC_KDE«, »BC_BASE«, die Computerklasse »CC_SUN«, die Raumklasse »RC_L024« und die Serviceklasse »SC_LDAP«. Erkennt FAI den Client als »vmware-1« oder »vmware-2«, handelt es sich um eine virtualisierte Maschine. In diesem Fall wählt FAI die Klassen »BC_LINUX«, »CC_VMWARE« und »SC_LDAP« aus.

Lokale Gegebenheiten

Für jede Klasse darf der Administrator Vorgaben für Tastaturlayout, Zeitzone und Benutzerpasswörter oder Ähnliches festlegen. Die entsprechenden Werte speichert er in der Datei »Klassenname.var«. Listing 4 enthält beispielsweise Vorgaben für die Klasse »BC_LINUX«. FAI arbeitet die von »50-host-classes« ausgegebene Klassenliste von links nach rechts ab. Definieren mehrere dieser Klassen dieselbe Variable, so zählt der Wert der am weitesten rechts stehenden Klasse in der Liste. Der clevere Administrator nutzt diese Eigenschaft, um allgemeine Vorgaben durch speziellere zu ersetzen.

Listing 4: Parameter von
»BC_LINUX.var«

01 # Auch nichtsignierte Repository erlauben:
02 FAI_ALLOW_UNSIGNED=1
03 
04 # Deutsche Tastatur:
05 FAI_KEYMAP=de-latin1-nodeadkeys
06 
07 # UTC=yes, wenn die Systemuhr auf UTC läuft.
08 UTC=yes
09 TIMEZONE=Europe/Berlin
10 time_zone=Europe/Berlin
11 
12 # Root-Passwort durch "openssl passwd -1" für das neue System
13 # erzeugen, als Formate sind md5 und crypt möglich:
14 rootpw='$1$865YxXkZ$xRxd/WUBLPU4gZfVmi1ax1'
15 servicepw='$1$arm/uRPR$5w0Q7Z3i2cRSq1tOq/zyK/'

Sollen zum Beispiel die Rechner des Labors L0.24 die Einstellungen der Klasse »BC_LINUX« erhalten, jedoch andere Passwörter, legt er eine neue Datei »RC_L024.var« an, die lediglich die Zeilen 12 bis 15 aus Listing 4 mit einem neuen Passwort enthält. Da »50-host-classes« die Klasse »RC_L024« nach der Klasse »BC_LINUX« aufführt, haben deren Vorgaben Vorrang.

Das Unterverzeichnis »debconf/« dient zur klassenabhängigen Konfiguration der Parameter des Debconf-Systems. Mittels Debconf speichert Debian systemweite Einstellungen wie etwa den Standard-Editor oder den Standard-Webbrowser. Die Speichermedien teilt der Administrator im Unterverzeichnis »disk_config« auf (siehe Kasten "Verbesserte Partitionierung").

Das Verzeichnis »package_config/« definiert für jede Klasse die Pakete, die das Zielsystem benötigt. Dies erledigt normalerweise der Befehl »PACKAGES aptitude Paketname ...«. Auch eine Deinstallation ist mit dem Befehl »PACKAGES remove Paketname ...« möglich. Listing 5 zeigt, wie sich Abhängigkeiten zwischen Klassen definiert lassen. Der Befehl »PACKAGES aptitude BC_KDE« installiert die nachfolgenden Pakete nur unter der Bedingung, dass sie auch Teil der Klasse »BC_KDE« sind. Diese Art der Definition erlaubt es, Konzepte feingliedrig zu strukturieren und umzusetzen.

Listing 5: Paketkonfiguration in
»BC_LINUX«

01 # packages for all systems
02 PACKAGES aptitude
03 alsa-base
04 alsa-utils
05 discover
06 ...
07 
08 PACKAGES aptitude BC_KDE
09 firefox-locale-de-de
10 thunderbird-locale-de

Listing 6: Partitionierung einer
Festplatte

01 disk_config disk1 preserve_always:1 bootable:2
02 primary   /boot 200        ext2    rw
03 logical   swap  4000       swap    rw
04 logical   /tmp  10000      ext2    defaults
05 logical   /var  5000       ext3    defaults
06 logical   /     3000-      ext3    defaults,errors=remount-ro

Listing 7: Partitionierung eines
Raid-1-Systems

01 disk_config sda
02 primary  -    256   -           -
03 primary  swap 1024  swap        sw
04 primary  -    0-    -           -
05 
06 disk_config sdb
07 primary  -    256   -           -
08 primary  -    1024  -           -
09 primary  -    0-    -           -
10 
11 disk_config raid bootable:1
12 raid1  /boot   sda1,sdb1  ext2   rw,errors=remount-ro
13 raid2  swap    sda2,sdb2  swap   rw
14 raid3  /       sda3,sdb3  ext3   rw

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

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

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook