Geht man von den ITIL Best Practices aus, ist die Configuration Management Database (CMDB) die zentrale Datenbasis des IT-Servicemanagements. Damit ist sie die Grundlage für einen hochwertigen IT-Kundenservice, stabile Systeme und Anwendungen sowie für eine kontrollierte IT-Infrastruktur.
Hier bietet das Tool ansible-cmdb eine kleine, aber feine Lösung an für welche, die keine großen Tools verwenden aber trotzdem eine Übersicht über Ihre aktuellen Systeme haben wollen.
Es verwendet als Input die json-Ausgabe des setup
Modules von Ansible und erstellt aus den facts ein entsprechendes Dashboard.
Beim Klick auf einen Hostnamen kommt auf einen entsprechenden Abschnitt mit weiteren Informationen zu diesem Host.
In der Übersicht kann man selber entscheiden was man sehen will und was nicht.
Github-Seite: Github.com:
Installation
Die Ansible Configuration Management Database kann man einfach per pip
installieren:
pip install ansible-cmdb
Für auf Debian basierende Systeme gibt es auf der Release-Seite entsprechende .deb
Dateien zum herunterladen.
Verwenden von ansible-cmdb
Abrufen der Informationen von den verschiedenen Hosts
Die entsprechenden Informationen zu den einzelnen Hosts sammelt Ansible mithilfe des setup
Modules und der Option --tree
Auszug aus ansible --help
:
-t TREE, --tree=TREE log output to this directory
Der entsprechende Aufruf lautet:
ansible -m setup -i hosts --tree out/ all
Hierbei ist zu beachten, dass nach der Option --tree
die Angabe eines Verzeichnisses folgen muss. In diesem wird dann anschließend pro Host eine json-Datei erstellt und mit den entsprechenden facts befüllt.
$ ls out/
code01 gitlab2 monitoring testserver01
Erstellen des CMDB-Dashboards
Nun kommt ansible-cmdb
ins Spiel…
Die allgemeine Syntax lautet hierbei:
ansible-cmdb /Pfad/zu/den/json-Dateien > /Pfad/zur/Output.html
Bsp.:
ansible-cmdb out/ > /var/www/cmdb.html
Im Browser seiner Wahl wird beim aufrufen der erstellten Output.html das erstellte Dashboard angezeigt.
Wenn man die Prozedur des Abrufens der Daten, z.B. per Cron, Systemd-timers, etc. entsprechend automatisiert, erhält eine aktuelle Systemübersicht der entsprechenden Infrastruktur, welche sich mit jedem Webserver ausgeben lässt.