Configuration- und Life-Cycle-Management mit Quattor

Vier gewinnt

Ein Kommandozeilenbefehl genügt und schon ändern Dutzende Clients automatisch ihre Konfiguration, während neu in Betrieb genommene Rechner selbstständig ein vorgegebenes System installieren. Sollte sich ein Fehler in eine Konfiguration eingeschlichen haben, erhält der Administrator frühzeitig einen Warnhinweis. Mit diesen praktischen Funktionen ködert die Software Quattor Administratoren.
Die Verwaltung von IT-Landschaften wird immer komplexer - die explosionsartige Vermehrung mobiler Clients ist nur eine der vielen Erschwernisse. Zeit also für ... (mehr)

Quattor ist eine Sammlung aus mehreren Anwendungen, mit denen Administratoren die Systeme in einem Netzwerk komfortabel einrichten, konfigurieren und verwalten [1]. Der Administrator muss dabei lediglich seine Änderungswünsche notieren und diese Quattor übermitteln, der Rest erfolgt vollautomatisch. Im Gegensatz zu vielen anderen Configuration-Management-Systemen prüft Quattor die Konfiguration vor der Übernahme auf Fehler. Quattor eignet sich sowohl für kleine als auch komplexe Netze. Das größte derzeit in der Praxis verwaltete Netz umfasst über 35.000 Knoten. Die größten öffentlich genannten Nutzer sind das CERN und Morgan Stanley. Dank seiner offenen Architektur passt es sich zudem an jede beliebige Netzwerktopologie an und ermöglicht sogar die Verwaltung von Clustern, Grids oder Clouds.

Quattor entstand bereits 2003 im Rahmen des European-Data-Grid-Projektes. Die Entwicklung übernehmen derzeit vor allem Freiwillige, die gemeinsame Arbeit erfolgt auf GitHub [2]. Die komplette Softwaresammlung steht unter der Apache 2.0 License sowie der EU DataGrid Software License. Die Komponenten liegen damit nicht nur im Quellcode vor, sondern lassen sich auch zu kommerziellen Zwecken kostenlos einsetzen. Derzeit unterstützen die Quattor-Komponenten offiziell nur Systeme mit Red Hat Enterprise Linux (RHEL), die Entwickler selbst setzen das RHEL-Derivat Scientific Linux ein. Die Quattor-Komponenten lassen sich jedoch mit etwas Bastelgeschick auch auf anderen Linux-Distributionen und Betriebssystemen einrichten.

Modularer Aufbau

Quattor besteht aus mehreren Komponenten, die jeweils eine ganz bestimmte Aufgabe übernehmen (Bild 1). Zunächst notiert der Administrator die gewünschte Konfiguration der einzelnen Systeme in einer eigenen Hochsprache namens Pan. Ein spezieller Compiler prüft dann diese Konfigurationen auf Fehler beziehungsweise Inkonsistenzen und wandelt sie in ein maschinenlesbares Format um. Die erstellten Konfigurationen verwaltet eine Konfigurationsdatenbank namens Aquilon. Sie kennt auch den Aufbau des Netzes und dient damit gleichzeitig als Inventory.

Die zu verwaltenden Systeme bezeichnet Quattor allgemein als Nodes (Knoten). Das können physische Rechner, virtuelle Maschinen oder sogar Grid- und Cloud-Instanzen sein. Auf jedem Node laufen zwei weitere Quattor-Komponenten: Der Configuration Cache Manager klopft regelmäßig bei Aquilon an und holt neue Konfigurationen ab. Diese setzt dann das Node Configuration Management um, indem es beispielsweise die Netzwerkeinstellungen ändert. Zusätzlich gibt es noch die Automated Installation Infrastructure, kurz AII. Sie sorgt dafür, dass neue Nodes automatisch das passende Betriebssystem booten beziehungsweise installieren.

Alle genannten Komponenten sind optional. Wer beispielsweise die AII nicht benötigt, lässt sie einfach weg oder ersetzt sie durch eine andere Lösung. Umgekehrt ermöglichen alle Komponenten zusammen ein komplettes Life-Cycle-Management. Des Weiteren dürfen die Komponenten auf unterschiedlichen Systemen laufen. So können Administratoren beispielsweise die Konfigurationen auf ihren eigenen Client-Systemen erstellen und dann an Aquilon auf einem zentralen Server übergeben.

Konfiguration nur über eigene Programmiersprache

Die gewünschte Konfiguration der zu verwaltenden Nodes müssen Administratoren zwingend in der speziell für diesen Zweck geschaffenen Programmiersprache Pan aufschreiben. Damit steigt zwar der Lernaufwand für die Administratoren, der Einsatz einer Hochsprache bietet jedoch insbesondere bei großen oder komplexen Netzwerken enorme Arbeitserleichterungen. So muss ein Administrator beispielsweise nicht mehr wissen, wie die Konfigurationsdatei des Apache-Webservers aufgebaut ist. Stattdessen notiert er einfach mit Pan, welche Einstellungen der Webserver verwenden soll. Um den Rest kümmert sich dann das Node Configuration Management auf dem entsprechenden Node. Des Weiteren lassen sich Teile der Konfiguration in unterschiedlichen Situationen wiederverwenden. Im Idealfall macht dies die Konfigurationsbeschreibungen nicht nur schlanker und übersichtlicher, sie lassen sich auch einfacher warten.

Listing: Beispiel für eine Pan-Konfiguration



object template hallowelt;
# Ein kleines Beispiel:
‘/software/components/ntpd/active’ = true;
‘/software/components/accounts/groups/entwickler/gid’ = 602;
‘/software/components/accounts/users/tim’ = nlist( ‘uid’, 502, ‘groups’, list(‘entwickler’), ‘comment’, ‘Standard-Benutzer’, ‘homeDir’, ‘/home/tim’, ‘shell’, ‘/bin/bash’, );

Das Listing "Beispiel für eine Pan-Konfiguration" zeigt eine einfache Konfigurationsbeschreibung in Pan: Die erste Zeile verpasst der Konfiguration den Namen “hallowelt”. Jede der folgenden Zeilen enthält eine, auf den Nodes zu ändernde Einstellung beziehungsweise Aufgabe. Zeilen mit einem vorangestellten “#” gelten als Kommentar und werden später von Quattor ignoriert. Das Listing aktiviert auf den zu verwaltenden Nodes zunächst den NTPD-Daemon, richtet eine Benutzergruppe mit der ID 602 und dem Namen “entwickler” ein und erstellt schließlich noch einen Benutzer-Account für einen Anwender namens “tim”. Jede dieser Zeilen weist dabei einen Wert einem Namen zu. Die fünfte Zeile ordnet beispielsweise die Nummer 602 dem gewählten Bezeichner "/software/components/accounts/groups/entwickler/gid" zu. Dessen Wahl ist nicht rein zufällig, sondern folgt einem ganz bestimmten, aber leider nicht immer trivialen Aufbau (dazu gleich mehr).

Eine komplette Konfiguration, wie sie das Listing zeigt, bezeichnet Quattor als Template. Die gesamte Konfiguration lässt sich auf mehrere Templates verteilen und so modularisieren. Damit das funktioniert, muss das Template in einer Datei mit der Endung “.pan” liegen, die den gleichen Namen wie das Template trägt. Listing 1 erwartet Quattor somit in der Datei .

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023