0Pricing
Ansible Academy · Lektion

Shell-Befehle mit command und shell ausführen

Führen Sie beliebige Befehle auf entfernten Knoten aus.

Shell-Befehle mit command und shell ausführen ist eine kostenlose Ansible Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Ansible Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Ansible Academy-Kurs umfasst insgesamt 4 Lektionen.

Echte Befehle remote ausführen

Manchmal müssen Sie einfach einen direkten Befehl auf Ihren Servern ausführen. Ansible bietet dafür zwei Module: command und shell. 🖥️

Das command-Modul

Das command-Modul führt ein Programm direkt auf dem Remote-Host aus. Es ist die sichere Standardwahl für einfache, einzelne Befehle.

ansible all -m command -a "uptime"

command überspringt die Shell

Da command ohne Shell ausgeführt wird, ignoriert es Pipes, Umleitungen und Variablen wie $HOME. Dadurch bleibt das Verhalten vorhersehbar und sicher.

ansible all -m command -a "ls /etc"

Das shell-Modul

Das shell-Modul führt Ihren Befehl über eine echte Shell auf dem Host aus, sodass Pipes, Umleitungen und Variablen funktionieren.

ansible all -m shell -a "cat /etc/*release"

Pipes benötigen shell

Wenn Ihr Befehl eine Pipe oder Umleitung verwendet, greifen Sie zu shell. Das command-Modul würde | lediglich als normales Argument behandeln.

ansible web -m shell -a "ps aux | grep nginx"

Umgebungsvariablen in shell

Nur das shell-Modul expandiert Variablen. Verwenden Sie es, wenn Ihr Befehl auf etwas wie $HOME oder $PATH angewiesen ist.

ansible all -m shell -a "echo $HOME"

command bevorzugen, wenn möglich

Greifen Sie standardmäßig zu command und verwenden Sie shell nur, wenn Sie tatsächlich Shell-Funktionen benötigen. Weniger Shell bedeutet weniger Überraschungen.

Mit chdir in einem Verzeichnis ausführen

Beide Module akzeptieren chdir, um vor der Ausführung in ein Verzeichnis zu wechseln. Das ist sauberer, als cd in den Befehl einzubauen.

ansible app -m command -a "chdir=/srv git pull"

Wiederholte Ausführung mit creates verhindern

Die Option creates überspringt den Befehl, wenn eine angegebene Datei bereits existiert. So vermeiden Sie auf einfache Weise wiederholte Arbeit.

ansible app -m command -a "touch /tmp/done creates=/tmp/done"

Sie sind nicht idempotent

Beide Module melden bei jeder Ausführung changed, da Ansible nicht wissen kann, was Ihr direkter Befehl bewirkt hat. Bevorzugen Sie echte Module, wenn eines vorhanden ist.

Letzter Ausweg, nicht erste Wahl

Betrachten Sie shell und command als Ausweichmöglichkeiten. Wenn ein dediziertes Modul wie service oder package passt, verwenden Sie stattdessen dieses für sicherere Ergebnisse.

Kurze Prüfung

Sie müssen einen Befehl ausführen, der eine Pipe verwendet. Welches Modul sollten Sie auswählen?

Zusammenfassung

Verwenden Sie command für einfache Befehle und shell, wenn Sie Pipes oder Variablen benötigen. Denken Sie daran: Beide melden immer changed. 🖥️

Häufig gestellte Fragen

Ist die Lektion „Shell-Befehle mit command und shell ausführen“ kostenlos?

Ja — der vollständige Text von „Shell-Befehle mit command und shell ausführen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Ansible Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Ansible Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Shell-Befehle mit command und shell ausführen“?

Führen Sie beliebige Befehle auf entfernten Knoten aus. Du übst Ansible Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Ansible Academy zu starten?

Keine Vorkenntnisse erforderlich. Ansible Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Shell-Befehle mit command und shell ausführen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Ansible Academy-Lektion Code schreiben und ausführen?

Ja. Jede Ansible Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Anatomie des ansible-Befehls
  2. Patterns: alle, web und host1 ansteuern
  3. Shell-Befehle mit command und shell ausführen
  4. Berechtigungserweiterung mit become
← Zurück zu Ansible Academy