Eine eigene CMDB mithilfe von Ansible(-cmdb) erstellen

Datum

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.

Autor
Kategorien Ansible, Linux

PRTG Map