Arbeiten Mit Ansible Ad-Hoc-Befehlen

Arbeiten Mit Ansible Ad-Hoc-Befehlen
Arbeiten Mit Ansible Ad-Hoc-Befehlen
Anonim

Einer der Vorteile von Ansible als bevorzugtes Konfigurationsmanagement-Tool ist seine Flexibilität. Sie sind an keine bestimmte Vorgehensweise gebunden, und mit Ad-hoc-Befehlen müssen Sie keine umfangreichen Aufgaben erstellen, nur um einfache Vorgänge an Ihren Knoten auszuführen. Mit Ad-hoc-Befehlen in Ansible können Sie einfache Aufgaben über die Befehlszeile auf einem oder allen Hosts ausführen.

Ein Ad-hoc-Befehl besteht aus zwei Parametern. Die Hostgruppe, die definiert, auf welchen Computern die Aufgabe ausgeführt werden soll, und das Ansible-Modul, das ausgeführt werden soll. Diese Parameter werden zum Aufrufen an die ansible-Binärdatei übergeben. Wenn Sie das Ping-Modul auf allen Computern ausführen möchten, die sich in der Server-Hostgruppe befinden, geschieht dies folgendermaßen:

Ansible Server -m Ping

Tatsächlich müssen wir überhaupt kein Ansible-Modul verwenden. Wir können sogar den Befehl angeben, der auf jedem Computer direkt an der CLI ausgeführt werden soll. Wenn wir beispielsweise alle Hosts innerhalb dieser Server-Hostgruppe neu starten müssen, können wir eine Neustartsequenz einleiten, indem wir die Neustart-Binärdatei direkt von Ansible aus aufrufen.

Ansible Server -a "/ sbin / reboot"

Beachten Sie, dass ich dieses Mal den Parameter -a verwende. Dies zeigt an, dass ich einen direkten Befehl und kein Modul übergeben werde. Für ein Modul würde ich den Parameter -m verwenden. Um Sie nicht zu verwirren, können wir auch den Parameter -a mit dem Parameter -m verwenden, um verschiedene Argumente an ein Modul zu übergeben. Mit dem yum-Paket müssen wir beispielsweise den Namen des gesuchten Pakets und seinen Status angeben. Wir würden das tun, indem wir beide Parameter verwenden.

Ansible Server -m yum -a "name = foo state = present"

Mit Ad-hoc-Befehlen in Ansible können Sie Befehle auch parallel ausführen. Mit der Option -f und der Angabe, wie viele parallele Gabeln ausgeführt werden sollen, können wir alle diese Hosts gleichzeitig zehnmal neu starten.

Ansible Server -a "/ sbin / reboot" -f 10

Möglicherweise sind Sie als ein anderer Benutzer an der Konsole angemeldet, für den Sie einen Befehl ausführen möchten. Sie müssen Ansible irgendwie anweisen, diesen Befehl als alternativen Benutzer aufzurufen, ohne sich von der Konsole abmelden und sich erneut als dieser Benutzer anmelden zu müssen. Das Ausführen von Ad-hoc-Befehlen als alternativer Benutzer ist mit den Parametern -u, --become und --ask-become-pass möglich. Diese beiden Optionen erzwingen, dass der Befehl als dieser Benutzer ausgeführt wird, und fordern Sie interaktiv zur Eingabe des Kennworts dieses Benutzers auf.

Ansible Server -a "/ sbin / reboot" -u differentuserhere --become --ask-become-pass

Als letztes Beispiel für die Arbeit mit Ad-hoc-Befehlen fügen wir eine zeitlich begrenzte Hintergrundoperation hinzu. Dies ist praktisch für lang laufende Befehle, bei denen Sie Ihre Konsole lieber nicht binden möchten, damit Sie andere Aufgaben ausführen können. Mit Ansible können wir die Aufgabe im Hintergrund aufrufen und eine Zeitüberschreitung festlegen, um sicherzustellen, dass sie nicht für immer ausgeführt wird. Vielleicht möchte ich ein Skript auf allen meinen Hosts ausführen, es in den Hintergrund treten und sicherstellen, dass es nicht länger als eine Stunde läuft. Dies erfolgt über die Parameter -B und -P.

ansible all -a "/ usr / bin / somescript" -B 3600 -P 0

Empfohlen: