Ausführung von Befehlen auf Remote-Hosts
Grundlegende Befehlsausführung
Um einen Befehl auf einem Remote-Host mit dem Ansible Command-Modul auszuführen, können Sie die folgende grundlegende Syntax verwenden:
- name: Ausführung eines Befehls auf einem Remote-Host
command: <Befehl>
register: <Ergebnisvariable>
become: yes
In diesem Beispiel ist <Befehl>
der tatsächliche Befehl, den Sie auf dem Remote-Host ausführen möchten, und <Ergebnisvariable>
die Variable, die den Ausgang des Befehls speichern wird. Der Parameter become
ist auf yes
gesetzt, um den Befehl mit erhöhten Rechten auszuführen (falls erforderlich).
Um beispielsweise die Laufzeit eines Remote-Hosts zu überprüfen:
- name: Laufzeit des Remote-Hosts überprüfen
command: uptime
register: uptime_result
become: yes
Der Ausgang des Befehls uptime
wird in der Variable uptime_result
gespeichert, die Sie dann in Ihrem Playbook oder Ad-hoc-Befehl verwenden können.
Umgang mit Befehlsfehlern
Standardmäßig schlägt das Ansible Command-Modul fehl, wenn der ausgeführte Befehl einen Nicht-Null-Ausgangszustand zurückgibt. Sie können Befehlsfehler behandeln, indem Sie den Parameter ignore_errors
verwenden:
- name: Ausführung eines Befehls auf einem Remote-Host
command: <Befehl>
register: <Ergebnisvariable>
ignore_errors: yes
Dies ermöglicht es dem Playbook, die Ausführung fortzusetzen, auch wenn der Befehl fehlschlägt.
Erfassung des Befehlsausgangs
Sie können den Ausgang eines Befehls erfassen, indem Sie den Parameter register
verwenden, wie in den vorherigen Beispielen gezeigt. Der Ausgang wird in der angegebenen Variable gespeichert, die Sie dann in Ihrem Playbook oder Ad-hoc-Befehl verwenden können.
Um beispielsweise den Ausgang des Befehls uptime
zu erfassen und ihn auszugeben:
- name: Laufzeit des Remote-Hosts überprüfen
command: uptime
register: uptime_result
become: yes
- name: Laufzeit ausgeben
debug:
msg: "{{ uptime_result.stdout }}"
Dies gibt den Ausgang des Befehls uptime
auf der Konsole aus.
Durch das Verständnis der Grundlagen der Befehlsausführung auf Remote-Hosts mit dem Ansible Command-Modul können Sie eine Vielzahl von Aufgaben in Ihrer Infrastruktur effektiv automatisieren.