Wir nutzen seit geraumer Zeit für unsere System- und Netzwerküberwachung die Open-Source-Anwendung Icinga. Die Konfiguration dafür haben wir mit dem Director schon länger über Ansible automatisiert. Das Automatisierungs-Werkzeug für Konfigurationen und Administrationen von Computern ist ebenfalls Open-Source verfügbar.
Martin Schurz hat auf der OSMC 2019 in seinem Vortrag darüber berichtet, wie wir von Nagios zu Incinga migriert sind.
Dazu haben wir eine eigens geschriebene Rolle genutzt, welche Hosts, Checks, Templates und alle anderen Konfigurationen im Icinga mittels Code anlegen kann. Allerdings gab es bei der Nutzung der Rolle auch ein paar Hindernisse. Sie setzt nämlich gewisse Strukturen und Arbeitsweisen voraus, die nicht unbedingt dem „Ansible-Weg“ entsprechen. Aus diesem Grund haben wir uns dazu entschlossen, Ansible-Module zu schreiben. So können wir mit normalen Tasks einzelne Konfigurationen im Icinga Director vornehmen.
Was vorher vier Tasks mit über 50 Zeilen Code zum Anlegen eines Objects im Director waren, konnten wir dadurch auf 20 Zeilen und einen einzelnen Task reduzieren. Hier ein Beispiel zum Anlegen eines neuen Hosts im Icinga:
Nachdem ich die ersten Module geschrieben habe, habe ich sie intern vorgestellt. Daraufhin hat mein Kollege Lars Krahl angefangen, sie einzusetzen, zu erweitern und zu verbessern. Als die Module einen Stand erreicht hatten, in dem wir sie für veröffentlichungswürdig hielten, haben wir sie auf Github hochgeladen. Da sind sie jetzt für jeden zugänglich.
Inzwischen sind wir bereits bei Version 1.3.1 angelangt und haben die Collection um eine passende Rolle erweitert (danke dafür an Michaela Mattes). Diese Rolle nutzt die neuen Module und gibt einen möglichen Weg vor, diese zu nutzen, ohne selbst Tasks schreiben zu müssen.
Hier könnt ihr sie finden:
> Github
> Ansible Galaxy
Wie man diese Collection (was ist eine Collection?) nutzt, erfahrt ihr im Github-Repo. Solltet ihr die Collection nützlich finden, Fehler sehen oder Verbesserungsvorschläge haben, sagt es mir. Oder besser noch: stellt ein Issue oder Pull Request auf Github ein!
Noch mehr Open Source?
Linux und Open Source Enthusiast. Aus dem traditionellen Betrieb kommend, schlage ich jetzt Brücken zwischen Betrieb und Entwicklung und tauche nebenbei in die Cloud-Native Landschaft ein.