Eigene Ansible-Module erstellen

Vince Sesto

Follow

Mar 20, 2019 – 4 min read

Anpassen von Ansible für Ihre Bedürfnisse ist so einfach

Jeden Tag wächst die Anzahl der Ansible-Module weiter an, und mit der fortschreitenden Nutzung der Anwendung wird zusätzliche Unterstützung hinzugefügt. Warum sollten Sie also Ihre eigenen Ansible-Module erstellen? Nun, es gibt eine Reihe von Gründen, aber ich denke, der wichtigste ist, dass Sie ein Verständnis dafür bekommen, wie die Module funktionieren. Auch wenn diese neu entdeckte Fähigkeit vielleicht nicht sehr oft zum Einsatz kommt, ist es doch wahrscheinlicher, dass Sie Fehler oder Probleme mit bestehenden Ansible-Modulen beheben müssen, so dass das Wissen, wie alles funktioniert, eine wertvolle Fähigkeit sein kann.

Sie müssen auch bedenken, dass es viele ältere Legacy-Anwendungen oder interne Anwendungen gibt, die Ihre Organisation vielleicht verwendet, die keine eigenen Module haben. Es gibt andere Optionen für die Bereitstellung dieser Anwendungen über Ansible und die Bereitstellung von Vorlagen für ihre Konfiguration, aber es ist vielleicht einfacher, ein eigenes Modul für diese Anwendungen zu erstellen. Wie auch immer, das folgende Dokument liefert Ihnen die Details für den Anfang und erlaubt Ihnen hoffentlich, es weiter auszubauen.

Wenn Sie eine gute Möglichkeit suchen, mehr über Ansible zu erfahren, folgen Sie dem Link zu unserem neuesten Buch, Ansible Answers

Dies ist ein ziemlich einfaches Beispiel, aber ich hoffe, Sie werden sehen, dass Sie nur ein wenig Python-Kenntnisse brauchen, kombiniert mit Ihren Ansible-Kenntnissen, und Sie werden in der Lage sein, Ihre eigenen Ansible-Module zu erstellen…Machen Sie sich keine Sorgen, wenn Ihre Kenntnisse ein wenig unzureichend sind, alles wird erklärt, während wir es gemeinsam durchgehen.

Wir werden nur ein grundlegendes „Hello World“-Modul behandeln, um Ihnen zu zeigen, wie einfach das ist. In diesem Beitrag wird nicht auf die Installation und die Grundlagen von Ansible eingegangen, daher können Sie sich in unseren früheren Beiträgen über weitere Details informieren.

1.Beginnen Sie mit dem Zugriff auf Ihre Arbeitsumgebung, in der Ansible bereits installiert ist. Erstellen Sie in dem Verzeichnis, in dem Sie arbeiten, ein Bibliotheksverzeichnis:

mkdir library

2.Erstellen Sie im Bibliotheksverzeichnis Ihre neue Moduldatei mit dem Namen hello_module.py:

touch library/hello_module.py

3. Öffnen Sie die neue Datei mit Ihrem bevorzugten Texteditor und fügen Sie den folgenden Code ein (die Zahlen auf der linken Seite dienen nur als Referenz und sollten nicht in die Datei eingefügt werden):

Es gibt hier nichts allzu Kompliziertes, aber wenn Sie mit Python nicht vertraut sind, finden Sie hier eine Aufschlüsselung der einzelnen Zeilen. Zeile 1 gibt an, dass die lokal installierte Version von Python verwendet werden muss. Zeile 3 importiert die spezifischen Module, die mit Ansible ausgeführt werden sollen. Die Zeilen 5 bis 8 enthalten die Funktion, die als Teil Ihres Moduls ausgeführt wird. In Zeile 6 wird die Klasse AnsibleModule bereitgestellt, die es uns ermöglicht, eingehende Parameter zu verarbeiten und das Programm zu beenden, wobei die Antwort „hello“ und dann „world!“ in Zeile 7 lautet. In den Zeilen 10 und 11 wird dann die Funktion ausgeführt, wenn das Modul aufgerufen wird.

4 Wir können nun ein Playbook erstellen, um das Modul auszuführen. Erstellen Sie in Ihrem Arbeitsverzeichnis die Datei newmodule_test.yml:

touch newmodule_test.yml

5.Sie können nun Ihren Texteditor starten und die folgenden Details hinzufügen, damit Ihr Playbook ausgeführt wird

 1 ---
2 - hosts: 127.0.0.1
3 tasks:
4 - name: testing our new module
5 hello_module:
6 register: result
7
8 - debug: var=result

Wenn Sie noch nie mit Ansible gearbeitet haben, kann der obige Code den Host in Zeile 2 demjenigen zuweisen, an dem Sie arbeiten. In den Zeilen 3 bis 6 wird das neue Modul ausgeführt, wobei in Zeile 4 die Aufgabe benannt, in Zeile 5 das Modul aufgerufen und in Zeile 6 das Ergebnis in einer Variablen namens result registriert wird. In Zeile 8 wird schließlich die Debug-Funktion verwendet, um die Ergebnisse auszugeben, damit Sie sehen, dass alles funktioniert hat.

6 Wir können nun das neue Playbook mit dem folgenden Befehl ausführen:

ansible-playbook newmodule_test.yml

Damit erhalten Sie die folgende Ausgabe:

Wenn alles gut gelaufen ist, sollten Sie die oben genannte Ausgabe sehen, die Ihnen ein schönes „Hallo“ gibt: „world!“ als Ausgabe.

Ok, wir waren ziemlich schnell und schmutzig hier und das war das Ziel des Beitrags, aber alles, was Sie brauchen, ist Ihr Wissen über Python zu erweitern und Sie werden auch in der Lage sein, zu erweitern, was Ihre Module tun können.

Fand diesen Beitrag nützlich? Tippen Sie bitte auf die Klatschtaste unten! 🙂

Über den Autor

Schreibe einen Kommentar