allow_duplicates und Idempotenz von Rollen
Steuern Sie die wiederholte Ausführung von Rollen.
allow_duplicates und Idempotenz von Rollen ist eine kostenlose Ansible Academy-Lektion auf CoddyKit. Dies ist Lektion 4 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.
Rollen werden standardmäßig einmal ausgeführt
Wenn zwei Rollen beide von einer common-Rolle abhängen, verhält sich Ansible intelligent: common wird innerhalb eines einzelnen Plays nur einmal statt zweimal ausgeführt.
Warum es die Deduplizierung gibt
Diese Deduplizierung verhindert, dass gemeinsame Einrichtungsrollen aufwendige Arbeiten wiederholen, etwa eine Basisabsicherungsrolle für jede App-Rolle erneut auszuführen.
Dieselbe Rolle, dieselben Parameter
Das Überspringen gilt nur, wenn die Rolle mit denselben Parametern angefordert wird. Identische Aufrufe gelten als bereits erledigt.
Andere Parameter, erneute Ausführung
Rufen Sie dieselbe Rolle mit anderen Variablen auf, führt Ansible sie erneut aus. Eine vhost-Rolle mit zwei Konfigurationen wird wie gewünscht zweimal angewendet.
roles:
- role: vhost
vars: { name: site_a }
- role: vhost
vars: { name: site_b }allow_duplicates kennenlernen
Die Einstellung allow_duplicates in meta/main.yml steuert dieses Verhalten. Setzen Sie sie auf true, darf die Rolle innerhalb eines Plays wiederholt ausgeführt werden.
# meta/main.yml
allow_duplicates: trueWann Duplikate erlaubt werden sollten
Aktivieren Sie die Einstellung für Rollen, die mehrfach angewendet werden sollen, etwa zum Anlegen mehrerer Benutzer oder virtueller Hosts, wobei jeder Aufruf tatsächlich neue Arbeit erledigt.
Standardmäßig false
Standardmäßig ist allow_duplicates false. Eine Rolle mit identischen Parametern wird daher nur einmal ausgeführt. Lassen Sie die Einstellung für einmalige Einrichtungsrollen deaktiviert.
Deduplizierung ist keine Idempotenz
Das Überspringen eines doppelten Aufrufs ist eine praktische Hilfe zur Laufzeit. Echte Idempotenz bedeutet, dass jede Task unabhängig von der Ausführungshäufigkeit einen Zielzustand erreicht.
Idempotente Tasks erstellen
Bevorzugen Sie innerhalb einer Rolle zustandsbasierte Module gegenüber raw command. Eine wirklich idempotente Rolle kann ohne negative Auswirkungen zweimal angewendet werden.
include_role wird immer erneut ausgeführt
Achtung: include_role berücksichtigt die Deduplizierungslogik nicht auf dieselbe Weise. Eine dynamisch eingebundene Rolle wird jedes Mal ausgeführt, wenn sie erreicht wird.
Kombinierbar und sicher
Kombinieren Sie Deduplizierung, allow_duplicates und idempotente Tasks, um Rollen-hierarchien zu erstellen, die sich sauber kombinieren lassen und sicher erneut ausgeführt werden können.
Kurzer Check
Rufen Sie die Einstellung in Erinnerung, mit der eine Rolle in einem Play mehr als einmal ausgeführt werden kann.
Zusammenfassung
Ansible dedupliziert identische Rollenaufrufe. Setzen Sie allow_duplicates auf true, um einen davon zu wiederholen, und halten Sie Tasks idempotent, damit erneute Ausführungen sicher sind. ♻️
Häufig gestellte Fragen
Ist die Lektion „allow_duplicates und Idempotenz von Rollen“ kostenlos?
Ja — der vollständige Text von „allow_duplicates und Idempotenz von Rollen“ 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 „allow_duplicates und Idempotenz von Rollen“?
Steuern Sie die wiederholte Ausführung von Rollen. 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 4 von 4.
Wie lange dauert die Lektion „allow_duplicates und Idempotenz von Rollen“?
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
- Rollenabhängigkeiten in meta/main.yml
- defaults und vars: Die Reihenfolge beim Überschreiben
- include_role und import_role zur Laufzeit
- allow_duplicates und Idempotenz von Rollen