Lokales Ausführen eines einfachen Befehls
In diesem Schritt lernen Sie, wie Sie das Ansible Local Action Modul verwenden, um einen einfachen Befehl auf dem Steuerungssystem auszuführen. Dies wird Ihnen helfen, die grundlegende Verwendung und Syntax des Moduls zu verstehen.
Führen Sie zunächst die Datei /home/labex/project/execute_local_command.yml
aus.
Fügen Sie den folgenden Inhalt zur Playbook-Datei hinzu:
- name: Lokales Ausführen eines einfachen Befehls
gather_facts: false
hosts: localhost
tasks:
- name: Lokalen Ausdruck einer Nachricht
local_action:
module: command
cmd: echo "Hello, World!"
register: result
- name: Debuggen der Ausgabe
debug:
var: result.stdout
gather_facts
: Dies bestimmt, ob Ansible Fakten über die Zielhosts sammeln soll. In diesem Fall ist es auf false
gesetzt, was bedeutet, dass keine Fakten gesammelt werden.
hosts
: Dies bestimmt den Zielhost, auf dem das Playbook ausgeführt werden soll. In diesem Fall wird das Playbook auf dem lokalen Host ausgeführt, da der Zielhost localhost
ist.
tasks
: Dies ist eine Liste von Aufgaben, die ausgeführt werden sollen.
local_action
: Dies zeigt an, dass die Aktion lokal auf dem Steuerungssystem ausgeführt werden soll, auf dem Ansible ausgeführt wird.
module
: Dies bestimmt das Ansible-Modul, das für die Aktion verwendet werden soll. In diesem Fall ist es das command
-Modul.
cmd
: Dies ist der tatsächliche Befehl, der ausgeführt werden soll. In diesem Fall ist es der Shell-Befehl echo "Hello, World!"
, der die Nachricht "Hello, World!" auf der Konsole ausdrucken wird.
register
: Dies registriert die Ausgabe des Befehls in der Variablen result
für spätere Verwendung im Playbook.
debug
: Dies ist das Ansible-Modul, das verwendet wird, um Debuginformationen auszugeben.
var
: Dies ist ein Parameter für das debug
-Modul, der angibt, welche Variable debuggt werden soll. In diesem Fall ist es result.stdout
, das die Standardausgabe des im vorherigen Task ausgeführten Befehls enthält.
Zusammenfassend führt dieses Playbook einen einfachen Befehl echo "Hello, World!"
lokal auf dem Steuerungssystem aus, registriert die Ausgabe und gibt dann die Ausgabe mit dem debug
-Modul aus.
Geben Sie dann die Ausgabe des Befehls im Ansible Playbook aus.
ansible-playbook /home/labex/project/execute_local_command.yml
Beispielausgabe:
[WARNING]: Es wurde kein Inventar analysiert, es ist nur der implizite localhost verfügbar
[WARNING]: Die bereitgestellte Hosts-Liste ist leer, es ist nur localhost verfügbar. Beachten Sie, dass der implizite localhost nicht mit 'all' übereinstimmt
PLAY [Local Action Module Challenge] *******************************************
TASK [Lokalen Ausdruck einer Nachricht] *************************************************
changed: [localhost]
TASK [Debuggen der Ausgabe] ********************************************************
ok: [localhost] => {
"result.stdout": "Hello, World!"
}
PLAY RECAP *********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Hier ist "result.stdout": "Hello, World!"
die Ausgabe des Befehls echo "Hello, World!"
.