Ausführung von Befehlen auf mehreren Hosts
Ein Hauptvorteil von Ansible-Ad-hoc-Befehlen ist die Fähigkeit, Aufgaben gleichzeitig auf mehreren Hosts auszuführen. Dieser Abschnitt führt Sie durch den Prozess der Ausführung von Befehlen auf mehreren Hosts mithilfe von Ansible.
Ausführung von Ad-hoc-Befehlen
Um einen Ad-hoc-Befehl auf mehreren Hosts auszuführen, können Sie den Befehl ansible
verwenden, gefolgt vom Hostmuster und dem Modul, das Sie ausführen möchten. Die grundlegende Syntax lautet:
ansible <host_pattern> -m <module_name> -a "<module_arguments>"
Hier ist ein Beispiel dafür, wie Sie die Laufzeit aller Hosts in der Gruppe "webservers" überprüfen:
ansible webservers -m command -a "uptime"
In diesem Beispiel ist webservers
das Hostmuster, command
das Modul zum Ausführen eines Befehls und "uptime"
der an das Modul übergebene Argument.
Host-Targeting
Sie können Hosts in Ihrer Inventarliste mit verschiedenen Hostmustern ansprechen. Einige gängige Muster umfassen:
all
: Ziel aller Hosts im Inventar
webservers
: Ziel der Hosts in der Gruppe "webservers"
app[01:05]
: Ziel der Hosts mit den Namen "app01" bis "app05"
app*.example.com
: Ziel der Hosts, die dem Platzhaltermuster entsprechen
Module und Argumente
Ansible bietet eine Vielzahl von Modulen, mit denen Sie verschiedene Aufgaben ausführen können. Einige häufig verwendete Module umfassen:
command
: Führt einen Befehl auf dem Remote-Host aus
shell
: Führt einen Shell-Befehl auf dem Remote-Host aus
file
: Verwaltet den Zustand einer Datei oder eines Verzeichnisses
package
: Verwaltet Pakete auf dem Remote-Host
Sie können Argumente an diese Module über die Option -a
übergeben. Um beispielsweise das Paket nginx
auf allen Hosts in der Gruppe "webservers" zu installieren:
ansible webservers -m package -a "name=nginx state=present"
Fakten sammeln
Ansible bietet auch ein Modul setup
, mit dem Sie Informationen über die Remote-Hosts wie Betriebssystem, CPU, Speicher usw. sammeln können. Diese Informationen können nützlich sein, wenn Sie komplexere Ad-hoc-Befehle oder Playbooks schreiben. Um Fakten über alle Hosts im Inventar zu sammeln:
ansible all -m setup
Durch das Verständnis der Ausführung von Ad-hoc-Befehlen auf mehreren Hosts können Sie schnell und effizient eine Vielzahl von Aufgaben in Ihrer Infrastruktur ausführen. Lassen Sie uns nun einige praktische Anwendungsfälle für Ansible-Ad-hoc-Befehle untersuchen.