include_role und import_role zur Laufzeit
Rufen Sie Rollen während eines Plays dynamisch auf.
include_role und import_role zur Laufzeit 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.
Über die roles-Liste hinaus
Die roles-Liste auf oberster Ebene wendet Rollen an, bevor Tasks ausgeführt werden. Manchmal benötigen Sie eine Rolle mitten im Play, genau an der Stelle einer Task.
Eine Rolle als Task aufrufen
Sowohl include_role als auch import_role ermöglichen es Ihnen, eine Rolle innerhalb des tasks-Abschnitts aufzurufen, direkt zwischen Ihren anderen Schritten.
tasks:
- import_role:
name: nginximport_role ist statisch
import_role wird beim Parsen des Playbooks verarbeitet, bevor die Ausführung beginnt. Seine Tasks werden frühzeitig eingefügt und können daher nicht von Laufzeitdaten abhängen.
include_role ist dynamisch
include_role wird während der Ausführung verarbeitet, sobald diese Task erreicht wird. Es kann auf Fakten und registrierte Ergebnisse reagieren.
tasks:
- include_role:
name: backup
when: do_backupEine Rolle in einer Schleife ausführen
Da include_role dynamisch ausgeführt wird, können Sie es in eine loop-Schleife setzen und dieselbe Rolle bei jedem Durchlauf mit anderen Variablen anwenden.
- include_role:
name: deploy_app
loop: "{{ app_list }}"import_role kann keine Schleife verwenden
Da import_role zur Parse-Zeit aufgelöst wird, unterstützt es loop nicht. Verwenden Sie include_role, wenn Sie eine Rolle wiederholt ausführen müssen.
So verhält sich when unterschiedlich
Ein when bei import_role überträgt die Bedingung auf jede darin enthaltene Task. Ein when bei include_role steuert die gesamte Rolle als eine Einheit.
Variablen in beiden Varianten übergeben
Beide Varianten akzeptieren vars, um die Rolle zu parametrisieren, genau wie die roles-Liste. Die Werte werden direkt an die eingebundene Rolle weitergegeben.
- include_role:
name: web
vars:
http_port: 8080Tags sowie statisch und dynamisch
Bei import_role sind Tags der importierten Tasks für --list-tags sichtbar. Bei include_role müssen Sie Tags auf den Include selbst anwenden.
Das richtige Werkzeug wählen
Verwenden Sie import_role für eine vorhersehbare Struktur, die immer ausgeführt wird. Verwenden Sie include_role, wenn die Rolle bedingt oder in einer Schleife ausgeführt werden muss.
Dasselbe Muster auf zwei Ebenen
Ansible bietet dieselbe Trennung zwischen statisch und dynamisch auch für Task-Dateien: import_tasks und include_tasks entsprechen diesen Rollen-Schlüsselwörtern genau.
Kurzer Check
Rufen Sie sich in Erinnerung, welches Schlüsselwort eine Rolle innerhalb einer Schleife anwenden kann.
Zusammenfassung
Verwenden Sie import_role für statische Strukturen zur Parse-Zeit und include_role für dynamische Aufrufe zur Laufzeit mit Schleifen und Bedingungen. 🔁
Häufig gestellte Fragen
Ist die Lektion „include_role und import_role zur Laufzeit“ kostenlos?
Ja — der vollständige Text von „include_role und import_role zur Laufzeit“ 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 „include_role und import_role zur Laufzeit“?
Rufen Sie Rollen während eines Plays dynamisch auf. 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 „include_role und import_role zur Laufzeit“?
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