Um mit Ansible eine automatisierte Aufgabe auf einem Remote-Host auszuführen, ist es wie zu erwarten notwendig, bestimmte Variablen zu füllen und mit ihnen zu arbeiten. Diese Art von Aufgabe ist beispielsweise erforderlich, um einen Remote-Host online zu stellen, Anmelde- und Benutzerberechtigungen zuzulassen und eine Python-Umgebung einzurichten.
Es ist möglich, eine SSH-Verbindung zu einem Remote-Host herzustellen und zu überprüfen, ob der Host alle Kriterien erfüllt. Als Automatisierungstool bietet Ansible jedoch Module, mit denen Sie diese mühsamen, zeitaufwändigen Aufgaben in einer einzigen Befehlszeile ausführen können.
Dieses Tutorial zeigt Ihnen, wie Sie das integrierte Ping-Modul von Ansible verwenden, um verschiedene Set-Variablen auf Remote-Hosts auszuführen. Die Ansible-Ping-Anfrage ist ein einfaches, aber nützliches Tool, mit dem Sie die Verfügbarkeit und Praktikabilität von Remote-Hosts testen können.
Wir schauen uns nun genauer an, wie der Ansible-Ping funktioniert.
HINWEIS: Dieser Abschnitt ist etwas theoretisch. Wenn Sie nur den technischen Teil des Artikels benötigen, können Sie diesen Abschnitt überspringen. Trotzdem empfehlen wir, diesen Abschnitt zu lesen, da er einige nützliche Einblicke und Informationen zum Ping-Modul bietet.
Nachdem dies festgestellt wurde, werden wir nun das Ping-Modul vorstellen.
Über das Ansible Ping-Modul
Die Ansible-Ping-Anfrage überprüft den Remote-Host. Dieses Modul prüft speziell auf:
- Ob der Remote-Host aktiv und zugänglich ist.
- Ob die Python-Umgebung die erforderlichen Playbooks erfolgreich ausführen kann.
- Die Benutzeranmeldung und Berechtigungen.
Nachdem eine Ping-Anfrage an den Remote-Host gesendet wurde, gibt das Modul einen Wert zurück, der angibt, ob der Ping erfolgreich war. Standardmäßig gibt das Ping-Modul bei Erfolg die Zeichenfolge 'pong' und bei Fehlschlagen eine Ausnahme zurück (sofern angegeben).
PRO-TIPP: Um sicherzustellen, dass Ihre Ansible-Playbooks auf den Ziel-Remote-Hosts nicht ausfallen, verwenden Sie das Ping-Modul, um zu überprüfen, ob die Anforderungen erfüllt sind, und führen Sie die Aufgaben nur aus, wenn eine erfolgreiche Ausgabe erhalten wurde.
Funktionen des Ansible Ping-Moduls
Das Ping-Modul ist recht einfach und im Folgenden finden Sie eine Liste der Funktionen, die dieses Modul bietet:
- Kein ICMP-Ping; Es handelt sich vielmehr um ein kleines Modul, das eine gültige Python-Umgebung auf entfernten Hosts erfordert.
- Windows-Remote-Hosts sollten stattdessen das Modul win_ping verwenden use.
- Bietet ein net_ping-Modul für Netzwerkgeräte.
- Akzeptiert nur einen einzelnen Parameter, um eine Ausnahme auszulösen.
- Wird standardmäßig beim Aufrufen des ansible-Befehls im Verzeichnis /usr/bin/ansible verwendet, um die Anmeldeberechtigungen und eine gültige Python-Umgebung zu überprüfen.
- Gibt bei Erfolg die Zeichenfolge 'pong' zurück.
So verwenden Sie das Ansible Ping-Modul
Wir werden uns nun einige Beispiele ansehen, die das Ansible-Ping-Modul verwenden.
Verwenden des AD-HOC-Ping-Befehls
Die einfachste Möglichkeit, das Ansible-Ping-Modul auszuführen, besteht darin, einen einfachen AD HOC-Befehl im Terminal auszuführen.
Der AD HOC-Befehl lautet wie folgt:
ansible all -m ping -vDer obige Befehl beginnt mit dem Aufruf von Ansible, gefolgt von dem spezifischen Muster des Hosts. In diesem Fall möchten wir 'alle' Hosts anpingen. Der nächste Teil, '-m', gibt das Modul an, das wir verwenden möchten. Das '-v' steht für ausführlich.
Bei Erfolg erhalten Sie eine Ausgabe wie die unten gezeigte:
Verwenden von /etc/ansible/ansible.cfg als Konfigurationsdatei 35.222.210.12| ERFOLG =>
"ansible_facts":
"discovered_interpreter_python": "/usr/bin/python" ,
"geändert": falsch,
"Tischtennis"
Wenn die Remote-Hosts nicht verfügbar sind (vielleicht sind sie offline), erhalten Sie eine Ausgabe wie die unten gezeigte:
Verwenden von /etc/ansible/ansible.cfg als Konfigurationsdatei 35.222.210.12| UNERREICHBAR! =>
"geändert": falsch,
"msg": "Verbindung zum Host über ssh fehlgeschlagen: ssh: Verbindung zum Host 35.222.210.12 Port 22: Zeitüberschreitung der Verbindung",
"unerreichbar": wahr
Verwenden des Ping-Moduls in Playbooks
Sie können das Ping-Modul auch in einem Playbook verwenden. In den meisten Fällen erstellen Sie kein Playbook, das nur eine Ping-Anfrage durchführt. Sie können jedoch alle Aufgaben in die Bedingungen der Ping-Anforderung einschließen.
Betrachten Sie das folgende einfache Playbook:
- Gastgeber: allewerden: ja
Aufgaben:
- Klingeln
Sie werden vielleicht bemerken, dass ich in das obige Playbook die 'Werde'-Anweisung aufgenommen habe. Dies ist keine Voraussetzung, aber ich habe Fälle erlebt, in denen das Ping-Modul für einen Standardbenutzer fehlschlägt. Sie können nun das Playbook ausführen und prüfen, ob der Hostserver die Voraussetzungen für eine erfolgreiche 'Pong'-Antwort erfüllt.
Ansible-Playbook-Ping.ymlWenn der Ping nicht erfolgreich ist, erhalten Sie die folgende Fehlermeldung "unerreichbar":
tödlich: [35.222.210.12]: UNERREICHBAR! => "changed": false, "msg": "Verbindung zum Host über ssh fehlgeschlagen: ssh: Verbindung zum Host 35.222.210.12 Port 22: Zeitüberschreitung der Verbindung", "unerreichbar": trueVerwenden der Raise-Ausnahme mit dem Ping-Modul
Sie können Daten auch als Absturz angeben, um eine Ausnahme auszulösen. Dies ändert die Standardrückgabe von 'pong' in 'crash.'
Betrachten Sie das folgende Playbook:
- Gastgeber: allewerden: ja
Aufgaben:
- Klingeln:
Absturz: Daten
Das Ausführen des Playbooks mit Ausnahme sollte den folgenden Wert zurückgeben:
ansible-playbook ping_außer.yml
Fazit
Dieses Tutorial hat Ihnen den vielfältigen Nutzen des Ping-Moduls gezeigt. Obwohl dieses Modul keine komplexen Parameter wie die meisten Ansible-Module enthält, enthält es dennoch leistungsstarke Funktionen. Sie können beispielsweise mit dem Ping-Modul prüfen, ob ein Fehler auf eine fehlende Python-Umgebung zurückzuführen ist und eine Aufgabe erstellen, um die erforderliche Umgebung auf dem Remote-Host zu installieren install.