Der am stärksten vernachlässigte Teil eines Projekts ist vermutlich die Systemdokumentation. Oft hört man Aussagen wie „Die Dokumentation war nicht beauftragt“. Frustrierend ist dies vor allem dann, wenn sich ein Betriebsteam Informationen zu den verwalteten Maschinen erst mühsam suchen muss. Das muss nicht sein.

In diesem Artikel wollen wir uns ansehen, wie wir unsere Fakten, die wir im letzten Teil der Serie ausgelesen haben, so aufbereiten, dass sie dem Betriebsteam nützliche Informationen liefern.

Ansible CMDB bereitet Fakten auf

Rund um Ansible gibt es eine Vielzahl an Open-Source-Projekten, so auch Ansible-CMDB. Hierbei handelt es sich jedoch weniger um das, was man vermutet. Es geht vielmehr um ein Tool, das die gecachten Fakten aus den verwalteten Systemen so aufbereitet, dass eine ansehnliche Systemdokumentation generiert wird.

Die Installation erfolgt aus dem Python Package Index (PyPi):

Der Befehl dafür lautet:

Hierbei geben wir das Verzeichnis an, aus dem die Fakten gelesen werden sollen. Die Ausgabe leiten wir in eine einzelne HTML-Datei um und öffnen diese mit dem Browser.

In der Tabelle lassen sich die gewünschten Informationen durch Anklicken der Schaltflächen dynamisch ein- und ausblenden. Die Datei kann so direkt an den Kunden übergeben werden. Eventuelle zusätzliche lokale Fakten werden ebenfalls ausgewertet. Hierzu müssen wir jedoch den Hostnamen anklicken, so dass der jeweilige Abschnitt direkt angezeigt wird.

Da das Tool bei der Erstellung des Dokuments die Daten im Cache verwendet, können wir diesen einfach aktualisieren.

Die Einstellungen für den Host-Cache haben wir bereits im letzten Artikel beschrieben.

Soll die Dokumentation nur für bestimmte Hosts erstellt werden, so können wir entsprechend limitieren.

Weiterhin haben wir die Möglichkeit, den Inventarpfad zu setzen. Host- und Gruppenvariablen lassen sich hierbei automatisch einbinden.

In der Standardeinstellung erstellt das Programm eine HTML-Seite. Um die Ausgabe anzupassen, haben wir folgende Möglichkeiten:

Konvertierung in ein alternatives Format

Will man die Daten in ein anderes Tool importieren, so bietet es sich an, ein alternatives Dateiformat zu wählen.

Ansible CMDB unterstützt derzeit folgende Formate

  • HTML
  • CSV
  • JSON
  • Markdown
  • SQL

Anpassung des Layouts

Um die Möglichkeit der Ausgaben zu erweitern, können wir eine der bestehenden Vorlagen unter /usr/local/lib/python3.9/site-packages/ansiblecmdb/data/tpl/ als Basis für unsere eigenen Implementierungen verwenden. Das Programm verwendet im Gegensatz zu vielen anderen Tools nicht die Template Engines Jinja, sondern mako, die jedoch noch um einiges mächtiger ist.

Im nachfolgenden Beispiel wollen wir uns eine einfache Vorlage für den Bau eines Asciidoc-Dokuments erstellen.

Das Template verwenden wir anschließend wie gewohnt.

Die angegebene Datei enthält die vorher definierten Fakten im Asciidoc-Format.

Wie wir sehen, ist es einfach möglich, beliebige Ausgabeformate über das mächtige Vorlagensystem zu definieren, welche dann in andere Systeme eingebunden werden können. Dies ermöglicht es uns, unser Inventar für beliebige statische Seitengeneratoren aufzubereiten, wie z. B. Antora oder Sphinx.

Weitere Informationen und Links

Sie möchten Ansible live erleben?
Kontaktieren Sie uns für eine Demo.

Jetzt mehr erfahren über Ansible

Ansible CMDB erleichtert Systemdokumentation