Fachbereich Informatik

Setup-Übersicht

Hier findet man eine Übersicht über die PXE/Kickstart-Installation, den Aufbau der Puppet-Konfiguration und das zugehörige Git-Repository. Mehr Details zur Puppet-Konfiguration finden sich unter Puppet im Detail.

PXE-Boot und Kickstart

Die Installation des Grundsystems erfolgt mit Hilfe einer Netzwerkkarte, auf der PXE aktiviert werden muss. PXE lädt einen Bootloader vom Installationsserver puppet.informatik.uni-tuebingen.de. Der Bootloader bietet dann ein Menü an, über das die gewünschte Linux-Distribution und -Version ausgewählt werden kann.

Aufbau der Puppet-Konfiguration

Die Puppet-Konfiguration ist modular aufgebaut. Für die Grundkonfiguration aller Rechner existieren Puppet-Module, die zentral von puppet-admin verwaltet werden. Die arbeitsbereichspezifische Konfiguration wird durch weitere, vordefinierte Module abgedeckt, die vom Department-Admin an die Gegebenheiten des jeweiligen Arbeitsbereichs angepasst werden müssen. Die unten stehende Abbildung zeigt beispielhaft die Puppet-Module des Lehrstuhls Algorithmen der Bioinformatik (AB), wobei $pp für den Pfad /afs/wsi/wsi/git-environment/puppet steht. Für alle anderen Arbeitsbereiche sind analog aufgebaute Puppet-Module vorgesehen.

Module

Die arbeitsbereichspezifische Konfiguration für AB wird in den drei Puppet-Modulen ab_baseconfig, ab_desktopconfig und ab_serverconfig abgebildet. Im Modul ab_baseconfig (1) stehen Konfigurationsdirektiven, die von allen Nodes benötigt werden. Das Modul ab_serverconfig (2) enthält serverspezifische Einstellungen. Das Modul ab_desktopconfig (3) enthält zusätzliche Einstellungen für X11/Gnome. Soll ein Client in einigen Punkten anders konfiguriert werden, als dies im Server- oder Desktop-Modul festgelegt ist, lässt sich dies durch case- oder if-Statements im entsprechenden Modul realisieren. Alle Module enthalten eine einzelne Datei für jede Linux-Distribution – in diesem Beispiel Ubuntu und Scientific Linux (SL). Nicht jede Datei muss zwingend Konfigurationsdirektiven enthalten, es dürfen auch leere Dateien vorhanden sein.

Nodes und Templatenodes

Alle Rechner des Lehrstuhls AB sind in der Datei /afs/wsi/wsi/git-environment/puppet/etc/manifests/nodes/ab_nodes.pp eingetragen und erben entweder von der Template-Node ab_servernode (5) oder von der Template-Node ab_desktopnode (6). Die Template-Node ab_basenode (4) sollte nicht instanziiert werden. Es ist möglich, in der Datei ab_nodes.pp Konfigurationsdirektiven unterzubringen, die ausschließlich für einen bestimmten Client gelten sollen. Übersichtlicher bleibt die Puppet-Konfiguration jedoch, wenn dies mit Hilfe von Bedingungen (if- und case-Statements) in den Modulen geschieht (s.o.).

Weitere Informationen zur Puppet-Konfiguration und insbesondere eine tabellarische Übersicht, welche Dateien von den Department-Admins editiert werden müssen, finden sich unter Puppet im Detail.

Git-Repository

Für Puppet existiert das git-Repository in /afs/wsi/wsi/git-repos/puppet, das wie ein zentralisiertes Versionsverwaltungssystem verwendet werden sollte. Änderungen, die in einer eigenen Kopie des Repositories erfolgen, müssen mit git push wieder zurükgespielt werden, um aktiv zu sein. Die push-Aktion löst einen Hook aus, der das Repository nach /afs/wsi/wsi/git-environment/puppet auscheckt. Von dort lesen der Puppet-Server und die Clients die benötigten Dateien ein. Das Puppet-Repository enthält die Unterverzeichnisse etc und files. Im etc-Verzeichnis liegen die Puppet-Module und -Nodes/-Templatenodes. Im files-Verzeichnis liegen Konfigurationsdateien, die von Puppet auf die Rechner kopiert werden.