Architektur: Ansible
Stand: 15. Juli 2026
Diese Architekturreferenz erklärt Ansible als agentloses, inventorybasiertes Automatisierungsmodell. Sie trennt Control Node, Managed Nodes, Inventory, Playbooks, Module, Plugins, Rollen, Collections, Vault, Runner, AWX und Execution Environments.
1. Ziel und Abgrenzung
Vertiefung und Abgabebeispiel zu Ziel und Abgrenzung
Eine vollständige Bearbeitung von Ziel und Abgrenzung besteht aus einem technischen Artefakt und einer kurzen fachlichen Einordnung. Das Artefakt kann ein Inventory, ein Playbook, eine Rolle, ein Template, eine Vault-Datei mit Dummy-Werten, eine CI-Konfiguration oder eine Evidence-Datei sein. Die Einordnung erklärt, warum dieser Weg gewählt wurde und welche Alternative bewusst nicht verwendet wurde.
| Abgabeteil | Inhalt | Mindestqualität |
|---|---|---|
| Zielbeschreibung | Was soll nach dem Lauf gelten? | messbar und ohne implizite Annahmen |
| Scope-Nachweis | Welche Hosts sind betroffen? | Ausgabe von --list-hosts oder Inventory-Graph |
| Umsetzung | Welche Dateien wurden geändert? | kleine, reviewbare YAML-Dateien |
| Validierung | Wie wurde geprüft? | Syntaxcheck, Check Mode, Diff, echter Lauf, zweiter Lauf |
| Risikoentscheidung | Was kann schiefgehen? | Rechte, Secrets, externe Abhängigkeiten und Rollback betrachtet |
Minimalartefakte für Ziel und Abgrenzung
submission/
inventory/hosts.yml
playbooks/site.yml
evidence.md
cleanup.md
Für Rollen oder Collections wird die Struktur erweitert:
submission/
ansible.cfg
collections/requirements.yml
inventory/hosts.yml
roles/<role>/defaults/main.yml
roles/<role>/tasks/main.yml
roles/<role>/handlers/main.yml
playbooks/site.yml
evidence.md
Prüferwartung für Ziel und Abgrenzung
Eine prüfbare Lösung muss auch für Personen verständlich sein, die den Lauf nicht selbst ausgeführt haben. Deshalb reichen Screenshots oder unkommentierte Terminalausgaben nicht aus. Gute Evidence beschreibt Kontext, Kommando, relevante Ausgabe und Bewertung. Wenn ein Modul im Check Mode abweicht, wird diese Einschränkung ausdrücklich genannt.
Transfer in reale Teams
Im Teamkontext wird Ziel und Abgrenzung zusätzlich mit Code Review, Branch-Regeln, CI, Rollenownership, Release-Notizen und Betriebsfreigabe verbunden. Für produktionsnahe Nutzung werden außerdem Zuständigkeit, Wartungsfenster, Monitoring, Alarmierung und Rollback-Kriterien dokumentiert.
Praxisbezug zu Ziel und Abgrenzung
Dieser Abschnitt ist nicht als reine Begriffserklärung gedacht. Im Workshop wird Ziel und Abgrenzung immer an einem konkreten Ablauf überprüft: Inventory lesen, Zielhosts beweisen, Playbook prüfen, Änderung simulieren, Änderung ausführen, zweiten Lauf bewerten und Rückbau dokumentieren. Dadurch wird sichtbar, ob Ansible wirklich einen Zielzustand beschreibt oder nur zufällig einen Befehl erfolgreich ausgeführt hat.
| Prüffrage | Erwartete Antwort |
|---|---|
| Welche Hosts sind betroffen? | Pattern, Gruppe, --limit und Inventory-Ausgabe sind dokumentiert. |
| Welche Datenquellen wirken? | group_vars, host_vars, Defaults, Extra Vars und Facts sind bekannt. |
| Welche Rechte werden benötigt? | become ist tasknah und fachlich begründet. |
| Wie wird Erfolg bewiesen? | Syntaxcheck, Check Mode, Diff, Play Recap und zweiter Lauf liegen vor. |
Beispielablauf für Ziel und Abgrenzung
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --list-hosts
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
Der Ablauf ist bewusst vollständig. In echten Teams werden einzelne Schritte oft automatisiert, aber nicht übersprungen. CI kann Syntaxcheck und Linting übernehmen; die fachliche Bewertung von Scope, Rechten, Secret-Flows und Rollout-Risiko bleibt eine Review-Aufgabe.
Review-Kriterien für Ziel und Abgrenzung
- Inventory und Pattern sind enger als
all, sofern kein guter Grund dokumentiert ist. - Module aus
ansible.builtinoder klar geprüften Collections werden bevorzugt. - Shell- oder Command-Tasks haben
changed_when,failed_whenoder eine Begründung. - Variablen sind nachvollziehbar platziert und überschreiben sich nicht überraschend.
- Secrets erscheinen nicht in Klartext, Diff-Ausgaben, Debug-Tasks oder CI-Logs.
- Das Playbook kann mehrfach laufen, ohne unnötige Änderungen zu melden.
- Rückbau, Fix-forward oder kontrolliertes Belassen des Zielzustands ist dokumentiert.
Typische Fehler bei Ziel und Abgrenzung
| Fehlerbild | Ursache | Diagnose |
|---|---|---|
| falsche Hosts getroffen | Pattern oder Inventory falsch verstanden | --list-hosts, ansible-inventory --host |
unreachable |
SSH, Benutzer, Python oder Netzwerkproblem | -vvvv, SSH-Test, Inventory-Variablen |
| unerwartete Änderung | Modul nicht idempotent oder falsche Datenquelle | zweiter Lauf, Diff, Variablenprüfung |
| Secret-Leak | Debug, Diff oder Log nicht begrenzt | no_log, Vault, CI-Artefakte prüfen |
| Handler läuft nicht | kein changed oder falscher Handlername |
Task-Ergebnis und Handler-Name prüfen |
Betriebsnotiz für Ziel und Abgrenzung
Für produktionsnahe Nutzung muss aus dem Lab ein Runbook entstehen. Dieses Runbook nennt Zielsysteme, Verantwortliche, Vorbedingungen, Stop-Kriterien, erwartete Dauer, Validierung, Monitoring und Rückbau. Ohne diese Angaben bleibt ein Playbook technisch ausführbar, aber nicht betriebsreif.
Ziel und Abgrenzung ist ein praktischer Baustein des Ansible-Workshops. Entscheidend ist, dass der gewünschte Zustand nicht nur beschrieben, sondern vor und nach der Ausführung überprüft wird. Ein guter Ansible-Arbeitsablauf beantwortet immer vier Fragen: Welche Hosts sind betroffen, welche Änderung wird durchgeführt, welche Rechte werden dafür benötigt und wie wird der Erfolg gemessen?
| Aspekt | Bedeutung im Workshop | Prüfpunkt |
|---|---|---|
| Scope | Inventory, Pattern, --limit, Tags und Umgebung bestimmen die Zielsysteme. |
ansible-inventory --graph, ansible-playbook --list-hosts |
| Zustand | Module sollen Zielzustände modellieren und wiederholbare Ergebnisse liefern. | zweiter Lauf ohne unnötige Änderungen |
| Rechte | become wird tasknah und begründet eingesetzt. |
kein globales Privileg ohne Review |
| Evidence | Ausgaben, Diffs und Zusammenfassung werden dokumentiert. | Play Recap, Diff, Evidence-Datei |
Typische Kommandos:
ansible --version
ansible-config dump --only-changed
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
Für Reviews gilt: Ein Playbook ist erst dann gut genug, wenn es seine Zielgruppe beweist, seine Datenquellen offenlegt, sensible Werte schützt, Fehlerpfade beschreibt und nach einem zweiten Lauf stabil bleibt. Wenn ein Modul Check Mode oder Diff Mode nicht vollständig unterstützt, muss die Einschränkung im Runbook stehen.
Typische Fehler in diesem Bereich sind zu breite Patterns wie all, unklare Variablenquellen, Shell-Workarounds ohne Idempotenz, Secrets in Debug-Ausgaben, fehlende Rollback-Notiz und fehlende Trennung zwischen Lab- und Produktionsinventory.
2. Architekturüberblick
Vertiefung und Abgabebeispiel zu Architekturüberblick
Eine vollständige Bearbeitung von Architekturüberblick besteht aus einem technischen Artefakt und einer kurzen fachlichen Einordnung. Das Artefakt kann ein Inventory, ein Playbook, eine Rolle, ein Template, eine Vault-Datei mit Dummy-Werten, eine CI-Konfiguration oder eine Evidence-Datei sein. Die Einordnung erklärt, warum dieser Weg gewählt wurde und welche Alternative bewusst nicht verwendet wurde.
| Abgabeteil | Inhalt | Mindestqualität |
|---|---|---|
| Zielbeschreibung | Was soll nach dem Lauf gelten? | messbar und ohne implizite Annahmen |
| Scope-Nachweis | Welche Hosts sind betroffen? | Ausgabe von --list-hosts oder Inventory-Graph |
| Umsetzung | Welche Dateien wurden geändert? | kleine, reviewbare YAML-Dateien |
| Validierung | Wie wurde geprüft? | Syntaxcheck, Check Mode, Diff, echter Lauf, zweiter Lauf |
| Risikoentscheidung | Was kann schiefgehen? | Rechte, Secrets, externe Abhängigkeiten und Rollback betrachtet |
Minimalartefakte für Architekturüberblick
submission/
inventory/hosts.yml
playbooks/site.yml
evidence.md
cleanup.md
Für Rollen oder Collections wird die Struktur erweitert:
submission/
ansible.cfg
collections/requirements.yml
inventory/hosts.yml
roles/<role>/defaults/main.yml
roles/<role>/tasks/main.yml
roles/<role>/handlers/main.yml
playbooks/site.yml
evidence.md
Prüferwartung für Architekturüberblick
Eine prüfbare Lösung muss auch für Personen verständlich sein, die den Lauf nicht selbst ausgeführt haben. Deshalb reichen Screenshots oder unkommentierte Terminalausgaben nicht aus. Gute Evidence beschreibt Kontext, Kommando, relevante Ausgabe und Bewertung. Wenn ein Modul im Check Mode abweicht, wird diese Einschränkung ausdrücklich genannt.
Transfer in reale Teams
Im Teamkontext wird Architekturüberblick zusätzlich mit Code Review, Branch-Regeln, CI, Rollenownership, Release-Notizen und Betriebsfreigabe verbunden. Für produktionsnahe Nutzung werden außerdem Zuständigkeit, Wartungsfenster, Monitoring, Alarmierung und Rollback-Kriterien dokumentiert.
Praxisbezug zu Architekturüberblick
Dieser Abschnitt ist nicht als reine Begriffserklärung gedacht. Im Workshop wird Architekturüberblick immer an einem konkreten Ablauf überprüft: Inventory lesen, Zielhosts beweisen, Playbook prüfen, Änderung simulieren, Änderung ausführen, zweiten Lauf bewerten und Rückbau dokumentieren. Dadurch wird sichtbar, ob Ansible wirklich einen Zielzustand beschreibt oder nur zufällig einen Befehl erfolgreich ausgeführt hat.
| Prüffrage | Erwartete Antwort |
|---|---|
| Welche Hosts sind betroffen? | Pattern, Gruppe, --limit und Inventory-Ausgabe sind dokumentiert. |
| Welche Datenquellen wirken? | group_vars, host_vars, Defaults, Extra Vars und Facts sind bekannt. |
| Welche Rechte werden benötigt? | become ist tasknah und fachlich begründet. |
| Wie wird Erfolg bewiesen? | Syntaxcheck, Check Mode, Diff, Play Recap und zweiter Lauf liegen vor. |
Beispielablauf für Architekturüberblick
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --list-hosts
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
Der Ablauf ist bewusst vollständig. In echten Teams werden einzelne Schritte oft automatisiert, aber nicht übersprungen. CI kann Syntaxcheck und Linting übernehmen; die fachliche Bewertung von Scope, Rechten, Secret-Flows und Rollout-Risiko bleibt eine Review-Aufgabe.
Review-Kriterien für Architekturüberblick
- Inventory und Pattern sind enger als
all, sofern kein guter Grund dokumentiert ist. - Module aus
ansible.builtinoder klar geprüften Collections werden bevorzugt. - Shell- oder Command-Tasks haben
changed_when,failed_whenoder eine Begründung. - Variablen sind nachvollziehbar platziert und überschreiben sich nicht überraschend.
- Secrets erscheinen nicht in Klartext, Diff-Ausgaben, Debug-Tasks oder CI-Logs.
- Das Playbook kann mehrfach laufen, ohne unnötige Änderungen zu melden.
- Rückbau, Fix-forward oder kontrolliertes Belassen des Zielzustands ist dokumentiert.
Typische Fehler bei Architekturüberblick
| Fehlerbild | Ursache | Diagnose |
|---|---|---|
| falsche Hosts getroffen | Pattern oder Inventory falsch verstanden | --list-hosts, ansible-inventory --host |
unreachable |
SSH, Benutzer, Python oder Netzwerkproblem | -vvvv, SSH-Test, Inventory-Variablen |
| unerwartete Änderung | Modul nicht idempotent oder falsche Datenquelle | zweiter Lauf, Diff, Variablenprüfung |
| Secret-Leak | Debug, Diff oder Log nicht begrenzt | no_log, Vault, CI-Artefakte prüfen |
| Handler läuft nicht | kein changed oder falscher Handlername |
Task-Ergebnis und Handler-Name prüfen |
Betriebsnotiz für Architekturüberblick
Für produktionsnahe Nutzung muss aus dem Lab ein Runbook entstehen. Dieses Runbook nennt Zielsysteme, Verantwortliche, Vorbedingungen, Stop-Kriterien, erwartete Dauer, Validierung, Monitoring und Rückbau. Ohne diese Angaben bleibt ein Playbook technisch ausführbar, aber nicht betriebsreif.
Architekturüberblick ist ein praktischer Baustein des Ansible-Workshops. Entscheidend ist, dass der gewünschte Zustand nicht nur beschrieben, sondern vor und nach der Ausführung überprüft wird. Ein guter Ansible-Arbeitsablauf beantwortet immer vier Fragen: Welche Hosts sind betroffen, welche Änderung wird durchgeführt, welche Rechte werden dafür benötigt und wie wird der Erfolg gemessen?
| Aspekt | Bedeutung im Workshop | Prüfpunkt |
|---|---|---|
| Scope | Inventory, Pattern, --limit, Tags und Umgebung bestimmen die Zielsysteme. |
ansible-inventory --graph, ansible-playbook --list-hosts |
| Zustand | Module sollen Zielzustände modellieren und wiederholbare Ergebnisse liefern. | zweiter Lauf ohne unnötige Änderungen |
| Rechte | become wird tasknah und begründet eingesetzt. |
kein globales Privileg ohne Review |
| Evidence | Ausgaben, Diffs und Zusammenfassung werden dokumentiert. | Play Recap, Diff, Evidence-Datei |
Typische Kommandos:
ansible --version
ansible-config dump --only-changed
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
Für Reviews gilt: Ein Playbook ist erst dann gut genug, wenn es seine Zielgruppe beweist, seine Datenquellen offenlegt, sensible Werte schützt, Fehlerpfade beschreibt und nach einem zweiten Lauf stabil bleibt. Wenn ein Modul Check Mode oder Diff Mode nicht vollständig unterstützt, muss die Einschränkung im Runbook stehen.
Typische Fehler in diesem Bereich sind zu breite Patterns wie all, unklare Variablenquellen, Shell-Workarounds ohne Idempotenz, Secrets in Debug-Ausgaben, fehlende Rollback-Notiz und fehlende Trennung zwischen Lab- und Produktionsinventory.
3. Control Node
Vertiefung und Abgabebeispiel zu Control Node
Eine vollständige Bearbeitung von Control Node besteht aus einem technischen Artefakt und einer kurzen fachlichen Einordnung. Das Artefakt kann ein Inventory, ein Playbook, eine Rolle, ein Template, eine Vault-Datei mit Dummy-Werten, eine CI-Konfiguration oder eine Evidence-Datei sein. Die Einordnung erklärt, warum dieser Weg gewählt wurde und welche Alternative bewusst nicht verwendet wurde.
| Abgabeteil | Inhalt | Mindestqualität |
|---|---|---|
| Zielbeschreibung | Was soll nach dem Lauf gelten? | messbar und ohne implizite Annahmen |
| Scope-Nachweis | Welche Hosts sind betroffen? | Ausgabe von --list-hosts oder Inventory-Graph |
| Umsetzung | Welche Dateien wurden geändert? | kleine, reviewbare YAML-Dateien |
| Validierung | Wie wurde geprüft? | Syntaxcheck, Check Mode, Diff, echter Lauf, zweiter Lauf |
| Risikoentscheidung | Was kann schiefgehen? | Rechte, Secrets, externe Abhängigkeiten und Rollback betrachtet |
Minimalartefakte für Control Node
submission/
inventory/hosts.yml
playbooks/site.yml
evidence.md
cleanup.md
Für Rollen oder Collections wird die Struktur erweitert:
submission/
ansible.cfg
collections/requirements.yml
inventory/hosts.yml
roles/<role>/defaults/main.yml
roles/<role>/tasks/main.yml
roles/<role>/handlers/main.yml
playbooks/site.yml
evidence.md
Prüferwartung für Control Node
Eine prüfbare Lösung muss auch für Personen verständlich sein, die den Lauf nicht selbst ausgeführt haben. Deshalb reichen Screenshots oder unkommentierte Terminalausgaben nicht aus. Gute Evidence beschreibt Kontext, Kommando, relevante Ausgabe und Bewertung. Wenn ein Modul im Check Mode abweicht, wird diese Einschränkung ausdrücklich genannt.
Transfer in reale Teams
Im Teamkontext wird Control Node zusätzlich mit Code Review, Branch-Regeln, CI, Rollenownership, Release-Notizen und Betriebsfreigabe verbunden. Für produktionsnahe Nutzung werden außerdem Zuständigkeit, Wartungsfenster, Monitoring, Alarmierung und Rollback-Kriterien dokumentiert.
Praxisbezug zu Control Node
Dieser Abschnitt ist nicht als reine Begriffserklärung gedacht. Im Workshop wird Control Node immer an einem konkreten Ablauf überprüft: Inventory lesen, Zielhosts beweisen, Playbook prüfen, Änderung simulieren, Änderung ausführen, zweiten Lauf bewerten und Rückbau dokumentieren. Dadurch wird sichtbar, ob Ansible wirklich einen Zielzustand beschreibt oder nur zufällig einen Befehl erfolgreich ausgeführt hat.
| Prüffrage | Erwartete Antwort |
|---|---|
| Welche Hosts sind betroffen? | Pattern, Gruppe, --limit und Inventory-Ausgabe sind dokumentiert. |
| Welche Datenquellen wirken? | group_vars, host_vars, Defaults, Extra Vars und Facts sind bekannt. |
| Welche Rechte werden benötigt? | become ist tasknah und fachlich begründet. |
| Wie wird Erfolg bewiesen? | Syntaxcheck, Check Mode, Diff, Play Recap und zweiter Lauf liegen vor. |
Beispielablauf für Control Node
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --list-hosts
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
Der Ablauf ist bewusst vollständig. In echten Teams werden einzelne Schritte oft automatisiert, aber nicht übersprungen. CI kann Syntaxcheck und Linting übernehmen; die fachliche Bewertung von Scope, Rechten, Secret-Flows und Rollout-Risiko bleibt eine Review-Aufgabe.
Review-Kriterien für Control Node
- Inventory und Pattern sind enger als
all, sofern kein guter Grund dokumentiert ist. - Module aus
ansible.builtinoder klar geprüften Collections werden bevorzugt. - Shell- oder Command-Tasks haben
changed_when,failed_whenoder eine Begründung. - Variablen sind nachvollziehbar platziert und überschreiben sich nicht überraschend.
- Secrets erscheinen nicht in Klartext, Diff-Ausgaben, Debug-Tasks oder CI-Logs.
- Das Playbook kann mehrfach laufen, ohne unnötige Änderungen zu melden.
- Rückbau, Fix-forward oder kontrolliertes Belassen des Zielzustands ist dokumentiert.
Typische Fehler bei Control Node
| Fehlerbild | Ursache | Diagnose |
|---|---|---|
| falsche Hosts getroffen | Pattern oder Inventory falsch verstanden | --list-hosts, ansible-inventory --host |
unreachable |
SSH, Benutzer, Python oder Netzwerkproblem | -vvvv, SSH-Test, Inventory-Variablen |
| unerwartete Änderung | Modul nicht idempotent oder falsche Datenquelle | zweiter Lauf, Diff, Variablenprüfung |
| Secret-Leak | Debug, Diff oder Log nicht begrenzt | no_log, Vault, CI-Artefakte prüfen |
| Handler läuft nicht | kein changed oder falscher Handlername |
Task-Ergebnis und Handler-Name prüfen |
Betriebsnotiz für Control Node
Für produktionsnahe Nutzung muss aus dem Lab ein Runbook entstehen. Dieses Runbook nennt Zielsysteme, Verantwortliche, Vorbedingungen, Stop-Kriterien, erwartete Dauer, Validierung, Monitoring und Rückbau. Ohne diese Angaben bleibt ein Playbook technisch ausführbar, aber nicht betriebsreif.
Control Node ist ein praktischer Baustein des Ansible-Workshops. Entscheidend ist, dass der gewünschte Zustand nicht nur beschrieben, sondern vor und nach der Ausführung überprüft wird. Ein guter Ansible-Arbeitsablauf beantwortet immer vier Fragen: Welche Hosts sind betroffen, welche Änderung wird durchgeführt, welche Rechte werden dafür benötigt und wie wird der Erfolg gemessen?
| Aspekt | Bedeutung im Workshop | Prüfpunkt |
|---|---|---|
| Scope | Inventory, Pattern, --limit, Tags und Umgebung bestimmen die Zielsysteme. |
ansible-inventory --graph, ansible-playbook --list-hosts |
| Zustand | Module sollen Zielzustände modellieren und wiederholbare Ergebnisse liefern. | zweiter Lauf ohne unnötige Änderungen |
| Rechte | become wird tasknah und begründet eingesetzt. |
kein globales Privileg ohne Review |
| Evidence | Ausgaben, Diffs und Zusammenfassung werden dokumentiert. | Play Recap, Diff, Evidence-Datei |
Typische Kommandos:
ansible --version
ansible-config dump --only-changed
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
Für Reviews gilt: Ein Playbook ist erst dann gut genug, wenn es seine Zielgruppe beweist, seine Datenquellen offenlegt, sensible Werte schützt, Fehlerpfade beschreibt und nach einem zweiten Lauf stabil bleibt. Wenn ein Modul Check Mode oder Diff Mode nicht vollständig unterstützt, muss die Einschränkung im Runbook stehen.
Typische Fehler in diesem Bereich sind zu breite Patterns wie all, unklare Variablenquellen, Shell-Workarounds ohne Idempotenz, Secrets in Debug-Ausgaben, fehlende Rollback-Notiz und fehlende Trennung zwischen Lab- und Produktionsinventory.
4. Managed Nodes
Vertiefung und Abgabebeispiel zu Managed Nodes
Eine vollständige Bearbeitung von Managed Nodes besteht aus einem technischen Artefakt und einer kurzen fachlichen Einordnung. Das Artefakt kann ein Inventory, ein Playbook, eine Rolle, ein Template, eine Vault-Datei mit Dummy-Werten, eine CI-Konfiguration oder eine Evidence-Datei sein. Die Einordnung erklärt, warum dieser Weg gewählt wurde und welche Alternative bewusst nicht verwendet wurde.
| Abgabeteil | Inhalt | Mindestqualität |
|---|---|---|
| Zielbeschreibung | Was soll nach dem Lauf gelten? | messbar und ohne implizite Annahmen |
| Scope-Nachweis | Welche Hosts sind betroffen? | Ausgabe von --list-hosts oder Inventory-Graph |
| Umsetzung | Welche Dateien wurden geändert? | kleine, reviewbare YAML-Dateien |
| Validierung | Wie wurde geprüft? | Syntaxcheck, Check Mode, Diff, echter Lauf, zweiter Lauf |
| Risikoentscheidung | Was kann schiefgehen? | Rechte, Secrets, externe Abhängigkeiten und Rollback betrachtet |
Minimalartefakte für Managed Nodes
submission/
inventory/hosts.yml
playbooks/site.yml
evidence.md
cleanup.md
Für Rollen oder Collections wird die Struktur erweitert:
submission/
ansible.cfg
collections/requirements.yml
inventory/hosts.yml
roles/<role>/defaults/main.yml
roles/<role>/tasks/main.yml
roles/<role>/handlers/main.yml
playbooks/site.yml
evidence.md
Prüferwartung für Managed Nodes
Eine prüfbare Lösung muss auch für Personen verständlich sein, die den Lauf nicht selbst ausgeführt haben. Deshalb reichen Screenshots oder unkommentierte Terminalausgaben nicht aus. Gute Evidence beschreibt Kontext, Kommando, relevante Ausgabe und Bewertung. Wenn ein Modul im Check Mode abweicht, wird diese Einschränkung ausdrücklich genannt.
Transfer in reale Teams
Im Teamkontext wird Managed Nodes zusätzlich mit Code Review, Branch-Regeln, CI, Rollenownership, Release-Notizen und Betriebsfreigabe verbunden. Für produktionsnahe Nutzung werden außerdem Zuständigkeit, Wartungsfenster, Monitoring, Alarmierung und Rollback-Kriterien dokumentiert.
Praxisbezug zu Managed Nodes
Dieser Abschnitt ist nicht als reine Begriffserklärung gedacht. Im Workshop wird Managed Nodes immer an einem konkreten Ablauf überprüft: Inventory lesen, Zielhosts beweisen, Playbook prüfen, Änderung simulieren, Änderung ausführen, zweiten Lauf bewerten und Rückbau dokumentieren. Dadurch wird sichtbar, ob Ansible wirklich einen Zielzustand beschreibt oder nur zufällig einen Befehl erfolgreich ausgeführt hat.
| Prüffrage | Erwartete Antwort |
|---|---|
| Welche Hosts sind betroffen? | Pattern, Gruppe, --limit und Inventory-Ausgabe sind dokumentiert. |
| Welche Datenquellen wirken? | group_vars, host_vars, Defaults, Extra Vars und Facts sind bekannt. |
| Welche Rechte werden benötigt? | become ist tasknah und fachlich begründet. |
| Wie wird Erfolg bewiesen? | Syntaxcheck, Check Mode, Diff, Play Recap und zweiter Lauf liegen vor. |
Beispielablauf für Managed Nodes
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --list-hosts
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
Der Ablauf ist bewusst vollständig. In echten Teams werden einzelne Schritte oft automatisiert, aber nicht übersprungen. CI kann Syntaxcheck und Linting übernehmen; die fachliche Bewertung von Scope, Rechten, Secret-Flows und Rollout-Risiko bleibt eine Review-Aufgabe.
Review-Kriterien für Managed Nodes
- Inventory und Pattern sind enger als
all, sofern kein guter Grund dokumentiert ist. - Module aus
ansible.builtinoder klar geprüften Collections werden bevorzugt. - Shell- oder Command-Tasks haben
changed_when,failed_whenoder eine Begründung. - Variablen sind nachvollziehbar platziert und überschreiben sich nicht überraschend.
- Secrets erscheinen nicht in Klartext, Diff-Ausgaben, Debug-Tasks oder CI-Logs.
- Das Playbook kann mehrfach laufen, ohne unnötige Änderungen zu melden.
- Rückbau, Fix-forward oder kontrolliertes Belassen des Zielzustands ist dokumentiert.
Typische Fehler bei Managed Nodes
| Fehlerbild | Ursache | Diagnose |
|---|---|---|
| falsche Hosts getroffen | Pattern oder Inventory falsch verstanden | --list-hosts, ansible-inventory --host |
unreachable |
SSH, Benutzer, Python oder Netzwerkproblem | -vvvv, SSH-Test, Inventory-Variablen |
| unerwartete Änderung | Modul nicht idempotent oder falsche Datenquelle | zweiter Lauf, Diff, Variablenprüfung |
| Secret-Leak | Debug, Diff oder Log nicht begrenzt | no_log, Vault, CI-Artefakte prüfen |
| Handler läuft nicht | kein changed oder falscher Handlername |
Task-Ergebnis und Handler-Name prüfen |
Betriebsnotiz für Managed Nodes
Für produktionsnahe Nutzung muss aus dem Lab ein Runbook entstehen. Dieses Runbook nennt Zielsysteme, Verantwortliche, Vorbedingungen, Stop-Kriterien, erwartete Dauer, Validierung, Monitoring und Rückbau. Ohne diese Angaben bleibt ein Playbook technisch ausführbar, aber nicht betriebsreif.
Managed Nodes ist ein praktischer Baustein des Ansible-Workshops. Entscheidend ist, dass der gewünschte Zustand nicht nur beschrieben, sondern vor und nach der Ausführung überprüft wird. Ein guter Ansible-Arbeitsablauf beantwortet immer vier Fragen: Welche Hosts sind betroffen, welche Änderung wird durchgeführt, welche Rechte werden dafür benötigt und wie wird der Erfolg gemessen?
| Aspekt | Bedeutung im Workshop | Prüfpunkt |
|---|---|---|
| Scope | Inventory, Pattern, --limit, Tags und Umgebung bestimmen die Zielsysteme. |
ansible-inventory --graph, ansible-playbook --list-hosts |
| Zustand | Module sollen Zielzustände modellieren und wiederholbare Ergebnisse liefern. | zweiter Lauf ohne unnötige Änderungen |
| Rechte | become wird tasknah und begründet eingesetzt. |
kein globales Privileg ohne Review |
| Evidence | Ausgaben, Diffs und Zusammenfassung werden dokumentiert. | Play Recap, Diff, Evidence-Datei |
Typische Kommandos:
ansible --version
ansible-config dump --only-changed
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
Für Reviews gilt: Ein Playbook ist erst dann gut genug, wenn es seine Zielgruppe beweist, seine Datenquellen offenlegt, sensible Werte schützt, Fehlerpfade beschreibt und nach einem zweiten Lauf stabil bleibt. Wenn ein Modul Check Mode oder Diff Mode nicht vollständig unterstützt, muss die Einschränkung im Runbook stehen.
Typische Fehler in diesem Bereich sind zu breite Patterns wie all, unklare Variablenquellen, Shell-Workarounds ohne Idempotenz, Secrets in Debug-Ausgaben, fehlende Rollback-Notiz und fehlende Trennung zwischen Lab- und Produktionsinventory.
5. Inventory und Zielauswahl
Vertiefung und Abgabebeispiel zu Inventory und Zielauswahl
Eine vollständige Bearbeitung von Inventory und Zielauswahl besteht aus einem technischen Artefakt und einer kurzen fachlichen Einordnung. Das Artefakt kann ein Inventory, ein Playbook, eine Rolle, ein Template, eine Vault-Datei mit Dummy-Werten, eine CI-Konfiguration oder eine Evidence-Datei sein. Die Einordnung erklärt, warum dieser Weg gewählt wurde und welche Alternative bewusst nicht verwendet wurde.
| Abgabeteil | Inhalt | Mindestqualität |
|---|---|---|
| Zielbeschreibung | Was soll nach dem Lauf gelten? | messbar und ohne implizite Annahmen |
| Scope-Nachweis | Welche Hosts sind betroffen? | Ausgabe von --list-hosts oder Inventory-Graph |
| Umsetzung | Welche Dateien wurden geändert? | kleine, reviewbare YAML-Dateien |
| Validierung | Wie wurde geprüft? | Syntaxcheck, Check Mode, Diff, echter Lauf, zweiter Lauf |
| Risikoentscheidung | Was kann schiefgehen? | Rechte, Secrets, externe Abhängigkeiten und Rollback betrachtet |
Minimalartefakte für Inventory und Zielauswahl
submission/
inventory/hosts.yml
playbooks/site.yml
evidence.md
cleanup.md
Für Rollen oder Collections wird die Struktur erweitert:
submission/
ansible.cfg
collections/requirements.yml
inventory/hosts.yml
roles/<role>/defaults/main.yml
roles/<role>/tasks/main.yml
roles/<role>/handlers/main.yml
playbooks/site.yml
evidence.md
Prüferwartung für Inventory und Zielauswahl
Eine prüfbare Lösung muss auch für Personen verständlich sein, die den Lauf nicht selbst ausgeführt haben. Deshalb reichen Screenshots oder unkommentierte Terminalausgaben nicht aus. Gute Evidence beschreibt Kontext, Kommando, relevante Ausgabe und Bewertung. Wenn ein Modul im Check Mode abweicht, wird diese Einschränkung ausdrücklich genannt.
Transfer in reale Teams
Im Teamkontext wird Inventory und Zielauswahl zusätzlich mit Code Review, Branch-Regeln, CI, Rollenownership, Release-Notizen und Betriebsfreigabe verbunden. Für produktionsnahe Nutzung werden außerdem Zuständigkeit, Wartungsfenster, Monitoring, Alarmierung und Rollback-Kriterien dokumentiert.
Praxisbezug zu Inventory und Zielauswahl
Dieser Abschnitt ist nicht als reine Begriffserklärung gedacht. Im Workshop wird Inventory und Zielauswahl immer an einem konkreten Ablauf überprüft: Inventory lesen, Zielhosts beweisen, Playbook prüfen, Änderung simulieren, Änderung ausführen, zweiten Lauf bewerten und Rückbau dokumentieren. Dadurch wird sichtbar, ob Ansible wirklich einen Zielzustand beschreibt oder nur zufällig einen Befehl erfolgreich ausgeführt hat.
| Prüffrage | Erwartete Antwort |
|---|---|
| Welche Hosts sind betroffen? | Pattern, Gruppe, --limit und Inventory-Ausgabe sind dokumentiert. |
| Welche Datenquellen wirken? | group_vars, host_vars, Defaults, Extra Vars und Facts sind bekannt. |
| Welche Rechte werden benötigt? | become ist tasknah und fachlich begründet. |
| Wie wird Erfolg bewiesen? | Syntaxcheck, Check Mode, Diff, Play Recap und zweiter Lauf liegen vor. |
Beispielablauf für Inventory und Zielauswahl
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --list-hosts
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
Der Ablauf ist bewusst vollständig. In echten Teams werden einzelne Schritte oft automatisiert, aber nicht übersprungen. CI kann Syntaxcheck und Linting übernehmen; die fachliche Bewertung von Scope, Rechten, Secret-Flows und Rollout-Risiko bleibt eine Review-Aufgabe.
Review-Kriterien für Inventory und Zielauswahl
- Inventory und Pattern sind enger als
all, sofern kein guter Grund dokumentiert ist. - Module aus
ansible.builtinoder klar geprüften Collections werden bevorzugt. - Shell- oder Command-Tasks haben
changed_when,failed_whenoder eine Begründung. - Variablen sind nachvollziehbar platziert und überschreiben sich nicht überraschend.
- Secrets erscheinen nicht in Klartext, Diff-Ausgaben, Debug-Tasks oder CI-Logs.
- Das Playbook kann mehrfach laufen, ohne unnötige Änderungen zu melden.
- Rückbau, Fix-forward oder kontrolliertes Belassen des Zielzustands ist dokumentiert.
Typische Fehler bei Inventory und Zielauswahl
| Fehlerbild | Ursache | Diagnose |
|---|---|---|
| falsche Hosts getroffen | Pattern oder Inventory falsch verstanden | --list-hosts, ansible-inventory --host |
unreachable |
SSH, Benutzer, Python oder Netzwerkproblem | -vvvv, SSH-Test, Inventory-Variablen |
| unerwartete Änderung | Modul nicht idempotent oder falsche Datenquelle | zweiter Lauf, Diff, Variablenprüfung |
| Secret-Leak | Debug, Diff oder Log nicht begrenzt | no_log, Vault, CI-Artefakte prüfen |
| Handler läuft nicht | kein changed oder falscher Handlername |
Task-Ergebnis und Handler-Name prüfen |
Betriebsnotiz für Inventory und Zielauswahl
Für produktionsnahe Nutzung muss aus dem Lab ein Runbook entstehen. Dieses Runbook nennt Zielsysteme, Verantwortliche, Vorbedingungen, Stop-Kriterien, erwartete Dauer, Validierung, Monitoring und Rückbau. Ohne diese Angaben bleibt ein Playbook technisch ausführbar, aber nicht betriebsreif.
Inventory und Zielauswahl ist ein praktischer Baustein des Ansible-Workshops. Entscheidend ist, dass der gewünschte Zustand nicht nur beschrieben, sondern vor und nach der Ausführung überprüft wird. Ein guter Ansible-Arbeitsablauf beantwortet immer vier Fragen: Welche Hosts sind betroffen, welche Änderung wird durchgeführt, welche Rechte werden dafür benötigt und wie wird der Erfolg gemessen?
| Aspekt | Bedeutung im Workshop | Prüfpunkt |
|---|---|---|
| Scope | Inventory, Pattern, --limit, Tags und Umgebung bestimmen die Zielsysteme. |
ansible-inventory --graph, ansible-playbook --list-hosts |
| Zustand | Module sollen Zielzustände modellieren und wiederholbare Ergebnisse liefern. | zweiter Lauf ohne unnötige Änderungen |
| Rechte | become wird tasknah und begründet eingesetzt. |
kein globales Privileg ohne Review |
| Evidence | Ausgaben, Diffs und Zusammenfassung werden dokumentiert. | Play Recap, Diff, Evidence-Datei |
Typische Kommandos:
ansible --version
ansible-config dump --only-changed
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
Für Reviews gilt: Ein Playbook ist erst dann gut genug, wenn es seine Zielgruppe beweist, seine Datenquellen offenlegt, sensible Werte schützt, Fehlerpfade beschreibt und nach einem zweiten Lauf stabil bleibt. Wenn ein Modul Check Mode oder Diff Mode nicht vollständig unterstützt, muss die Einschränkung im Runbook stehen.
Typische Fehler in diesem Bereich sind zu breite Patterns wie all, unklare Variablenquellen, Shell-Workarounds ohne Idempotenz, Secrets in Debug-Ausgaben, fehlende Rollback-Notiz und fehlende Trennung zwischen Lab- und Produktionsinventory.
6. Playbooks, Plays und Tasks
Vertiefung und Abgabebeispiel zu Playbooks, Plays und Tasks
Eine vollständige Bearbeitung von Playbooks, Plays und Tasks besteht aus einem technischen Artefakt und einer kurzen fachlichen Einordnung. Das Artefakt kann ein Inventory, ein Playbook, eine Rolle, ein Template, eine Vault-Datei mit Dummy-Werten, eine CI-Konfiguration oder eine Evidence-Datei sein. Die Einordnung erklärt, warum dieser Weg gewählt wurde und welche Alternative bewusst nicht verwendet wurde.
| Abgabeteil | Inhalt | Mindestqualität |
|---|---|---|
| Zielbeschreibung | Was soll nach dem Lauf gelten? | messbar und ohne implizite Annahmen |
| Scope-Nachweis | Welche Hosts sind betroffen? | Ausgabe von --list-hosts oder Inventory-Graph |
| Umsetzung | Welche Dateien wurden geändert? | kleine, reviewbare YAML-Dateien |
| Validierung | Wie wurde geprüft? | Syntaxcheck, Check Mode, Diff, echter Lauf, zweiter Lauf |
| Risikoentscheidung | Was kann schiefgehen? | Rechte, Secrets, externe Abhängigkeiten und Rollback betrachtet |
Minimalartefakte für Playbooks, Plays und Tasks
submission/
inventory/hosts.yml
playbooks/site.yml
evidence.md
cleanup.md
Für Rollen oder Collections wird die Struktur erweitert:
submission/
ansible.cfg
collections/requirements.yml
inventory/hosts.yml
roles/<role>/defaults/main.yml
roles/<role>/tasks/main.yml
roles/<role>/handlers/main.yml
playbooks/site.yml
evidence.md
Prüferwartung für Playbooks, Plays und Tasks
Eine prüfbare Lösung muss auch für Personen verständlich sein, die den Lauf nicht selbst ausgeführt haben. Deshalb reichen Screenshots oder unkommentierte Terminalausgaben nicht aus. Gute Evidence beschreibt Kontext, Kommando, relevante Ausgabe und Bewertung. Wenn ein Modul im Check Mode abweicht, wird diese Einschränkung ausdrücklich genannt.
Transfer in reale Teams
Im Teamkontext wird Playbooks, Plays und Tasks zusätzlich mit Code Review, Branch-Regeln, CI, Rollenownership, Release-Notizen und Betriebsfreigabe verbunden. Für produktionsnahe Nutzung werden außerdem Zuständigkeit, Wartungsfenster, Monitoring, Alarmierung und Rollback-Kriterien dokumentiert.
Praxisbezug zu Playbooks, Plays und Tasks
Dieser Abschnitt ist nicht als reine Begriffserklärung gedacht. Im Workshop wird Playbooks, Plays und Tasks immer an einem konkreten Ablauf überprüft: Inventory lesen, Zielhosts beweisen, Playbook prüfen, Änderung simulieren, Änderung ausführen, zweiten Lauf bewerten und Rückbau dokumentieren. Dadurch wird sichtbar, ob Ansible wirklich einen Zielzustand beschreibt oder nur zufällig einen Befehl erfolgreich ausgeführt hat.
| Prüffrage | Erwartete Antwort |
|---|---|
| Welche Hosts sind betroffen? | Pattern, Gruppe, --limit und Inventory-Ausgabe sind dokumentiert. |
| Welche Datenquellen wirken? | group_vars, host_vars, Defaults, Extra Vars und Facts sind bekannt. |
| Welche Rechte werden benötigt? | become ist tasknah und fachlich begründet. |
| Wie wird Erfolg bewiesen? | Syntaxcheck, Check Mode, Diff, Play Recap und zweiter Lauf liegen vor. |
Beispielablauf für Playbooks, Plays und Tasks
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --list-hosts
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
Der Ablauf ist bewusst vollständig. In echten Teams werden einzelne Schritte oft automatisiert, aber nicht übersprungen. CI kann Syntaxcheck und Linting übernehmen; die fachliche Bewertung von Scope, Rechten, Secret-Flows und Rollout-Risiko bleibt eine Review-Aufgabe.
Review-Kriterien für Playbooks, Plays und Tasks
- Inventory und Pattern sind enger als
all, sofern kein guter Grund dokumentiert ist. - Module aus
ansible.builtinoder klar geprüften Collections werden bevorzugt. - Shell- oder Command-Tasks haben
changed_when,failed_whenoder eine Begründung. - Variablen sind nachvollziehbar platziert und überschreiben sich nicht überraschend.
- Secrets erscheinen nicht in Klartext, Diff-Ausgaben, Debug-Tasks oder CI-Logs.
- Das Playbook kann mehrfach laufen, ohne unnötige Änderungen zu melden.
- Rückbau, Fix-forward oder kontrolliertes Belassen des Zielzustands ist dokumentiert.
Typische Fehler bei Playbooks, Plays und Tasks
| Fehlerbild | Ursache | Diagnose |
|---|---|---|
| falsche Hosts getroffen | Pattern oder Inventory falsch verstanden | --list-hosts, ansible-inventory --host |
unreachable |
SSH, Benutzer, Python oder Netzwerkproblem | -vvvv, SSH-Test, Inventory-Variablen |
| unerwartete Änderung | Modul nicht idempotent oder falsche Datenquelle | zweiter Lauf, Diff, Variablenprüfung |
| Secret-Leak | Debug, Diff oder Log nicht begrenzt | no_log, Vault, CI-Artefakte prüfen |
| Handler läuft nicht | kein changed oder falscher Handlername |
Task-Ergebnis und Handler-Name prüfen |
Betriebsnotiz für Playbooks, Plays und Tasks
Für produktionsnahe Nutzung muss aus dem Lab ein Runbook entstehen. Dieses Runbook nennt Zielsysteme, Verantwortliche, Vorbedingungen, Stop-Kriterien, erwartete Dauer, Validierung, Monitoring und Rückbau. Ohne diese Angaben bleibt ein Playbook technisch ausführbar, aber nicht betriebsreif.
Playbooks, Plays und Tasks ist ein praktischer Baustein des Ansible-Workshops. Entscheidend ist, dass der gewünschte Zustand nicht nur beschrieben, sondern vor und nach der Ausführung überprüft wird. Ein guter Ansible-Arbeitsablauf beantwortet immer vier Fragen: Welche Hosts sind betroffen, welche Änderung wird durchgeführt, welche Rechte werden dafür benötigt und wie wird der Erfolg gemessen?
| Aspekt | Bedeutung im Workshop | Prüfpunkt |
|---|---|---|
| Scope | Inventory, Pattern, --limit, Tags und Umgebung bestimmen die Zielsysteme. |
ansible-inventory --graph, ansible-playbook --list-hosts |
| Zustand | Module sollen Zielzustände modellieren und wiederholbare Ergebnisse liefern. | zweiter Lauf ohne unnötige Änderungen |
| Rechte | become wird tasknah und begründet eingesetzt. |
kein globales Privileg ohne Review |
| Evidence | Ausgaben, Diffs und Zusammenfassung werden dokumentiert. | Play Recap, Diff, Evidence-Datei |
Typische Kommandos:
ansible --version
ansible-config dump --only-changed
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
Für Reviews gilt: Ein Playbook ist erst dann gut genug, wenn es seine Zielgruppe beweist, seine Datenquellen offenlegt, sensible Werte schützt, Fehlerpfade beschreibt und nach einem zweiten Lauf stabil bleibt. Wenn ein Modul Check Mode oder Diff Mode nicht vollständig unterstützt, muss die Einschränkung im Runbook stehen.
Typische Fehler in diesem Bereich sind zu breite Patterns wie all, unklare Variablenquellen, Shell-Workarounds ohne Idempotenz, Secrets in Debug-Ausgaben, fehlende Rollback-Notiz und fehlende Trennung zwischen Lab- und Produktionsinventory.
7. Module, Plugins und Collections
Vertiefung und Abgabebeispiel zu Module, Plugins und Collections
Eine vollständige Bearbeitung von Module, Plugins und Collections besteht aus einem technischen Artefakt und einer kurzen fachlichen Einordnung. Das Artefakt kann ein Inventory, ein Playbook, eine Rolle, ein Template, eine Vault-Datei mit Dummy-Werten, eine CI-Konfiguration oder eine Evidence-Datei sein. Die Einordnung erklärt, warum dieser Weg gewählt wurde und welche Alternative bewusst nicht verwendet wurde.
| Abgabeteil | Inhalt | Mindestqualität |
|---|---|---|
| Zielbeschreibung | Was soll nach dem Lauf gelten? | messbar und ohne implizite Annahmen |
| Scope-Nachweis | Welche Hosts sind betroffen? | Ausgabe von --list-hosts oder Inventory-Graph |
| Umsetzung | Welche Dateien wurden geändert? | kleine, reviewbare YAML-Dateien |
| Validierung | Wie wurde geprüft? | Syntaxcheck, Check Mode, Diff, echter Lauf, zweiter Lauf |
| Risikoentscheidung | Was kann schiefgehen? | Rechte, Secrets, externe Abhängigkeiten und Rollback betrachtet |
Minimalartefakte für Module, Plugins und Collections
submission/
inventory/hosts.yml
playbooks/site.yml
evidence.md
cleanup.md
Für Rollen oder Collections wird die Struktur erweitert:
submission/
ansible.cfg
collections/requirements.yml
inventory/hosts.yml
roles/<role>/defaults/main.yml
roles/<role>/tasks/main.yml
roles/<role>/handlers/main.yml
playbooks/site.yml
evidence.md
Prüferwartung für Module, Plugins und Collections
Eine prüfbare Lösung muss auch für Personen verständlich sein, die den Lauf nicht selbst ausgeführt haben. Deshalb reichen Screenshots oder unkommentierte Terminalausgaben nicht aus. Gute Evidence beschreibt Kontext, Kommando, relevante Ausgabe und Bewertung. Wenn ein Modul im Check Mode abweicht, wird diese Einschränkung ausdrücklich genannt.
Transfer in reale Teams
Im Teamkontext wird Module, Plugins und Collections zusätzlich mit Code Review, Branch-Regeln, CI, Rollenownership, Release-Notizen und Betriebsfreigabe verbunden. Für produktionsnahe Nutzung werden außerdem Zuständigkeit, Wartungsfenster, Monitoring, Alarmierung und Rollback-Kriterien dokumentiert.
Praxisbezug zu Module, Plugins und Collections
Dieser Abschnitt ist nicht als reine Begriffserklärung gedacht. Im Workshop wird Module, Plugins und Collections immer an einem konkreten Ablauf überprüft: Inventory lesen, Zielhosts beweisen, Playbook prüfen, Änderung simulieren, Änderung ausführen, zweiten Lauf bewerten und Rückbau dokumentieren. Dadurch wird sichtbar, ob Ansible wirklich einen Zielzustand beschreibt oder nur zufällig einen Befehl erfolgreich ausgeführt hat.
| Prüffrage | Erwartete Antwort |
|---|---|
| Welche Hosts sind betroffen? | Pattern, Gruppe, --limit und Inventory-Ausgabe sind dokumentiert. |
| Welche Datenquellen wirken? | group_vars, host_vars, Defaults, Extra Vars und Facts sind bekannt. |
| Welche Rechte werden benötigt? | become ist tasknah und fachlich begründet. |
| Wie wird Erfolg bewiesen? | Syntaxcheck, Check Mode, Diff, Play Recap und zweiter Lauf liegen vor. |
Beispielablauf für Module, Plugins und Collections
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --list-hosts
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
Der Ablauf ist bewusst vollständig. In echten Teams werden einzelne Schritte oft automatisiert, aber nicht übersprungen. CI kann Syntaxcheck und Linting übernehmen; die fachliche Bewertung von Scope, Rechten, Secret-Flows und Rollout-Risiko bleibt eine Review-Aufgabe.
Review-Kriterien für Module, Plugins und Collections
- Inventory und Pattern sind enger als
all, sofern kein guter Grund dokumentiert ist. - Module aus
ansible.builtinoder klar geprüften Collections werden bevorzugt. - Shell- oder Command-Tasks haben
changed_when,failed_whenoder eine Begründung. - Variablen sind nachvollziehbar platziert und überschreiben sich nicht überraschend.
- Secrets erscheinen nicht in Klartext, Diff-Ausgaben, Debug-Tasks oder CI-Logs.
- Das Playbook kann mehrfach laufen, ohne unnötige Änderungen zu melden.
- Rückbau, Fix-forward oder kontrolliertes Belassen des Zielzustands ist dokumentiert.
Typische Fehler bei Module, Plugins und Collections
| Fehlerbild | Ursache | Diagnose |
|---|---|---|
| falsche Hosts getroffen | Pattern oder Inventory falsch verstanden | --list-hosts, ansible-inventory --host |
unreachable |
SSH, Benutzer, Python oder Netzwerkproblem | -vvvv, SSH-Test, Inventory-Variablen |
| unerwartete Änderung | Modul nicht idempotent oder falsche Datenquelle | zweiter Lauf, Diff, Variablenprüfung |
| Secret-Leak | Debug, Diff oder Log nicht begrenzt | no_log, Vault, CI-Artefakte prüfen |
| Handler läuft nicht | kein changed oder falscher Handlername |
Task-Ergebnis und Handler-Name prüfen |
Betriebsnotiz für Module, Plugins und Collections
Für produktionsnahe Nutzung muss aus dem Lab ein Runbook entstehen. Dieses Runbook nennt Zielsysteme, Verantwortliche, Vorbedingungen, Stop-Kriterien, erwartete Dauer, Validierung, Monitoring und Rückbau. Ohne diese Angaben bleibt ein Playbook technisch ausführbar, aber nicht betriebsreif.
Module, Plugins und Collections ist ein praktischer Baustein des Ansible-Workshops. Entscheidend ist, dass der gewünschte Zustand nicht nur beschrieben, sondern vor und nach der Ausführung überprüft wird. Ein guter Ansible-Arbeitsablauf beantwortet immer vier Fragen: Welche Hosts sind betroffen, welche Änderung wird durchgeführt, welche Rechte werden dafür benötigt und wie wird der Erfolg gemessen?
| Aspekt | Bedeutung im Workshop | Prüfpunkt |
|---|---|---|
| Scope | Inventory, Pattern, --limit, Tags und Umgebung bestimmen die Zielsysteme. |
ansible-inventory --graph, ansible-playbook --list-hosts |
| Zustand | Module sollen Zielzustände modellieren und wiederholbare Ergebnisse liefern. | zweiter Lauf ohne unnötige Änderungen |
| Rechte | become wird tasknah und begründet eingesetzt. |
kein globales Privileg ohne Review |
| Evidence | Ausgaben, Diffs und Zusammenfassung werden dokumentiert. | Play Recap, Diff, Evidence-Datei |
Typische Kommandos:
ansible --version
ansible-config dump --only-changed
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
Für Reviews gilt: Ein Playbook ist erst dann gut genug, wenn es seine Zielgruppe beweist, seine Datenquellen offenlegt, sensible Werte schützt, Fehlerpfade beschreibt und nach einem zweiten Lauf stabil bleibt. Wenn ein Modul Check Mode oder Diff Mode nicht vollständig unterstützt, muss die Einschränkung im Runbook stehen.
Typische Fehler in diesem Bereich sind zu breite Patterns wie all, unklare Variablenquellen, Shell-Workarounds ohne Idempotenz, Secrets in Debug-Ausgaben, fehlende Rollback-Notiz und fehlende Trennung zwischen Lab- und Produktionsinventory.
8. Variablen, Facts und Templates
Vertiefung und Abgabebeispiel zu Variablen, Facts und Templates
Eine vollständige Bearbeitung von Variablen, Facts und Templates besteht aus einem technischen Artefakt und einer kurzen fachlichen Einordnung. Das Artefakt kann ein Inventory, ein Playbook, eine Rolle, ein Template, eine Vault-Datei mit Dummy-Werten, eine CI-Konfiguration oder eine Evidence-Datei sein. Die Einordnung erklärt, warum dieser Weg gewählt wurde und welche Alternative bewusst nicht verwendet wurde.
| Abgabeteil | Inhalt | Mindestqualität |
|---|---|---|
| Zielbeschreibung | Was soll nach dem Lauf gelten? | messbar und ohne implizite Annahmen |
| Scope-Nachweis | Welche Hosts sind betroffen? | Ausgabe von --list-hosts oder Inventory-Graph |
| Umsetzung | Welche Dateien wurden geändert? | kleine, reviewbare YAML-Dateien |
| Validierung | Wie wurde geprüft? | Syntaxcheck, Check Mode, Diff, echter Lauf, zweiter Lauf |
| Risikoentscheidung | Was kann schiefgehen? | Rechte, Secrets, externe Abhängigkeiten und Rollback betrachtet |
Minimalartefakte für Variablen, Facts und Templates
submission/
inventory/hosts.yml
playbooks/site.yml
evidence.md
cleanup.md
Für Rollen oder Collections wird die Struktur erweitert:
submission/
ansible.cfg
collections/requirements.yml
inventory/hosts.yml
roles/<role>/defaults/main.yml
roles/<role>/tasks/main.yml
roles/<role>/handlers/main.yml
playbooks/site.yml
evidence.md
Prüferwartung für Variablen, Facts und Templates
Eine prüfbare Lösung muss auch für Personen verständlich sein, die den Lauf nicht selbst ausgeführt haben. Deshalb reichen Screenshots oder unkommentierte Terminalausgaben nicht aus. Gute Evidence beschreibt Kontext, Kommando, relevante Ausgabe und Bewertung. Wenn ein Modul im Check Mode abweicht, wird diese Einschränkung ausdrücklich genannt.
Transfer in reale Teams
Im Teamkontext wird Variablen, Facts und Templates zusätzlich mit Code Review, Branch-Regeln, CI, Rollenownership, Release-Notizen und Betriebsfreigabe verbunden. Für produktionsnahe Nutzung werden außerdem Zuständigkeit, Wartungsfenster, Monitoring, Alarmierung und Rollback-Kriterien dokumentiert.
Praxisbezug zu Variablen, Facts und Templates
Dieser Abschnitt ist nicht als reine Begriffserklärung gedacht. Im Workshop wird Variablen, Facts und Templates immer an einem konkreten Ablauf überprüft: Inventory lesen, Zielhosts beweisen, Playbook prüfen, Änderung simulieren, Änderung ausführen, zweiten Lauf bewerten und Rückbau dokumentieren. Dadurch wird sichtbar, ob Ansible wirklich einen Zielzustand beschreibt oder nur zufällig einen Befehl erfolgreich ausgeführt hat.
| Prüffrage | Erwartete Antwort |
|---|---|
| Welche Hosts sind betroffen? | Pattern, Gruppe, --limit und Inventory-Ausgabe sind dokumentiert. |
| Welche Datenquellen wirken? | group_vars, host_vars, Defaults, Extra Vars und Facts sind bekannt. |
| Welche Rechte werden benötigt? | become ist tasknah und fachlich begründet. |
| Wie wird Erfolg bewiesen? | Syntaxcheck, Check Mode, Diff, Play Recap und zweiter Lauf liegen vor. |
Beispielablauf für Variablen, Facts und Templates
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --list-hosts
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
Der Ablauf ist bewusst vollständig. In echten Teams werden einzelne Schritte oft automatisiert, aber nicht übersprungen. CI kann Syntaxcheck und Linting übernehmen; die fachliche Bewertung von Scope, Rechten, Secret-Flows und Rollout-Risiko bleibt eine Review-Aufgabe.
Review-Kriterien für Variablen, Facts und Templates
- Inventory und Pattern sind enger als
all, sofern kein guter Grund dokumentiert ist. - Module aus
ansible.builtinoder klar geprüften Collections werden bevorzugt. - Shell- oder Command-Tasks haben
changed_when,failed_whenoder eine Begründung. - Variablen sind nachvollziehbar platziert und überschreiben sich nicht überraschend.
- Secrets erscheinen nicht in Klartext, Diff-Ausgaben, Debug-Tasks oder CI-Logs.
- Das Playbook kann mehrfach laufen, ohne unnötige Änderungen zu melden.
- Rückbau, Fix-forward oder kontrolliertes Belassen des Zielzustands ist dokumentiert.
Typische Fehler bei Variablen, Facts und Templates
| Fehlerbild | Ursache | Diagnose |
|---|---|---|
| falsche Hosts getroffen | Pattern oder Inventory falsch verstanden | --list-hosts, ansible-inventory --host |
unreachable |
SSH, Benutzer, Python oder Netzwerkproblem | -vvvv, SSH-Test, Inventory-Variablen |
| unerwartete Änderung | Modul nicht idempotent oder falsche Datenquelle | zweiter Lauf, Diff, Variablenprüfung |
| Secret-Leak | Debug, Diff oder Log nicht begrenzt | no_log, Vault, CI-Artefakte prüfen |
| Handler läuft nicht | kein changed oder falscher Handlername |
Task-Ergebnis und Handler-Name prüfen |
Betriebsnotiz für Variablen, Facts und Templates
Für produktionsnahe Nutzung muss aus dem Lab ein Runbook entstehen. Dieses Runbook nennt Zielsysteme, Verantwortliche, Vorbedingungen, Stop-Kriterien, erwartete Dauer, Validierung, Monitoring und Rückbau. Ohne diese Angaben bleibt ein Playbook technisch ausführbar, aber nicht betriebsreif.
Variablen, Facts und Templates ist ein praktischer Baustein des Ansible-Workshops. Entscheidend ist, dass der gewünschte Zustand nicht nur beschrieben, sondern vor und nach der Ausführung überprüft wird. Ein guter Ansible-Arbeitsablauf beantwortet immer vier Fragen: Welche Hosts sind betroffen, welche Änderung wird durchgeführt, welche Rechte werden dafür benötigt und wie wird der Erfolg gemessen?
| Aspekt | Bedeutung im Workshop | Prüfpunkt |
|---|---|---|
| Scope | Inventory, Pattern, --limit, Tags und Umgebung bestimmen die Zielsysteme. |
ansible-inventory --graph, ansible-playbook --list-hosts |
| Zustand | Module sollen Zielzustände modellieren und wiederholbare Ergebnisse liefern. | zweiter Lauf ohne unnötige Änderungen |
| Rechte | become wird tasknah und begründet eingesetzt. |
kein globales Privileg ohne Review |
| Evidence | Ausgaben, Diffs und Zusammenfassung werden dokumentiert. | Play Recap, Diff, Evidence-Datei |
Typische Kommandos:
ansible --version
ansible-config dump --only-changed
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
Für Reviews gilt: Ein Playbook ist erst dann gut genug, wenn es seine Zielgruppe beweist, seine Datenquellen offenlegt, sensible Werte schützt, Fehlerpfade beschreibt und nach einem zweiten Lauf stabil bleibt. Wenn ein Modul Check Mode oder Diff Mode nicht vollständig unterstützt, muss die Einschränkung im Runbook stehen.
Typische Fehler in diesem Bereich sind zu breite Patterns wie all, unklare Variablenquellen, Shell-Workarounds ohne Idempotenz, Secrets in Debug-Ausgaben, fehlende Rollback-Notiz und fehlende Trennung zwischen Lab- und Produktionsinventory.
9. Rollen und Wiederverwendung
Vertiefung und Abgabebeispiel zu Rollen und Wiederverwendung
Eine vollständige Bearbeitung von Rollen und Wiederverwendung besteht aus einem technischen Artefakt und einer kurzen fachlichen Einordnung. Das Artefakt kann ein Inventory, ein Playbook, eine Rolle, ein Template, eine Vault-Datei mit Dummy-Werten, eine CI-Konfiguration oder eine Evidence-Datei sein. Die Einordnung erklärt, warum dieser Weg gewählt wurde und welche Alternative bewusst nicht verwendet wurde.
| Abgabeteil | Inhalt | Mindestqualität |
|---|---|---|
| Zielbeschreibung | Was soll nach dem Lauf gelten? | messbar und ohne implizite Annahmen |
| Scope-Nachweis | Welche Hosts sind betroffen? | Ausgabe von --list-hosts oder Inventory-Graph |
| Umsetzung | Welche Dateien wurden geändert? | kleine, reviewbare YAML-Dateien |
| Validierung | Wie wurde geprüft? | Syntaxcheck, Check Mode, Diff, echter Lauf, zweiter Lauf |
| Risikoentscheidung | Was kann schiefgehen? | Rechte, Secrets, externe Abhängigkeiten und Rollback betrachtet |
Minimalartefakte für Rollen und Wiederverwendung
submission/
inventory/hosts.yml
playbooks/site.yml
evidence.md
cleanup.md
Für Rollen oder Collections wird die Struktur erweitert:
submission/
ansible.cfg
collections/requirements.yml
inventory/hosts.yml
roles/<role>/defaults/main.yml
roles/<role>/tasks/main.yml
roles/<role>/handlers/main.yml
playbooks/site.yml
evidence.md
Prüferwartung für Rollen und Wiederverwendung
Eine prüfbare Lösung muss auch für Personen verständlich sein, die den Lauf nicht selbst ausgeführt haben. Deshalb reichen Screenshots oder unkommentierte Terminalausgaben nicht aus. Gute Evidence beschreibt Kontext, Kommando, relevante Ausgabe und Bewertung. Wenn ein Modul im Check Mode abweicht, wird diese Einschränkung ausdrücklich genannt.
Transfer in reale Teams
Im Teamkontext wird Rollen und Wiederverwendung zusätzlich mit Code Review, Branch-Regeln, CI, Rollenownership, Release-Notizen und Betriebsfreigabe verbunden. Für produktionsnahe Nutzung werden außerdem Zuständigkeit, Wartungsfenster, Monitoring, Alarmierung und Rollback-Kriterien dokumentiert.
Praxisbezug zu Rollen und Wiederverwendung
Dieser Abschnitt ist nicht als reine Begriffserklärung gedacht. Im Workshop wird Rollen und Wiederverwendung immer an einem konkreten Ablauf überprüft: Inventory lesen, Zielhosts beweisen, Playbook prüfen, Änderung simulieren, Änderung ausführen, zweiten Lauf bewerten und Rückbau dokumentieren. Dadurch wird sichtbar, ob Ansible wirklich einen Zielzustand beschreibt oder nur zufällig einen Befehl erfolgreich ausgeführt hat.
| Prüffrage | Erwartete Antwort |
|---|---|
| Welche Hosts sind betroffen? | Pattern, Gruppe, --limit und Inventory-Ausgabe sind dokumentiert. |
| Welche Datenquellen wirken? | group_vars, host_vars, Defaults, Extra Vars und Facts sind bekannt. |
| Welche Rechte werden benötigt? | become ist tasknah und fachlich begründet. |
| Wie wird Erfolg bewiesen? | Syntaxcheck, Check Mode, Diff, Play Recap und zweiter Lauf liegen vor. |
Beispielablauf für Rollen und Wiederverwendung
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --list-hosts
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
Der Ablauf ist bewusst vollständig. In echten Teams werden einzelne Schritte oft automatisiert, aber nicht übersprungen. CI kann Syntaxcheck und Linting übernehmen; die fachliche Bewertung von Scope, Rechten, Secret-Flows und Rollout-Risiko bleibt eine Review-Aufgabe.
Review-Kriterien für Rollen und Wiederverwendung
- Inventory und Pattern sind enger als
all, sofern kein guter Grund dokumentiert ist. - Module aus
ansible.builtinoder klar geprüften Collections werden bevorzugt. - Shell- oder Command-Tasks haben
changed_when,failed_whenoder eine Begründung. - Variablen sind nachvollziehbar platziert und überschreiben sich nicht überraschend.
- Secrets erscheinen nicht in Klartext, Diff-Ausgaben, Debug-Tasks oder CI-Logs.
- Das Playbook kann mehrfach laufen, ohne unnötige Änderungen zu melden.
- Rückbau, Fix-forward oder kontrolliertes Belassen des Zielzustands ist dokumentiert.
Typische Fehler bei Rollen und Wiederverwendung
| Fehlerbild | Ursache | Diagnose |
|---|---|---|
| falsche Hosts getroffen | Pattern oder Inventory falsch verstanden | --list-hosts, ansible-inventory --host |
unreachable |
SSH, Benutzer, Python oder Netzwerkproblem | -vvvv, SSH-Test, Inventory-Variablen |
| unerwartete Änderung | Modul nicht idempotent oder falsche Datenquelle | zweiter Lauf, Diff, Variablenprüfung |
| Secret-Leak | Debug, Diff oder Log nicht begrenzt | no_log, Vault, CI-Artefakte prüfen |
| Handler läuft nicht | kein changed oder falscher Handlername |
Task-Ergebnis und Handler-Name prüfen |
Betriebsnotiz für Rollen und Wiederverwendung
Für produktionsnahe Nutzung muss aus dem Lab ein Runbook entstehen. Dieses Runbook nennt Zielsysteme, Verantwortliche, Vorbedingungen, Stop-Kriterien, erwartete Dauer, Validierung, Monitoring und Rückbau. Ohne diese Angaben bleibt ein Playbook technisch ausführbar, aber nicht betriebsreif.
Rollen und Wiederverwendung ist ein praktischer Baustein des Ansible-Workshops. Entscheidend ist, dass der gewünschte Zustand nicht nur beschrieben, sondern vor und nach der Ausführung überprüft wird. Ein guter Ansible-Arbeitsablauf beantwortet immer vier Fragen: Welche Hosts sind betroffen, welche Änderung wird durchgeführt, welche Rechte werden dafür benötigt und wie wird der Erfolg gemessen?
| Aspekt | Bedeutung im Workshop | Prüfpunkt |
|---|---|---|
| Scope | Inventory, Pattern, --limit, Tags und Umgebung bestimmen die Zielsysteme. |
ansible-inventory --graph, ansible-playbook --list-hosts |
| Zustand | Module sollen Zielzustände modellieren und wiederholbare Ergebnisse liefern. | zweiter Lauf ohne unnötige Änderungen |
| Rechte | become wird tasknah und begründet eingesetzt. |
kein globales Privileg ohne Review |
| Evidence | Ausgaben, Diffs und Zusammenfassung werden dokumentiert. | Play Recap, Diff, Evidence-Datei |
Typische Kommandos:
ansible --version
ansible-config dump --only-changed
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
Für Reviews gilt: Ein Playbook ist erst dann gut genug, wenn es seine Zielgruppe beweist, seine Datenquellen offenlegt, sensible Werte schützt, Fehlerpfade beschreibt und nach einem zweiten Lauf stabil bleibt. Wenn ein Modul Check Mode oder Diff Mode nicht vollständig unterstützt, muss die Einschränkung im Runbook stehen.
Typische Fehler in diesem Bereich sind zu breite Patterns wie all, unklare Variablenquellen, Shell-Workarounds ohne Idempotenz, Secrets in Debug-Ausgaben, fehlende Rollback-Notiz und fehlende Trennung zwischen Lab- und Produktionsinventory.
10. Ausführungsablauf
Vertiefung und Abgabebeispiel zu Ausführungsablauf
Eine vollständige Bearbeitung von Ausführungsablauf besteht aus einem technischen Artefakt und einer kurzen fachlichen Einordnung. Das Artefakt kann ein Inventory, ein Playbook, eine Rolle, ein Template, eine Vault-Datei mit Dummy-Werten, eine CI-Konfiguration oder eine Evidence-Datei sein. Die Einordnung erklärt, warum dieser Weg gewählt wurde und welche Alternative bewusst nicht verwendet wurde.
| Abgabeteil | Inhalt | Mindestqualität |
|---|---|---|
| Zielbeschreibung | Was soll nach dem Lauf gelten? | messbar und ohne implizite Annahmen |
| Scope-Nachweis | Welche Hosts sind betroffen? | Ausgabe von --list-hosts oder Inventory-Graph |
| Umsetzung | Welche Dateien wurden geändert? | kleine, reviewbare YAML-Dateien |
| Validierung | Wie wurde geprüft? | Syntaxcheck, Check Mode, Diff, echter Lauf, zweiter Lauf |
| Risikoentscheidung | Was kann schiefgehen? | Rechte, Secrets, externe Abhängigkeiten und Rollback betrachtet |
Minimalartefakte für Ausführungsablauf
submission/
inventory/hosts.yml
playbooks/site.yml
evidence.md
cleanup.md
Für Rollen oder Collections wird die Struktur erweitert:
submission/
ansible.cfg
collections/requirements.yml
inventory/hosts.yml
roles/<role>/defaults/main.yml
roles/<role>/tasks/main.yml
roles/<role>/handlers/main.yml
playbooks/site.yml
evidence.md
Prüferwartung für Ausführungsablauf
Eine prüfbare Lösung muss auch für Personen verständlich sein, die den Lauf nicht selbst ausgeführt haben. Deshalb reichen Screenshots oder unkommentierte Terminalausgaben nicht aus. Gute Evidence beschreibt Kontext, Kommando, relevante Ausgabe und Bewertung. Wenn ein Modul im Check Mode abweicht, wird diese Einschränkung ausdrücklich genannt.
Transfer in reale Teams
Im Teamkontext wird Ausführungsablauf zusätzlich mit Code Review, Branch-Regeln, CI, Rollenownership, Release-Notizen und Betriebsfreigabe verbunden. Für produktionsnahe Nutzung werden außerdem Zuständigkeit, Wartungsfenster, Monitoring, Alarmierung und Rollback-Kriterien dokumentiert.
Praxisbezug zu Ausführungsablauf
Dieser Abschnitt ist nicht als reine Begriffserklärung gedacht. Im Workshop wird Ausführungsablauf immer an einem konkreten Ablauf überprüft: Inventory lesen, Zielhosts beweisen, Playbook prüfen, Änderung simulieren, Änderung ausführen, zweiten Lauf bewerten und Rückbau dokumentieren. Dadurch wird sichtbar, ob Ansible wirklich einen Zielzustand beschreibt oder nur zufällig einen Befehl erfolgreich ausgeführt hat.
| Prüffrage | Erwartete Antwort |
|---|---|
| Welche Hosts sind betroffen? | Pattern, Gruppe, --limit und Inventory-Ausgabe sind dokumentiert. |
| Welche Datenquellen wirken? | group_vars, host_vars, Defaults, Extra Vars und Facts sind bekannt. |
| Welche Rechte werden benötigt? | become ist tasknah und fachlich begründet. |
| Wie wird Erfolg bewiesen? | Syntaxcheck, Check Mode, Diff, Play Recap und zweiter Lauf liegen vor. |
Beispielablauf für Ausführungsablauf
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --list-hosts
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
Der Ablauf ist bewusst vollständig. In echten Teams werden einzelne Schritte oft automatisiert, aber nicht übersprungen. CI kann Syntaxcheck und Linting übernehmen; die fachliche Bewertung von Scope, Rechten, Secret-Flows und Rollout-Risiko bleibt eine Review-Aufgabe.
Review-Kriterien für Ausführungsablauf
- Inventory und Pattern sind enger als
all, sofern kein guter Grund dokumentiert ist. - Module aus
ansible.builtinoder klar geprüften Collections werden bevorzugt. - Shell- oder Command-Tasks haben
changed_when,failed_whenoder eine Begründung. - Variablen sind nachvollziehbar platziert und überschreiben sich nicht überraschend.
- Secrets erscheinen nicht in Klartext, Diff-Ausgaben, Debug-Tasks oder CI-Logs.
- Das Playbook kann mehrfach laufen, ohne unnötige Änderungen zu melden.
- Rückbau, Fix-forward oder kontrolliertes Belassen des Zielzustands ist dokumentiert.
Typische Fehler bei Ausführungsablauf
| Fehlerbild | Ursache | Diagnose |
|---|---|---|
| falsche Hosts getroffen | Pattern oder Inventory falsch verstanden | --list-hosts, ansible-inventory --host |
unreachable |
SSH, Benutzer, Python oder Netzwerkproblem | -vvvv, SSH-Test, Inventory-Variablen |
| unerwartete Änderung | Modul nicht idempotent oder falsche Datenquelle | zweiter Lauf, Diff, Variablenprüfung |
| Secret-Leak | Debug, Diff oder Log nicht begrenzt | no_log, Vault, CI-Artefakte prüfen |
| Handler läuft nicht | kein changed oder falscher Handlername |
Task-Ergebnis und Handler-Name prüfen |
Betriebsnotiz für Ausführungsablauf
Für produktionsnahe Nutzung muss aus dem Lab ein Runbook entstehen. Dieses Runbook nennt Zielsysteme, Verantwortliche, Vorbedingungen, Stop-Kriterien, erwartete Dauer, Validierung, Monitoring und Rückbau. Ohne diese Angaben bleibt ein Playbook technisch ausführbar, aber nicht betriebsreif.
Ausführungsablauf ist ein praktischer Baustein des Ansible-Workshops. Entscheidend ist, dass der gewünschte Zustand nicht nur beschrieben, sondern vor und nach der Ausführung überprüft wird. Ein guter Ansible-Arbeitsablauf beantwortet immer vier Fragen: Welche Hosts sind betroffen, welche Änderung wird durchgeführt, welche Rechte werden dafür benötigt und wie wird der Erfolg gemessen?
| Aspekt | Bedeutung im Workshop | Prüfpunkt |
|---|---|---|
| Scope | Inventory, Pattern, --limit, Tags und Umgebung bestimmen die Zielsysteme. |
ansible-inventory --graph, ansible-playbook --list-hosts |
| Zustand | Module sollen Zielzustände modellieren und wiederholbare Ergebnisse liefern. | zweiter Lauf ohne unnötige Änderungen |
| Rechte | become wird tasknah und begründet eingesetzt. |
kein globales Privileg ohne Review |
| Evidence | Ausgaben, Diffs und Zusammenfassung werden dokumentiert. | Play Recap, Diff, Evidence-Datei |
Typische Kommandos:
ansible --version
ansible-config dump --only-changed
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
Für Reviews gilt: Ein Playbook ist erst dann gut genug, wenn es seine Zielgruppe beweist, seine Datenquellen offenlegt, sensible Werte schützt, Fehlerpfade beschreibt und nach einem zweiten Lauf stabil bleibt. Wenn ein Modul Check Mode oder Diff Mode nicht vollständig unterstützt, muss die Einschränkung im Runbook stehen.
Typische Fehler in diesem Bereich sind zu breite Patterns wie all, unklare Variablenquellen, Shell-Workarounds ohne Idempotenz, Secrets in Debug-Ausgaben, fehlende Rollback-Notiz und fehlende Trennung zwischen Lab- und Produktionsinventory.
11. Privilege Escalation
Vertiefung und Abgabebeispiel zu Privilege Escalation
Eine vollständige Bearbeitung von Privilege Escalation besteht aus einem technischen Artefakt und einer kurzen fachlichen Einordnung. Das Artefakt kann ein Inventory, ein Playbook, eine Rolle, ein Template, eine Vault-Datei mit Dummy-Werten, eine CI-Konfiguration oder eine Evidence-Datei sein. Die Einordnung erklärt, warum dieser Weg gewählt wurde und welche Alternative bewusst nicht verwendet wurde.
| Abgabeteil | Inhalt | Mindestqualität |
|---|---|---|
| Zielbeschreibung | Was soll nach dem Lauf gelten? | messbar und ohne implizite Annahmen |
| Scope-Nachweis | Welche Hosts sind betroffen? | Ausgabe von --list-hosts oder Inventory-Graph |
| Umsetzung | Welche Dateien wurden geändert? | kleine, reviewbare YAML-Dateien |
| Validierung | Wie wurde geprüft? | Syntaxcheck, Check Mode, Diff, echter Lauf, zweiter Lauf |
| Risikoentscheidung | Was kann schiefgehen? | Rechte, Secrets, externe Abhängigkeiten und Rollback betrachtet |
Minimalartefakte für Privilege Escalation
submission/
inventory/hosts.yml
playbooks/site.yml
evidence.md
cleanup.md
Für Rollen oder Collections wird die Struktur erweitert:
submission/
ansible.cfg
collections/requirements.yml
inventory/hosts.yml
roles/<role>/defaults/main.yml
roles/<role>/tasks/main.yml
roles/<role>/handlers/main.yml
playbooks/site.yml
evidence.md
Prüferwartung für Privilege Escalation
Eine prüfbare Lösung muss auch für Personen verständlich sein, die den Lauf nicht selbst ausgeführt haben. Deshalb reichen Screenshots oder unkommentierte Terminalausgaben nicht aus. Gute Evidence beschreibt Kontext, Kommando, relevante Ausgabe und Bewertung. Wenn ein Modul im Check Mode abweicht, wird diese Einschränkung ausdrücklich genannt.
Transfer in reale Teams
Im Teamkontext wird Privilege Escalation zusätzlich mit Code Review, Branch-Regeln, CI, Rollenownership, Release-Notizen und Betriebsfreigabe verbunden. Für produktionsnahe Nutzung werden außerdem Zuständigkeit, Wartungsfenster, Monitoring, Alarmierung und Rollback-Kriterien dokumentiert.
Praxisbezug zu Privilege Escalation
Dieser Abschnitt ist nicht als reine Begriffserklärung gedacht. Im Workshop wird Privilege Escalation immer an einem konkreten Ablauf überprüft: Inventory lesen, Zielhosts beweisen, Playbook prüfen, Änderung simulieren, Änderung ausführen, zweiten Lauf bewerten und Rückbau dokumentieren. Dadurch wird sichtbar, ob Ansible wirklich einen Zielzustand beschreibt oder nur zufällig einen Befehl erfolgreich ausgeführt hat.
| Prüffrage | Erwartete Antwort |
|---|---|
| Welche Hosts sind betroffen? | Pattern, Gruppe, --limit und Inventory-Ausgabe sind dokumentiert. |
| Welche Datenquellen wirken? | group_vars, host_vars, Defaults, Extra Vars und Facts sind bekannt. |
| Welche Rechte werden benötigt? | become ist tasknah und fachlich begründet. |
| Wie wird Erfolg bewiesen? | Syntaxcheck, Check Mode, Diff, Play Recap und zweiter Lauf liegen vor. |
Beispielablauf für Privilege Escalation
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --list-hosts
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
Der Ablauf ist bewusst vollständig. In echten Teams werden einzelne Schritte oft automatisiert, aber nicht übersprungen. CI kann Syntaxcheck und Linting übernehmen; die fachliche Bewertung von Scope, Rechten, Secret-Flows und Rollout-Risiko bleibt eine Review-Aufgabe.
Review-Kriterien für Privilege Escalation
- Inventory und Pattern sind enger als
all, sofern kein guter Grund dokumentiert ist. - Module aus
ansible.builtinoder klar geprüften Collections werden bevorzugt. - Shell- oder Command-Tasks haben
changed_when,failed_whenoder eine Begründung. - Variablen sind nachvollziehbar platziert und überschreiben sich nicht überraschend.
- Secrets erscheinen nicht in Klartext, Diff-Ausgaben, Debug-Tasks oder CI-Logs.
- Das Playbook kann mehrfach laufen, ohne unnötige Änderungen zu melden.
- Rückbau, Fix-forward oder kontrolliertes Belassen des Zielzustands ist dokumentiert.
Typische Fehler bei Privilege Escalation
| Fehlerbild | Ursache | Diagnose |
|---|---|---|
| falsche Hosts getroffen | Pattern oder Inventory falsch verstanden | --list-hosts, ansible-inventory --host |
unreachable |
SSH, Benutzer, Python oder Netzwerkproblem | -vvvv, SSH-Test, Inventory-Variablen |
| unerwartete Änderung | Modul nicht idempotent oder falsche Datenquelle | zweiter Lauf, Diff, Variablenprüfung |
| Secret-Leak | Debug, Diff oder Log nicht begrenzt | no_log, Vault, CI-Artefakte prüfen |
| Handler läuft nicht | kein changed oder falscher Handlername |
Task-Ergebnis und Handler-Name prüfen |
Betriebsnotiz für Privilege Escalation
Für produktionsnahe Nutzung muss aus dem Lab ein Runbook entstehen. Dieses Runbook nennt Zielsysteme, Verantwortliche, Vorbedingungen, Stop-Kriterien, erwartete Dauer, Validierung, Monitoring und Rückbau. Ohne diese Angaben bleibt ein Playbook technisch ausführbar, aber nicht betriebsreif.
Privilege Escalation ist ein praktischer Baustein des Ansible-Workshops. Entscheidend ist, dass der gewünschte Zustand nicht nur beschrieben, sondern vor und nach der Ausführung überprüft wird. Ein guter Ansible-Arbeitsablauf beantwortet immer vier Fragen: Welche Hosts sind betroffen, welche Änderung wird durchgeführt, welche Rechte werden dafür benötigt und wie wird der Erfolg gemessen?
| Aspekt | Bedeutung im Workshop | Prüfpunkt |
|---|---|---|
| Scope | Inventory, Pattern, --limit, Tags und Umgebung bestimmen die Zielsysteme. |
ansible-inventory --graph, ansible-playbook --list-hosts |
| Zustand | Module sollen Zielzustände modellieren und wiederholbare Ergebnisse liefern. | zweiter Lauf ohne unnötige Änderungen |
| Rechte | become wird tasknah und begründet eingesetzt. |
kein globales Privileg ohne Review |
| Evidence | Ausgaben, Diffs und Zusammenfassung werden dokumentiert. | Play Recap, Diff, Evidence-Datei |
Typische Kommandos:
ansible --version
ansible-config dump --only-changed
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
Für Reviews gilt: Ein Playbook ist erst dann gut genug, wenn es seine Zielgruppe beweist, seine Datenquellen offenlegt, sensible Werte schützt, Fehlerpfade beschreibt und nach einem zweiten Lauf stabil bleibt. Wenn ein Modul Check Mode oder Diff Mode nicht vollständig unterstützt, muss die Einschränkung im Runbook stehen.
Typische Fehler in diesem Bereich sind zu breite Patterns wie all, unklare Variablenquellen, Shell-Workarounds ohne Idempotenz, Secrets in Debug-Ausgaben, fehlende Rollback-Notiz und fehlende Trennung zwischen Lab- und Produktionsinventory.
12. Vault und Secret-Flows
Vertiefung und Abgabebeispiel zu Vault und Secret-Flows
Eine vollständige Bearbeitung von Vault und Secret-Flows besteht aus einem technischen Artefakt und einer kurzen fachlichen Einordnung. Das Artefakt kann ein Inventory, ein Playbook, eine Rolle, ein Template, eine Vault-Datei mit Dummy-Werten, eine CI-Konfiguration oder eine Evidence-Datei sein. Die Einordnung erklärt, warum dieser Weg gewählt wurde und welche Alternative bewusst nicht verwendet wurde.
| Abgabeteil | Inhalt | Mindestqualität |
|---|---|---|
| Zielbeschreibung | Was soll nach dem Lauf gelten? | messbar und ohne implizite Annahmen |
| Scope-Nachweis | Welche Hosts sind betroffen? | Ausgabe von --list-hosts oder Inventory-Graph |
| Umsetzung | Welche Dateien wurden geändert? | kleine, reviewbare YAML-Dateien |
| Validierung | Wie wurde geprüft? | Syntaxcheck, Check Mode, Diff, echter Lauf, zweiter Lauf |
| Risikoentscheidung | Was kann schiefgehen? | Rechte, Secrets, externe Abhängigkeiten und Rollback betrachtet |
Minimalartefakte für Vault und Secret-Flows
submission/
inventory/hosts.yml
playbooks/site.yml
evidence.md
cleanup.md
Für Rollen oder Collections wird die Struktur erweitert:
submission/
ansible.cfg
collections/requirements.yml
inventory/hosts.yml
roles/<role>/defaults/main.yml
roles/<role>/tasks/main.yml
roles/<role>/handlers/main.yml
playbooks/site.yml
evidence.md
Prüferwartung für Vault und Secret-Flows
Eine prüfbare Lösung muss auch für Personen verständlich sein, die den Lauf nicht selbst ausgeführt haben. Deshalb reichen Screenshots oder unkommentierte Terminalausgaben nicht aus. Gute Evidence beschreibt Kontext, Kommando, relevante Ausgabe und Bewertung. Wenn ein Modul im Check Mode abweicht, wird diese Einschränkung ausdrücklich genannt.
Transfer in reale Teams
Im Teamkontext wird Vault und Secret-Flows zusätzlich mit Code Review, Branch-Regeln, CI, Rollenownership, Release-Notizen und Betriebsfreigabe verbunden. Für produktionsnahe Nutzung werden außerdem Zuständigkeit, Wartungsfenster, Monitoring, Alarmierung und Rollback-Kriterien dokumentiert.
Praxisbezug zu Vault und Secret-Flows
Dieser Abschnitt ist nicht als reine Begriffserklärung gedacht. Im Workshop wird Vault und Secret-Flows immer an einem konkreten Ablauf überprüft: Inventory lesen, Zielhosts beweisen, Playbook prüfen, Änderung simulieren, Änderung ausführen, zweiten Lauf bewerten und Rückbau dokumentieren. Dadurch wird sichtbar, ob Ansible wirklich einen Zielzustand beschreibt oder nur zufällig einen Befehl erfolgreich ausgeführt hat.
| Prüffrage | Erwartete Antwort |
|---|---|
| Welche Hosts sind betroffen? | Pattern, Gruppe, --limit und Inventory-Ausgabe sind dokumentiert. |
| Welche Datenquellen wirken? | group_vars, host_vars, Defaults, Extra Vars und Facts sind bekannt. |
| Welche Rechte werden benötigt? | become ist tasknah und fachlich begründet. |
| Wie wird Erfolg bewiesen? | Syntaxcheck, Check Mode, Diff, Play Recap und zweiter Lauf liegen vor. |
Beispielablauf für Vault und Secret-Flows
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --list-hosts
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
Der Ablauf ist bewusst vollständig. In echten Teams werden einzelne Schritte oft automatisiert, aber nicht übersprungen. CI kann Syntaxcheck und Linting übernehmen; die fachliche Bewertung von Scope, Rechten, Secret-Flows und Rollout-Risiko bleibt eine Review-Aufgabe.
Review-Kriterien für Vault und Secret-Flows
- Inventory und Pattern sind enger als
all, sofern kein guter Grund dokumentiert ist. - Module aus
ansible.builtinoder klar geprüften Collections werden bevorzugt. - Shell- oder Command-Tasks haben
changed_when,failed_whenoder eine Begründung. - Variablen sind nachvollziehbar platziert und überschreiben sich nicht überraschend.
- Secrets erscheinen nicht in Klartext, Diff-Ausgaben, Debug-Tasks oder CI-Logs.
- Das Playbook kann mehrfach laufen, ohne unnötige Änderungen zu melden.
- Rückbau, Fix-forward oder kontrolliertes Belassen des Zielzustands ist dokumentiert.
Typische Fehler bei Vault und Secret-Flows
| Fehlerbild | Ursache | Diagnose |
|---|---|---|
| falsche Hosts getroffen | Pattern oder Inventory falsch verstanden | --list-hosts, ansible-inventory --host |
unreachable |
SSH, Benutzer, Python oder Netzwerkproblem | -vvvv, SSH-Test, Inventory-Variablen |
| unerwartete Änderung | Modul nicht idempotent oder falsche Datenquelle | zweiter Lauf, Diff, Variablenprüfung |
| Secret-Leak | Debug, Diff oder Log nicht begrenzt | no_log, Vault, CI-Artefakte prüfen |
| Handler läuft nicht | kein changed oder falscher Handlername |
Task-Ergebnis und Handler-Name prüfen |
Betriebsnotiz für Vault und Secret-Flows
Für produktionsnahe Nutzung muss aus dem Lab ein Runbook entstehen. Dieses Runbook nennt Zielsysteme, Verantwortliche, Vorbedingungen, Stop-Kriterien, erwartete Dauer, Validierung, Monitoring und Rückbau. Ohne diese Angaben bleibt ein Playbook technisch ausführbar, aber nicht betriebsreif.
Vault und Secret-Flows ist ein praktischer Baustein des Ansible-Workshops. Entscheidend ist, dass der gewünschte Zustand nicht nur beschrieben, sondern vor und nach der Ausführung überprüft wird. Ein guter Ansible-Arbeitsablauf beantwortet immer vier Fragen: Welche Hosts sind betroffen, welche Änderung wird durchgeführt, welche Rechte werden dafür benötigt und wie wird der Erfolg gemessen?
| Aspekt | Bedeutung im Workshop | Prüfpunkt |
|---|---|---|
| Scope | Inventory, Pattern, --limit, Tags und Umgebung bestimmen die Zielsysteme. |
ansible-inventory --graph, ansible-playbook --list-hosts |
| Zustand | Module sollen Zielzustände modellieren und wiederholbare Ergebnisse liefern. | zweiter Lauf ohne unnötige Änderungen |
| Rechte | become wird tasknah und begründet eingesetzt. |
kein globales Privileg ohne Review |
| Evidence | Ausgaben, Diffs und Zusammenfassung werden dokumentiert. | Play Recap, Diff, Evidence-Datei |
Typische Kommandos:
ansible --version
ansible-config dump --only-changed
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
Für Reviews gilt: Ein Playbook ist erst dann gut genug, wenn es seine Zielgruppe beweist, seine Datenquellen offenlegt, sensible Werte schützt, Fehlerpfade beschreibt und nach einem zweiten Lauf stabil bleibt. Wenn ein Modul Check Mode oder Diff Mode nicht vollständig unterstützt, muss die Einschränkung im Runbook stehen.
Typische Fehler in diesem Bereich sind zu breite Patterns wie all, unklare Variablenquellen, Shell-Workarounds ohne Idempotenz, Secrets in Debug-Ausgaben, fehlende Rollback-Notiz und fehlende Trennung zwischen Lab- und Produktionsinventory.
13. AWX und Automation Controller
Vertiefung und Abgabebeispiel zu AWX und Automation Controller
Eine vollständige Bearbeitung von AWX und Automation Controller besteht aus einem technischen Artefakt und einer kurzen fachlichen Einordnung. Das Artefakt kann ein Inventory, ein Playbook, eine Rolle, ein Template, eine Vault-Datei mit Dummy-Werten, eine CI-Konfiguration oder eine Evidence-Datei sein. Die Einordnung erklärt, warum dieser Weg gewählt wurde und welche Alternative bewusst nicht verwendet wurde.
| Abgabeteil | Inhalt | Mindestqualität |
|---|---|---|
| Zielbeschreibung | Was soll nach dem Lauf gelten? | messbar und ohne implizite Annahmen |
| Scope-Nachweis | Welche Hosts sind betroffen? | Ausgabe von --list-hosts oder Inventory-Graph |
| Umsetzung | Welche Dateien wurden geändert? | kleine, reviewbare YAML-Dateien |
| Validierung | Wie wurde geprüft? | Syntaxcheck, Check Mode, Diff, echter Lauf, zweiter Lauf |
| Risikoentscheidung | Was kann schiefgehen? | Rechte, Secrets, externe Abhängigkeiten und Rollback betrachtet |
Minimalartefakte für AWX und Automation Controller
submission/
inventory/hosts.yml
playbooks/site.yml
evidence.md
cleanup.md
Für Rollen oder Collections wird die Struktur erweitert:
submission/
ansible.cfg
collections/requirements.yml
inventory/hosts.yml
roles/<role>/defaults/main.yml
roles/<role>/tasks/main.yml
roles/<role>/handlers/main.yml
playbooks/site.yml
evidence.md
Prüferwartung für AWX und Automation Controller
Eine prüfbare Lösung muss auch für Personen verständlich sein, die den Lauf nicht selbst ausgeführt haben. Deshalb reichen Screenshots oder unkommentierte Terminalausgaben nicht aus. Gute Evidence beschreibt Kontext, Kommando, relevante Ausgabe und Bewertung. Wenn ein Modul im Check Mode abweicht, wird diese Einschränkung ausdrücklich genannt.
Transfer in reale Teams
Im Teamkontext wird AWX und Automation Controller zusätzlich mit Code Review, Branch-Regeln, CI, Rollenownership, Release-Notizen und Betriebsfreigabe verbunden. Für produktionsnahe Nutzung werden außerdem Zuständigkeit, Wartungsfenster, Monitoring, Alarmierung und Rollback-Kriterien dokumentiert.
Praxisbezug zu AWX und Automation Controller
Dieser Abschnitt ist nicht als reine Begriffserklärung gedacht. Im Workshop wird AWX und Automation Controller immer an einem konkreten Ablauf überprüft: Inventory lesen, Zielhosts beweisen, Playbook prüfen, Änderung simulieren, Änderung ausführen, zweiten Lauf bewerten und Rückbau dokumentieren. Dadurch wird sichtbar, ob Ansible wirklich einen Zielzustand beschreibt oder nur zufällig einen Befehl erfolgreich ausgeführt hat.
| Prüffrage | Erwartete Antwort |
|---|---|
| Welche Hosts sind betroffen? | Pattern, Gruppe, --limit und Inventory-Ausgabe sind dokumentiert. |
| Welche Datenquellen wirken? | group_vars, host_vars, Defaults, Extra Vars und Facts sind bekannt. |
| Welche Rechte werden benötigt? | become ist tasknah und fachlich begründet. |
| Wie wird Erfolg bewiesen? | Syntaxcheck, Check Mode, Diff, Play Recap und zweiter Lauf liegen vor. |
Beispielablauf für AWX und Automation Controller
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --list-hosts
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
Der Ablauf ist bewusst vollständig. In echten Teams werden einzelne Schritte oft automatisiert, aber nicht übersprungen. CI kann Syntaxcheck und Linting übernehmen; die fachliche Bewertung von Scope, Rechten, Secret-Flows und Rollout-Risiko bleibt eine Review-Aufgabe.
Review-Kriterien für AWX und Automation Controller
- Inventory und Pattern sind enger als
all, sofern kein guter Grund dokumentiert ist. - Module aus
ansible.builtinoder klar geprüften Collections werden bevorzugt. - Shell- oder Command-Tasks haben
changed_when,failed_whenoder eine Begründung. - Variablen sind nachvollziehbar platziert und überschreiben sich nicht überraschend.
- Secrets erscheinen nicht in Klartext, Diff-Ausgaben, Debug-Tasks oder CI-Logs.
- Das Playbook kann mehrfach laufen, ohne unnötige Änderungen zu melden.
- Rückbau, Fix-forward oder kontrolliertes Belassen des Zielzustands ist dokumentiert.
Typische Fehler bei AWX und Automation Controller
| Fehlerbild | Ursache | Diagnose |
|---|---|---|
| falsche Hosts getroffen | Pattern oder Inventory falsch verstanden | --list-hosts, ansible-inventory --host |
unreachable |
SSH, Benutzer, Python oder Netzwerkproblem | -vvvv, SSH-Test, Inventory-Variablen |
| unerwartete Änderung | Modul nicht idempotent oder falsche Datenquelle | zweiter Lauf, Diff, Variablenprüfung |
| Secret-Leak | Debug, Diff oder Log nicht begrenzt | no_log, Vault, CI-Artefakte prüfen |
| Handler läuft nicht | kein changed oder falscher Handlername |
Task-Ergebnis und Handler-Name prüfen |
Betriebsnotiz für AWX und Automation Controller
Für produktionsnahe Nutzung muss aus dem Lab ein Runbook entstehen. Dieses Runbook nennt Zielsysteme, Verantwortliche, Vorbedingungen, Stop-Kriterien, erwartete Dauer, Validierung, Monitoring und Rückbau. Ohne diese Angaben bleibt ein Playbook technisch ausführbar, aber nicht betriebsreif.
AWX und Automation Controller ist ein praktischer Baustein des Ansible-Workshops. Entscheidend ist, dass der gewünschte Zustand nicht nur beschrieben, sondern vor und nach der Ausführung überprüft wird. Ein guter Ansible-Arbeitsablauf beantwortet immer vier Fragen: Welche Hosts sind betroffen, welche Änderung wird durchgeführt, welche Rechte werden dafür benötigt und wie wird der Erfolg gemessen?
| Aspekt | Bedeutung im Workshop | Prüfpunkt |
|---|---|---|
| Scope | Inventory, Pattern, --limit, Tags und Umgebung bestimmen die Zielsysteme. |
ansible-inventory --graph, ansible-playbook --list-hosts |
| Zustand | Module sollen Zielzustände modellieren und wiederholbare Ergebnisse liefern. | zweiter Lauf ohne unnötige Änderungen |
| Rechte | become wird tasknah und begründet eingesetzt. |
kein globales Privileg ohne Review |
| Evidence | Ausgaben, Diffs und Zusammenfassung werden dokumentiert. | Play Recap, Diff, Evidence-Datei |
Typische Kommandos:
ansible --version
ansible-config dump --only-changed
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
Für Reviews gilt: Ein Playbook ist erst dann gut genug, wenn es seine Zielgruppe beweist, seine Datenquellen offenlegt, sensible Werte schützt, Fehlerpfade beschreibt und nach einem zweiten Lauf stabil bleibt. Wenn ein Modul Check Mode oder Diff Mode nicht vollständig unterstützt, muss die Einschränkung im Runbook stehen.
Typische Fehler in diesem Bereich sind zu breite Patterns wie all, unklare Variablenquellen, Shell-Workarounds ohne Idempotenz, Secrets in Debug-Ausgaben, fehlende Rollback-Notiz und fehlende Trennung zwischen Lab- und Produktionsinventory.
14. Execution Environments
Vertiefung und Abgabebeispiel zu Execution Environments
Eine vollständige Bearbeitung von Execution Environments besteht aus einem technischen Artefakt und einer kurzen fachlichen Einordnung. Das Artefakt kann ein Inventory, ein Playbook, eine Rolle, ein Template, eine Vault-Datei mit Dummy-Werten, eine CI-Konfiguration oder eine Evidence-Datei sein. Die Einordnung erklärt, warum dieser Weg gewählt wurde und welche Alternative bewusst nicht verwendet wurde.
| Abgabeteil | Inhalt | Mindestqualität |
|---|---|---|
| Zielbeschreibung | Was soll nach dem Lauf gelten? | messbar und ohne implizite Annahmen |
| Scope-Nachweis | Welche Hosts sind betroffen? | Ausgabe von --list-hosts oder Inventory-Graph |
| Umsetzung | Welche Dateien wurden geändert? | kleine, reviewbare YAML-Dateien |
| Validierung | Wie wurde geprüft? | Syntaxcheck, Check Mode, Diff, echter Lauf, zweiter Lauf |
| Risikoentscheidung | Was kann schiefgehen? | Rechte, Secrets, externe Abhängigkeiten und Rollback betrachtet |
Minimalartefakte für Execution Environments
submission/
inventory/hosts.yml
playbooks/site.yml
evidence.md
cleanup.md
Für Rollen oder Collections wird die Struktur erweitert:
submission/
ansible.cfg
collections/requirements.yml
inventory/hosts.yml
roles/<role>/defaults/main.yml
roles/<role>/tasks/main.yml
roles/<role>/handlers/main.yml
playbooks/site.yml
evidence.md
Prüferwartung für Execution Environments
Eine prüfbare Lösung muss auch für Personen verständlich sein, die den Lauf nicht selbst ausgeführt haben. Deshalb reichen Screenshots oder unkommentierte Terminalausgaben nicht aus. Gute Evidence beschreibt Kontext, Kommando, relevante Ausgabe und Bewertung. Wenn ein Modul im Check Mode abweicht, wird diese Einschränkung ausdrücklich genannt.
Transfer in reale Teams
Im Teamkontext wird Execution Environments zusätzlich mit Code Review, Branch-Regeln, CI, Rollenownership, Release-Notizen und Betriebsfreigabe verbunden. Für produktionsnahe Nutzung werden außerdem Zuständigkeit, Wartungsfenster, Monitoring, Alarmierung und Rollback-Kriterien dokumentiert.
Praxisbezug zu Execution Environments
Dieser Abschnitt ist nicht als reine Begriffserklärung gedacht. Im Workshop wird Execution Environments immer an einem konkreten Ablauf überprüft: Inventory lesen, Zielhosts beweisen, Playbook prüfen, Änderung simulieren, Änderung ausführen, zweiten Lauf bewerten und Rückbau dokumentieren. Dadurch wird sichtbar, ob Ansible wirklich einen Zielzustand beschreibt oder nur zufällig einen Befehl erfolgreich ausgeführt hat.
| Prüffrage | Erwartete Antwort |
|---|---|
| Welche Hosts sind betroffen? | Pattern, Gruppe, --limit und Inventory-Ausgabe sind dokumentiert. |
| Welche Datenquellen wirken? | group_vars, host_vars, Defaults, Extra Vars und Facts sind bekannt. |
| Welche Rechte werden benötigt? | become ist tasknah und fachlich begründet. |
| Wie wird Erfolg bewiesen? | Syntaxcheck, Check Mode, Diff, Play Recap und zweiter Lauf liegen vor. |
Beispielablauf für Execution Environments
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --list-hosts
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
Der Ablauf ist bewusst vollständig. In echten Teams werden einzelne Schritte oft automatisiert, aber nicht übersprungen. CI kann Syntaxcheck und Linting übernehmen; die fachliche Bewertung von Scope, Rechten, Secret-Flows und Rollout-Risiko bleibt eine Review-Aufgabe.
Review-Kriterien für Execution Environments
- Inventory und Pattern sind enger als
all, sofern kein guter Grund dokumentiert ist. - Module aus
ansible.builtinoder klar geprüften Collections werden bevorzugt. - Shell- oder Command-Tasks haben
changed_when,failed_whenoder eine Begründung. - Variablen sind nachvollziehbar platziert und überschreiben sich nicht überraschend.
- Secrets erscheinen nicht in Klartext, Diff-Ausgaben, Debug-Tasks oder CI-Logs.
- Das Playbook kann mehrfach laufen, ohne unnötige Änderungen zu melden.
- Rückbau, Fix-forward oder kontrolliertes Belassen des Zielzustands ist dokumentiert.
Typische Fehler bei Execution Environments
| Fehlerbild | Ursache | Diagnose |
|---|---|---|
| falsche Hosts getroffen | Pattern oder Inventory falsch verstanden | --list-hosts, ansible-inventory --host |
unreachable |
SSH, Benutzer, Python oder Netzwerkproblem | -vvvv, SSH-Test, Inventory-Variablen |
| unerwartete Änderung | Modul nicht idempotent oder falsche Datenquelle | zweiter Lauf, Diff, Variablenprüfung |
| Secret-Leak | Debug, Diff oder Log nicht begrenzt | no_log, Vault, CI-Artefakte prüfen |
| Handler läuft nicht | kein changed oder falscher Handlername |
Task-Ergebnis und Handler-Name prüfen |
Betriebsnotiz für Execution Environments
Für produktionsnahe Nutzung muss aus dem Lab ein Runbook entstehen. Dieses Runbook nennt Zielsysteme, Verantwortliche, Vorbedingungen, Stop-Kriterien, erwartete Dauer, Validierung, Monitoring und Rückbau. Ohne diese Angaben bleibt ein Playbook technisch ausführbar, aber nicht betriebsreif.
Execution Environments ist ein praktischer Baustein des Ansible-Workshops. Entscheidend ist, dass der gewünschte Zustand nicht nur beschrieben, sondern vor und nach der Ausführung überprüft wird. Ein guter Ansible-Arbeitsablauf beantwortet immer vier Fragen: Welche Hosts sind betroffen, welche Änderung wird durchgeführt, welche Rechte werden dafür benötigt und wie wird der Erfolg gemessen?
| Aspekt | Bedeutung im Workshop | Prüfpunkt |
|---|---|---|
| Scope | Inventory, Pattern, --limit, Tags und Umgebung bestimmen die Zielsysteme. |
ansible-inventory --graph, ansible-playbook --list-hosts |
| Zustand | Module sollen Zielzustände modellieren und wiederholbare Ergebnisse liefern. | zweiter Lauf ohne unnötige Änderungen |
| Rechte | become wird tasknah und begründet eingesetzt. |
kein globales Privileg ohne Review |
| Evidence | Ausgaben, Diffs und Zusammenfassung werden dokumentiert. | Play Recap, Diff, Evidence-Datei |
Typische Kommandos:
ansible --version
ansible-config dump --only-changed
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
Für Reviews gilt: Ein Playbook ist erst dann gut genug, wenn es seine Zielgruppe beweist, seine Datenquellen offenlegt, sensible Werte schützt, Fehlerpfade beschreibt und nach einem zweiten Lauf stabil bleibt. Wenn ein Modul Check Mode oder Diff Mode nicht vollständig unterstützt, muss die Einschränkung im Runbook stehen.
Typische Fehler in diesem Bereich sind zu breite Patterns wie all, unklare Variablenquellen, Shell-Workarounds ohne Idempotenz, Secrets in Debug-Ausgaben, fehlende Rollback-Notiz und fehlende Trennung zwischen Lab- und Produktionsinventory.
15. Betriebs- und Security-Entscheidungen
Vertiefung und Abgabebeispiel zu Betriebs- und Security-Entscheidungen
Eine vollständige Bearbeitung von Betriebs- und Security-Entscheidungen besteht aus einem technischen Artefakt und einer kurzen fachlichen Einordnung. Das Artefakt kann ein Inventory, ein Playbook, eine Rolle, ein Template, eine Vault-Datei mit Dummy-Werten, eine CI-Konfiguration oder eine Evidence-Datei sein. Die Einordnung erklärt, warum dieser Weg gewählt wurde und welche Alternative bewusst nicht verwendet wurde.
| Abgabeteil | Inhalt | Mindestqualität |
|---|---|---|
| Zielbeschreibung | Was soll nach dem Lauf gelten? | messbar und ohne implizite Annahmen |
| Scope-Nachweis | Welche Hosts sind betroffen? | Ausgabe von --list-hosts oder Inventory-Graph |
| Umsetzung | Welche Dateien wurden geändert? | kleine, reviewbare YAML-Dateien |
| Validierung | Wie wurde geprüft? | Syntaxcheck, Check Mode, Diff, echter Lauf, zweiter Lauf |
| Risikoentscheidung | Was kann schiefgehen? | Rechte, Secrets, externe Abhängigkeiten und Rollback betrachtet |
Minimalartefakte für Betriebs- und Security-Entscheidungen
submission/
inventory/hosts.yml
playbooks/site.yml
evidence.md
cleanup.md
Für Rollen oder Collections wird die Struktur erweitert:
submission/
ansible.cfg
collections/requirements.yml
inventory/hosts.yml
roles/<role>/defaults/main.yml
roles/<role>/tasks/main.yml
roles/<role>/handlers/main.yml
playbooks/site.yml
evidence.md
Prüferwartung für Betriebs- und Security-Entscheidungen
Eine prüfbare Lösung muss auch für Personen verständlich sein, die den Lauf nicht selbst ausgeführt haben. Deshalb reichen Screenshots oder unkommentierte Terminalausgaben nicht aus. Gute Evidence beschreibt Kontext, Kommando, relevante Ausgabe und Bewertung. Wenn ein Modul im Check Mode abweicht, wird diese Einschränkung ausdrücklich genannt.
Transfer in reale Teams
Im Teamkontext wird Betriebs- und Security-Entscheidungen zusätzlich mit Code Review, Branch-Regeln, CI, Rollenownership, Release-Notizen und Betriebsfreigabe verbunden. Für produktionsnahe Nutzung werden außerdem Zuständigkeit, Wartungsfenster, Monitoring, Alarmierung und Rollback-Kriterien dokumentiert.
Praxisbezug zu Betriebs- und Security-Entscheidungen
Dieser Abschnitt ist nicht als reine Begriffserklärung gedacht. Im Workshop wird Betriebs- und Security-Entscheidungen immer an einem konkreten Ablauf überprüft: Inventory lesen, Zielhosts beweisen, Playbook prüfen, Änderung simulieren, Änderung ausführen, zweiten Lauf bewerten und Rückbau dokumentieren. Dadurch wird sichtbar, ob Ansible wirklich einen Zielzustand beschreibt oder nur zufällig einen Befehl erfolgreich ausgeführt hat.
| Prüffrage | Erwartete Antwort |
|---|---|
| Welche Hosts sind betroffen? | Pattern, Gruppe, --limit und Inventory-Ausgabe sind dokumentiert. |
| Welche Datenquellen wirken? | group_vars, host_vars, Defaults, Extra Vars und Facts sind bekannt. |
| Welche Rechte werden benötigt? | become ist tasknah und fachlich begründet. |
| Wie wird Erfolg bewiesen? | Syntaxcheck, Check Mode, Diff, Play Recap und zweiter Lauf liegen vor. |
Beispielablauf für Betriebs- und Security-Entscheidungen
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --list-hosts
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
Der Ablauf ist bewusst vollständig. In echten Teams werden einzelne Schritte oft automatisiert, aber nicht übersprungen. CI kann Syntaxcheck und Linting übernehmen; die fachliche Bewertung von Scope, Rechten, Secret-Flows und Rollout-Risiko bleibt eine Review-Aufgabe.
Review-Kriterien für Betriebs- und Security-Entscheidungen
- Inventory und Pattern sind enger als
all, sofern kein guter Grund dokumentiert ist. - Module aus
ansible.builtinoder klar geprüften Collections werden bevorzugt. - Shell- oder Command-Tasks haben
changed_when,failed_whenoder eine Begründung. - Variablen sind nachvollziehbar platziert und überschreiben sich nicht überraschend.
- Secrets erscheinen nicht in Klartext, Diff-Ausgaben, Debug-Tasks oder CI-Logs.
- Das Playbook kann mehrfach laufen, ohne unnötige Änderungen zu melden.
- Rückbau, Fix-forward oder kontrolliertes Belassen des Zielzustands ist dokumentiert.
Typische Fehler bei Betriebs- und Security-Entscheidungen
| Fehlerbild | Ursache | Diagnose |
|---|---|---|
| falsche Hosts getroffen | Pattern oder Inventory falsch verstanden | --list-hosts, ansible-inventory --host |
unreachable |
SSH, Benutzer, Python oder Netzwerkproblem | -vvvv, SSH-Test, Inventory-Variablen |
| unerwartete Änderung | Modul nicht idempotent oder falsche Datenquelle | zweiter Lauf, Diff, Variablenprüfung |
| Secret-Leak | Debug, Diff oder Log nicht begrenzt | no_log, Vault, CI-Artefakte prüfen |
| Handler läuft nicht | kein changed oder falscher Handlername |
Task-Ergebnis und Handler-Name prüfen |
Betriebsnotiz für Betriebs- und Security-Entscheidungen
Für produktionsnahe Nutzung muss aus dem Lab ein Runbook entstehen. Dieses Runbook nennt Zielsysteme, Verantwortliche, Vorbedingungen, Stop-Kriterien, erwartete Dauer, Validierung, Monitoring und Rückbau. Ohne diese Angaben bleibt ein Playbook technisch ausführbar, aber nicht betriebsreif.
Betriebs- und Security-Entscheidungen ist ein praktischer Baustein des Ansible-Workshops. Entscheidend ist, dass der gewünschte Zustand nicht nur beschrieben, sondern vor und nach der Ausführung überprüft wird. Ein guter Ansible-Arbeitsablauf beantwortet immer vier Fragen: Welche Hosts sind betroffen, welche Änderung wird durchgeführt, welche Rechte werden dafür benötigt und wie wird der Erfolg gemessen?
| Aspekt | Bedeutung im Workshop | Prüfpunkt |
|---|---|---|
| Scope | Inventory, Pattern, --limit, Tags und Umgebung bestimmen die Zielsysteme. |
ansible-inventory --graph, ansible-playbook --list-hosts |
| Zustand | Module sollen Zielzustände modellieren und wiederholbare Ergebnisse liefern. | zweiter Lauf ohne unnötige Änderungen |
| Rechte | become wird tasknah und begründet eingesetzt. |
kein globales Privileg ohne Review |
| Evidence | Ausgaben, Diffs und Zusammenfassung werden dokumentiert. | Play Recap, Diff, Evidence-Datei |
Typische Kommandos:
ansible --version
ansible-config dump --only-changed
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
Für Reviews gilt: Ein Playbook ist erst dann gut genug, wenn es seine Zielgruppe beweist, seine Datenquellen offenlegt, sensible Werte schützt, Fehlerpfade beschreibt und nach einem zweiten Lauf stabil bleibt. Wenn ein Modul Check Mode oder Diff Mode nicht vollständig unterstützt, muss die Einschränkung im Runbook stehen.
Typische Fehler in diesem Bereich sind zu breite Patterns wie all, unklare Variablenquellen, Shell-Workarounds ohne Idempotenz, Secrets in Debug-Ausgaben, fehlende Rollback-Notiz und fehlende Trennung zwischen Lab- und Produktionsinventory.
16. Review-Checkliste
Vertiefung und Abgabebeispiel zu Review-Checkliste
Eine vollständige Bearbeitung von Review-Checkliste besteht aus einem technischen Artefakt und einer kurzen fachlichen Einordnung. Das Artefakt kann ein Inventory, ein Playbook, eine Rolle, ein Template, eine Vault-Datei mit Dummy-Werten, eine CI-Konfiguration oder eine Evidence-Datei sein. Die Einordnung erklärt, warum dieser Weg gewählt wurde und welche Alternative bewusst nicht verwendet wurde.
| Abgabeteil | Inhalt | Mindestqualität |
|---|---|---|
| Zielbeschreibung | Was soll nach dem Lauf gelten? | messbar und ohne implizite Annahmen |
| Scope-Nachweis | Welche Hosts sind betroffen? | Ausgabe von --list-hosts oder Inventory-Graph |
| Umsetzung | Welche Dateien wurden geändert? | kleine, reviewbare YAML-Dateien |
| Validierung | Wie wurde geprüft? | Syntaxcheck, Check Mode, Diff, echter Lauf, zweiter Lauf |
| Risikoentscheidung | Was kann schiefgehen? | Rechte, Secrets, externe Abhängigkeiten und Rollback betrachtet |
Minimalartefakte für Review-Checkliste
submission/
inventory/hosts.yml
playbooks/site.yml
evidence.md
cleanup.md
Für Rollen oder Collections wird die Struktur erweitert:
submission/
ansible.cfg
collections/requirements.yml
inventory/hosts.yml
roles/<role>/defaults/main.yml
roles/<role>/tasks/main.yml
roles/<role>/handlers/main.yml
playbooks/site.yml
evidence.md
Prüferwartung für Review-Checkliste
Eine prüfbare Lösung muss auch für Personen verständlich sein, die den Lauf nicht selbst ausgeführt haben. Deshalb reichen Screenshots oder unkommentierte Terminalausgaben nicht aus. Gute Evidence beschreibt Kontext, Kommando, relevante Ausgabe und Bewertung. Wenn ein Modul im Check Mode abweicht, wird diese Einschränkung ausdrücklich genannt.
Transfer in reale Teams
Im Teamkontext wird Review-Checkliste zusätzlich mit Code Review, Branch-Regeln, CI, Rollenownership, Release-Notizen und Betriebsfreigabe verbunden. Für produktionsnahe Nutzung werden außerdem Zuständigkeit, Wartungsfenster, Monitoring, Alarmierung und Rollback-Kriterien dokumentiert.
Praxisbezug zu Review-Checkliste
Dieser Abschnitt ist nicht als reine Begriffserklärung gedacht. Im Workshop wird Review-Checkliste immer an einem konkreten Ablauf überprüft: Inventory lesen, Zielhosts beweisen, Playbook prüfen, Änderung simulieren, Änderung ausführen, zweiten Lauf bewerten und Rückbau dokumentieren. Dadurch wird sichtbar, ob Ansible wirklich einen Zielzustand beschreibt oder nur zufällig einen Befehl erfolgreich ausgeführt hat.
| Prüffrage | Erwartete Antwort |
|---|---|
| Welche Hosts sind betroffen? | Pattern, Gruppe, --limit und Inventory-Ausgabe sind dokumentiert. |
| Welche Datenquellen wirken? | group_vars, host_vars, Defaults, Extra Vars und Facts sind bekannt. |
| Welche Rechte werden benötigt? | become ist tasknah und fachlich begründet. |
| Wie wird Erfolg bewiesen? | Syntaxcheck, Check Mode, Diff, Play Recap und zweiter Lauf liegen vor. |
Beispielablauf für Review-Checkliste
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --list-hosts
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
Der Ablauf ist bewusst vollständig. In echten Teams werden einzelne Schritte oft automatisiert, aber nicht übersprungen. CI kann Syntaxcheck und Linting übernehmen; die fachliche Bewertung von Scope, Rechten, Secret-Flows und Rollout-Risiko bleibt eine Review-Aufgabe.
Review-Kriterien für Review-Checkliste
- Inventory und Pattern sind enger als
all, sofern kein guter Grund dokumentiert ist. - Module aus
ansible.builtinoder klar geprüften Collections werden bevorzugt. - Shell- oder Command-Tasks haben
changed_when,failed_whenoder eine Begründung. - Variablen sind nachvollziehbar platziert und überschreiben sich nicht überraschend.
- Secrets erscheinen nicht in Klartext, Diff-Ausgaben, Debug-Tasks oder CI-Logs.
- Das Playbook kann mehrfach laufen, ohne unnötige Änderungen zu melden.
- Rückbau, Fix-forward oder kontrolliertes Belassen des Zielzustands ist dokumentiert.
Typische Fehler bei Review-Checkliste
| Fehlerbild | Ursache | Diagnose |
|---|---|---|
| falsche Hosts getroffen | Pattern oder Inventory falsch verstanden | --list-hosts, ansible-inventory --host |
unreachable |
SSH, Benutzer, Python oder Netzwerkproblem | -vvvv, SSH-Test, Inventory-Variablen |
| unerwartete Änderung | Modul nicht idempotent oder falsche Datenquelle | zweiter Lauf, Diff, Variablenprüfung |
| Secret-Leak | Debug, Diff oder Log nicht begrenzt | no_log, Vault, CI-Artefakte prüfen |
| Handler läuft nicht | kein changed oder falscher Handlername |
Task-Ergebnis und Handler-Name prüfen |
Betriebsnotiz für Review-Checkliste
Für produktionsnahe Nutzung muss aus dem Lab ein Runbook entstehen. Dieses Runbook nennt Zielsysteme, Verantwortliche, Vorbedingungen, Stop-Kriterien, erwartete Dauer, Validierung, Monitoring und Rückbau. Ohne diese Angaben bleibt ein Playbook technisch ausführbar, aber nicht betriebsreif.
Review-Checkliste ist ein praktischer Baustein des Ansible-Workshops. Entscheidend ist, dass der gewünschte Zustand nicht nur beschrieben, sondern vor und nach der Ausführung überprüft wird. Ein guter Ansible-Arbeitsablauf beantwortet immer vier Fragen: Welche Hosts sind betroffen, welche Änderung wird durchgeführt, welche Rechte werden dafür benötigt und wie wird der Erfolg gemessen?
| Aspekt | Bedeutung im Workshop | Prüfpunkt |
|---|---|---|
| Scope | Inventory, Pattern, --limit, Tags und Umgebung bestimmen die Zielsysteme. |
ansible-inventory --graph, ansible-playbook --list-hosts |
| Zustand | Module sollen Zielzustände modellieren und wiederholbare Ergebnisse liefern. | zweiter Lauf ohne unnötige Änderungen |
| Rechte | become wird tasknah und begründet eingesetzt. |
kein globales Privileg ohne Review |
| Evidence | Ausgaben, Diffs und Zusammenfassung werden dokumentiert. | Play Recap, Diff, Evidence-Datei |
Typische Kommandos:
ansible --version
ansible-config dump --only-changed
ansible-inventory -i inventory/hosts.yml --graph
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --syntax-check
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check --diff
Für Reviews gilt: Ein Playbook ist erst dann gut genug, wenn es seine Zielgruppe beweist, seine Datenquellen offenlegt, sensible Werte schützt, Fehlerpfade beschreibt und nach einem zweiten Lauf stabil bleibt. Wenn ein Modul Check Mode oder Diff Mode nicht vollständig unterstützt, muss die Einschränkung im Runbook stehen.
Typische Fehler in diesem Bereich sind zu breite Patterns wie all, unklare Variablenquellen, Shell-Workarounds ohne Idempotenz, Secrets in Debug-Ausgaben, fehlende Rollback-Notiz und fehlende Trennung zwischen Lab- und Produktionsinventory.
Quellen und weiterführende Referenzen
- Offizielle Ansible Community Documentation: https://docs.ansible.com/
- Ansible Getting Started: https://docs.ansible.com/projects/ansible/latest/getting_started/index.html
- Inventory Guide: https://docs.ansible.com/projects/ansible/latest/inventory_guide/index.html
- Playbook Guide: https://docs.ansible.com/projects/ansible/latest/playbook_guide/index.html
- Module Index: https://docs.ansible.com/ansible/latest/collections/ansible/builtin/index.html
- Vault Guide: https://docs.ansible.com/projects/ansible/latest/vault_guide/index.html
- Ansible Lint: https://ansible.readthedocs.io/projects/lint/
- Molecule: https://ansible.readthedocs.io/projects/molecule/
- AWX: https://github.com/ansible/awx
- Red Hat Certifications: https://www.redhat.com/en/services/certifications