delegate_to und run_once für Orchestrierung
Führen Sie einen Task auf einem Host für viele aus.
delegate_to und run_once für Orchestrierung ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 2 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 DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Aufgaben laufen nicht immer dort, wo Sie denken
Standardmäßig läuft jede Aufgabe auf ihrem Zielhost. Für die Orchestrierung muss eine Aufgabe manchmal an einem völlig anderen Ort ausgeführt werden. 🎯
Lernen Sie delegate_to kennen
Das Schlüsselwort delegate_to führt eine Aufgabe auf einem anderen Host als dem aktuellen aus und verwendet dabei weiterhin die Variablen dieses Hosts.
- name: Add web node to load balancer
community.general.haproxy:
host: "{{ inventory_hostname }}"
state: enabled
delegate_to: lb01Ein klassischer Anwendungsfall
Delegieren Sie beim Durchlaufen der Webknoten die Änderung am Load-Balancer an den LB-Host. Das Play bleibt knotenbezogen, aber die Aktion wird auf dem LB ausgeführt.
An localhost delegieren
Führen Sie eine Aufgabe auf Ihrem Steuerknoten aus, indem Sie sie an localhost delegieren. Das eignet sich hervorragend, um eine API aufzurufen oder eine Benachrichtigung zentral zu versenden.
- name: Notify chat
ansible.builtin.uri:
url: "{{ webhook }}"
method: POST
delegate_to: localhostVariablen bleiben beim ursprünglichen Host
Durch Delegation ändert sich, wo eine Aufgabe ausgeführt wird, nicht aber, welche Fakten sie sieht. inventory_hostname bezeichnet weiterhin das ursprüngliche Ziel und nicht den Delegate.
Lernen Sie run_once kennen
Das Schlüsselwort run_once führt eine Aufgabe für den gesamten Batch nur einmal aus und nicht einmal pro Host. Ansible wählt den ersten Host für die Ausführung aus.
- name: Run database migration
ansible.builtin.command: ./migrate.sh
run_once: trueWarum run_once wichtig ist
Manche Aktionen dürfen nur einmal ausgeführt werden, etwa eine Migration oder eine Leader-Wahl. run_once verhindert, dass jeder Host denselben gemeinsamen Schritt wiederholt.
Beide kombinieren
Kombinieren Sie run_once mit delegate_to, um eine Aktion auf einem ausgewählten Host genau einmal auszuführen, etwa eine Migration von einem einzelnen App-Knoten aus.
- name: Migrate db once
ansible.builtin.command: ./migrate.sh
run_once: true
delegate_to: app01Ergebnisse werden gemeinsam genutzt
Mit run_once wird ein registriertes Ergebnis für alle Hosts im Batch freigegeben. Alle sehen die Ausgabe dieser einzigen Ausführung.
- ansible.builtin.command: cat /etc/version
run_once: true
register: verFakten von einem Delegate sammeln
Verwenden Sie delegate_facts, wenn die gesammelten Fakten dem Delegate-Host statt dem aktuellen Host zugeordnet werden sollen. Standardmäßig ist diese Option deaktiviert.
Orchestrierung statt nur Konfiguration
Zusammen machen diese Schlüsselwörter aus der hostbezogenen Konfiguration eine echte Orchestrierung: Sie koordinieren eine Aktion für eine ganze Flotte von einem zentralen Punkt aus.
Kurze Überprüfung
Überprüfen wir diese Schlüsselwörter für die Orchestrierung.
Zusammenfassung
Verwenden Sie delegate_to, um eine Aufgabe auf einem anderen Host auszuführen, und run_once, um sie pro Batch nur einmal auszuführen – die Grundlage der Orchestrierung. ✅
Häufig gestellte Fragen
Ist die Lektion „delegate_to und run_once für Orchestrierung“ kostenlos?
Ja — der vollständige Text von „delegate_to und run_once für Orchestrierung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „delegate_to und run_once für Orchestrierung“?
Führen Sie einen Task auf einem Host für viele aus. Du übst DevOps Bootcamp 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 DevOps Bootcamp zu starten?
Keine Vorkenntnisse erforderlich. DevOps Bootcamp 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 2 von 4.
Wie lange dauert die Lektion „delegate_to und run_once für Orchestrierung“?
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 DevOps Bootcamp-Lektion Code schreiben und ausführen?
Ja. Jede DevOps Bootcamp-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
- Netzwerkgeräte mit cli_command automatisieren
- delegate_to und run_once für Orchestrierung
- Web-, App- und Datenbankebenen koordinieren
- Load-Balancer-Drain und erneute Aktivierung