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.

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

PGlmcmFtZSBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUtbm9jb29raWUuY29tL2VtYmVkLzIzczhTQ1pENGVVIiBhbGxvdz0iYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGVuY3J5cHRlZC1tZWRpYTsgZ3lyb3Njb3BlOyBwaWN0dXJlLWluLXBpY3R1cmUiIGFsbG93ZnVsbHNjcmVlbj0iIiB3aWR0aD0iNTYwIiBoZWlnaHQ9IjMxNSIgZnJhbWVib3JkZXI9IjAiPjwvaWZyYW1lPg==

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:

Beispiel zum Anlegen eines Hosts im Incinga

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!


Wollen Sie Ihr Unternehmen flexibler und schneller gestalten? Dann implementieren Sie DevOps und Clouds – aber richtig!
>Zum Whitepaper „DevOps und Cloud – Synergieeffekte nutzen“

Bringen Sie Ihre individuellen Applikationen und die Cloud in Einklang.
>Zum Angebot Cloud Application Management