Erweiterte Optionen des Ping-Moduls und Targeting mehrerer Gruppen
Pingen mehrerer Hostgruppen
Erweitern wir unser Playbook, um mehrere Gruppen aus unserer Inventory-Datei zu pingen. Erstellen Sie eine neue Datei namens ping_all.yml
:
- Navigieren Sie in der WebIDE zu
/home/labex/project/ansible
.
- Klicken Sie mit der rechten Maustaste auf den Ordner
ansible
und wählen Sie "Neue Datei".
- Benennen Sie die Datei
ping_all.yml
.
- Fügen Sie den folgenden Inhalt zur Datei hinzu:
---
- hosts: all
gather_facts: no
tasks:
- name: Ping all hosts in the inventory
ping:
Dieses Playbook zielt auf alle Hosts in der Inventory-Datei ab. Führen Sie es mit folgendem Befehl aus:
ansible-playbook -i hosts ping_all.yml
Sie sollten eine Ausgabe sehen, die erfolgreiche Ping-Antworten von allen Hosts in Ihrer Inventory-Datei anzeigt.
Verwenden benutzerdefinierter Daten mit dem Ping-Modul
Das Ansible Ping-Modul ermöglicht es Ihnen, benutzerdefinierte Daten zu senden, um zu überprüfen, ob diese unverändert zurückkommen. Dies kann nützlich sein, um komplexere Konnektivitätsszenarien zu testen.
Erstellen Sie ein neues Playbook namens ping_data.yml
:
- Erstellen Sie in der WebIDE eine neue Datei namens
ping_data.yml
im Verzeichnis /home/labex/project/ansible
.
- Fügen Sie den folgenden Inhalt hinzu:
---
- hosts: webservers
gather_facts: no
tasks:
- name: Ping with custom data
ping:
data: "Hello from Ansible Lab"
Führen Sie dieses Playbook aus:
ansible-playbook -i hosts ping_data.yml -v
Die ausführliche Ausgabe zeigt Ihre benutzerdefinierten Daten in der Antwort:
TASK [Ping with custom data] **************************************************
ok: [localhost] => {"changed": false, "ping": "Hello from Ansible Lab"}
Ping gegen bestimmte Hosts ausführen
Sie können das Ping-Modul auch direkt über die Befehlszeile ausführen, ohne ein Playbook zu erstellen. Dies ist nützlich für schnelle Konnektivitätsprüfungen:
ansible local -i hosts -m ping
Dieser Befehl pingt alle Hosts in der Gruppe local
und zeigt die Ergebnisse an. Sie sollten Folgendes sehen:
localhost | SUCCESS => {
"changed": false,
"ping": "pong"
}
Sie können auch mehrere Gruppen oder Muster angeben:
ansible 'webservers:local' -i hosts -m ping
Dieser Befehl pingt alle Hosts sowohl in den Gruppen webservers
als auch in der Gruppe local
.
Ping-Modul mit Argumenten
Sie können auch Argumente direkt über die Befehlszeile an das Ping-Modul übergeben:
ansible all -i hosts -m ping -a "data='Command line test'"
Dieser Befehl pingt alle Hosts mit der benutzerdefinierten Datenzeichenfolge "Command line test" und zeigt die Ergebnisse an.
Die Ausgabe zeigt die Antwort jedes Hosts mit Ihrer benutzerdefinierten Nachricht:
localhost | SUCCESS => {
"changed": false,
"ping": "Command line test"
}
Diese Beispiele demonstrieren die Vielseitigkeit des Ansible Ping-Moduls zur Überprüfung der Konnektivität zu Ihren verwalteten Hosts auf verschiedene Weise.