IT Works AG

Kontakt

Rufen Sie uns an:

Die leidigen Einstellungen

Mal eben die Konfiguration einer Server-Software ändern: Was nach einem einfachen Auftrag an den IT-Azubi klingt, kann in der Praxis erheblichen Aufwand bedeuten. Der Azubi oder Admin muss das jeweilige Format verstehen, den passenden Parameter finden, den Dienst eventuell neu starten und die Änderungen bei Bedarf auf anderen Servern nachziehen. Hier schlägt die Stunde von Konfigurationsmanagement und CoreBiz CFG.

Wer nun hofft, dass der Begriff Konfigurationsmanagement einfach definiert ist, den enttäuscht die Wikipedia mit einem drögen Zitat aus einem einschlägigen Standardwerk: „Konfigurationsmanagement (abgekürzt auch: KM […]) ist eine Managementdisziplin zur Herstellung und Erhaltung einer Übereinstimmung der Produktleistungen sowie der funktionalen und physikalischen Eigenschaften des Produkts.“ Auf Software übertragen heißt das: Es gibt Soll-Eigenschaften (die gewünschte Konfiguration), die am besten ein Tool in reale Einstellungen umsetzen und dafür sorgen soll, dass diese Einstellungen auch verwendet werden.

Wünsche formulieren

Die Herausforderung beginnt nun damit, die Soll-Konfiguration zu definieren: Welche Einstellung ist gewünscht, für welche Dienste und welche Rechner soll sie gelten? Diese Werte liegen in der Regel in einer Konfigurationsdatenbank. Unsere eigene Produktlinie CoreBiz beispielsweise speichert die Werte im zentralen LDAP und bei Bedarf in lokal auf den Clients und Servern vorhandenen „.senv“-Dateien (für System Environment).

Nun sind aber, gerade in heterogenen Umgebungen, die wenigsten Dienste darauf vorbereitet, ihre Einstellungen aus einer zentralen Konfigurationsdatenbank wie LDAP abzufragen. Also gilt es, die echten Konfigurationsdateien anzupassen. Hier gibt es zwei Strategien: Gezielte Änderungen oder komplettes Überschreiben. Das gezielte Ändern der Parameter, die vom Konfigurationsmanagement auch tatsächlich kontrolliert werden, hat einen großen Vorteil: Der lokale Admin kann alle anderen Parameter bei Bedarf anpassen, ohne den Umweg über das KM zu gehen. Auch vorhandene Kommentare, Inline-Dokumentation und die Formatierung bleiben erhalten. Gerade bei der Fehlersuche oder bei temporären Sonderlösungen ist das enorm praktisch. Der Nachteil: Die automatischen Anpassungen durch das KM sind bei weitem nicht trivial. Sehr viel einfacher ist das stumpfe Überschreiben: Hier nimmt man in der Regel ein Template, fügt die Parameter ein und ersetzt die vorhandene Konfigurationsdatei.

Passende Anwendungen

Beide Strategien haben ihre Domäne, in der sie sich sinnvoll einsetzen lassen: Das gezielte Ändern ist vor allem dann zu empfehlen, wenn es einen lokalen Admin gibt. Bei Microservices für die Cloud, die in Tausender-Stückzahlen ausgerollt werden, ist dagegen ganz klar die Template-Variante vorteilhaft. CoreBiz geht hier den – aus Sicht der Entwickler – mühsamen Weg und ändert die meisten Konfigurationsdateien ganz gezielt. Das kommt vor allem den Admins zugute, die ihre lokalen Änderungen nicht verlieren und mit ihrem Linux-Background weiterarbeiten können. Dabei kam bis vor kurzem cfEngine zum Einsatz. Dieses etwas betagte Tool wurde inzwischen durch eine eigene Lösung namens CoreBiz Configuration Manager, kurz CB CFG, ersetzt.

Viele alternative Werkzeuge wie Ansible, Chef, Puppet oder Saltstack setzen primär auf Templates. Einige können immerhin die Augeas-Bibliothek einbinden: Diese setzt auf sogenannte Lenses, die die Syntax einer Konfigrationsdatei beschreiben. Damit kann man einzelne Parameter gezielt ändern. Die Syntax dazu ist an XPath aus der XML-Welt angelehnt. So lange es passende Lenses gibt (manche Software liefert die selbst mit) und man sich mit der Syntax von Augeas anfreunden kann, erfüllt der Ansatz durchaus seinen Zweck.

Die Realität anpassen

Um die gezielten Änderungen durchzuführen, braucht es passende Regeln, die sagen was man ändern muss, um eine bestimmte Einstellung vorzunehmen. Die Einstellungen liegen in Form von Flags (ja/nein) und Variablen vor (mit beliebigen Werten oder Zeichenketten), während die Konfigurationsdateien eine teils recht komplexe Syntax aufweisen.

Die Regeln, um von der einfachen Einstellung zur gezielten Änderung zu kommen, werden nun in CoreBiz mit einer eigenen Sprache definiert. Deren Syntax und Kommandos deutlich kürzer und intuitiver als bei cfEngine und verständlicher als bei Augeas. CfEngine und CB CFG erkennen, ob sie überhaupt etwas ändern müssen oder die jeweiligen Einstellungen bereits passen. Nur bei einer Änderung laufen dann weitere Kommandos, die beispielsweise einen Dienst neu starten.

Die Anwender müssen sich dabei mit den Sprachen von cfEngine oder CB CFG gar nicht auseinandersetzen, schließlich liefert CoreBiz für alle integrierten Dienste passende cf- oder cfg-Files mit allen nötigen Regeln mit. Selbst Admins können das System mit Linux-Bordmitteln managen. Wenn sie ihre Änderungen aber automatisieren wollen, empfiehlt sich ein Blick in die Tools. CB CFG kommt mit einer ausführlichen Dokumentation und vielen Beispielen, die den Einstieg erleichtern.

Komplexität beherrschen

Hat man erst mal den Knoten im Kopf gelöst, dass man eine Konfigurationsdatei erstellt, deren Aufgabe lautet: lies die Soll-Konfiguration und ändere andere Konfigurationsdateien, kann KM sogar Spaß machen. Das entsprechende Tool hilft dabei, indem es per Simulationsmodus nur sagt, welche Änderungen es vornehmen und welche Aktionen es auslösen würde. Im operativen Betrieb protokolliert CB CFG alle Änderungen und Aktionen im System-Journal/Syslog. Damit kann der Admin jederzeit nachvollziehen, wann und an welcher Stelle CB CFG eingegriffen hat.

Nach oben scrollen