Ansible Workshop – Übersicht
Überblick
Dieser Workshop führt von den Grundlagen agentloser Automatisierung bis zu sicherem, reviewbarem und betriebsnahen Einsatz in Teams. Der Aufbau folgt dem Kubernetes-Workshop: zentrale Dokumentation in docs/, vier Workshop-Level in workshops/, Übungen in exercises/, Prüfungen und Musterlösungen in assessments/, lauffähige Beispiele in examples/ und Setup-Hilfen in scripts/.
Der Fokus liegt auf realen Ansible-Konzepten:
- Control Node, Managed Nodes, Inventory, Gruppen und Patterns
- Ad-hoc-Kommandos, Playbooks, Plays, Tasks, Module und Handler
- Idempotenz, Check Mode, Diff Mode, Syntaxcheck und sichere Zielauswahl
- Variablen, Facts, Templates, Schleifen, Bedingungen und Fehlerbehandlung
- Rollen, Includes, Imports, Collections und Projektstruktur
- Vault, Secret-Flows,
become, Least Privilege und Supply-Chain-Risiken - CI, ansible-lint, Molecule, Runbooks, Rollouts und Betriebsnachweise
- AWX, Ansible Automation Platform und Execution Environments als Plattformthemen
Quickstart
Workshop-Material nutzen
Die Unterlagen stehen direkt im Orthevs Wiki bereit. Die Praxismodule sind auf der Workshop-Seite als ZIP verfügbar.
Übungsumgebung auswählen
| Umgebung | Beschreibung | Dokumentation |
|---|---|---|
| WSL | Windows-Systeme mit Ubuntu unter WSL | Ubuntu unter WSL einrichten |
| VM | lokale oder remote Ubuntu-VMs | Ubuntu in einer VM einrichten |
| Bare Metal | direkte Installation auf physischer Hardware | Ubuntu auf Bare Metal einrichten |
| Remote/Cloud | vorbereitete Linux-Hosts oder Cloud-Instanzen | Remote- und Cloud-Umgebung vorbereiten |
Lab-Umgebung provisionieren
chmod +x scripts/provision_ansible.sh
./scripts/provision_ansible.sh --dry-run
sudo ./scripts/provision_ansible.sh
Ansible prüfen
ansible --version
ansible-config dump --only-changed
ansible-inventory -i examples/01-inventory-basics/inventory/localhost.yml --graph
ansible lab -i examples/01-inventory-basics/inventory/localhost.yml -m ansible.builtin.ping
Workshop starten
Empfohlene Reihenfolge:
docs/ -> workshops/ -> examples/ -> exercises/ -> assessments/
Zielgruppe
Dieser Workshop richtet sich an Developer mit Betriebsverantwortung, System Engineers, DevOps Engineers, Platform Engineers, SREs, Administratoren, Tech Leads und Security Engineers. Ziel ist nicht nur Bedienwissen, sondern ein belastbares Arbeitsmodell: Änderungen sind versioniert, scope-begrenzt, idempotent, prüfbar, rückbaubar und sicher reviewbar.
Lernpfad
| Level | Schwerpunkt | Ergebnis |
|---|---|---|
| Fundamentals | Control Node, Inventory, Ad-hoc, erstes Playbook, Module, Handler, Idempotenz, Check/Diff | Du kannst kleine Labs sicher automatisieren und Ergebnisse validieren. |
| Intermediate | Variablen, Facts, Templates, Rollen, Includes, Blocks, Vault-Grundlagen | Du machst Playbooks wartbar und wiederverwendbar. |
| Professional | Repository-Standards, Collections, CI, Molecule, Orchestrierung, mehrere Inventories, Runbooks | Du betreibst Ansible als Team- und Betriebsmodell. |
| Advanced + Security | Threat Modeling, Least Privilege, Secret-Flows, Supply Chain, Execution Environments, Security Review | Du kannst Risiken bewerten und sichere Automatisierungsgrenzen ziehen. |
Aufbau
Workshop-Aufbau
.
├── assessments/
├── docs/
├── examples/
├── exercises/
├── media/
│ └── pics/
├── scripts/
├── workshops/
├── LICENSE.md
└── README-DE.md
| Pfad | Zweck |
|---|---|
docs/ |
Referenzdokumentation, Environment-Anleitungen, Zertifizierungen und ergänzende Konzepte |
workshops/*-DE.md |
Deutsche Workshop-Level |
workshops/*-EN.md |
Englische Workshop-Level |
exercises/ |
Übungen, Aufgaben und Abgaben je Level |
assessments/ |
Lernkontrollen, Prüfungsfragen und Musterlösungen |
examples/ |
lauffähige Ansible-Beispiele, Rollen, Inventories und lokale Demonstrationen |
scripts/ |
Hilfsskripte für Setup, Validierung oder Provisionierung |
media/pics/ |
Bilder und visuelle Materialien |
Voraussetzungen
- Linux-, SSH- und YAML-Grundkenntnisse
- Zugriff auf eine Linux-Shell mit Python 3
- Git und ein Editor
- Optional: zwei lokale Test-VMs oder Container für realistische Managed Nodes
- Bereitschaft, jeden Lauf mit Inventory-, Scope- und Idempotenzprüfung zu dokumentieren
Link-Konvention
Die primären Dateien enthalten Technologie und Sprache im Namen, zum Beispiel docs/curriculum-ansible-DE.md, workshops/01-fundamentals-ansible-EN.md oder assessments/03-professional-ansible-solution-DE.md. Diese Konvention entspricht dem Kubernetes-Workshop.
Offizielle Dokumentation
Tools und Projekte
Sprach- und Code-Konvention
- Markdown-Inhalte werden in Deutsch und Englisch gepflegt.
- Code, Kommandos, Dateinamen, Variablen und Code-Kommentare bleiben Englisch.
- Deutsche Fließtexte verwenden echte Umlaute.
Arbeitsweise
- Branch erstellen.
- Inventory prüfen.
- Scope mit
--list-hostsbeweisen. - Syntaxcheck ausführen.
- Check Mode und Diff Mode verwenden, sofern unterstützt.
- Änderung begrenzt ausführen.
- Zweiten Lauf zur Idempotenz prüfen.
- Evidence und Rückbau dokumentieren.
Lizenz
Das Lernmaterial steht, sofern nicht anders angegeben, unter CC BY-NC-SA 4.0. Bilder und visuelle Medien unter media/ sind davon ausgenommen und dürfen nur im Rahmen dieses Workshops angezeigt werden.
Detaillierte Orientierung
So nutzt du diesen Workshop
Beginne nicht mit einem beliebigen Playbook. Lies zuerst das Curriculum, danach das passende Workshop-Level, dann das Beispiel und erst danach die Übung. Diese Reihenfolge verhindert, dass du Ansible als Sammlung einzelner Befehle behandelst. Der Workshop ist als Lernpfad aufgebaut: Konzepte erklären die Begriffe, Workshops erklären den Ablauf, Beispiele zeigen kleine Realisierungen, Übungen erzwingen eigene Arbeit und Assessments prüfen Reviewfähigkeit.
Was eine vollständige Ansible-Abgabe enthält
| Artefakt | Zweck |
|---|---|
inventory/hosts.yml |
Zielsysteme, Gruppen und Verbindungsdaten nachvollziehbar beschreiben |
playbooks/site.yml |
gewünschten Zustand oder Diagnoseablauf deklarieren |
roles/ |
wiederverwendbare Aufgaben kapseln |
group_vars/ und host_vars/ |
Datenquellen trennen und Präzedenz sichtbar machen |
collections/requirements.yml |
externe Abhängigkeiten versionieren |
evidence.md |
Scope, Check Mode, Diff, Run und zweiten Lauf dokumentieren |
cleanup.md |
Rückbau oder bewusstes Belassen des Zielzustands erklären |
Minimaler sicherer Ablauf
ansible --version
ansible-config dump --only-changed
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
Reviewfragen vor produktionsnaher Nutzung
- Ist das Inventory eindeutig und versioniert?
- Sind Zielgruppen enger als
all? - Sind Secrets geschützt und werden nicht geloggt?
- Ist
becomenur dort aktiv, wo es benötigt wird? - Sind Collections gepinnt und geprüft?
- Ist der zweite Lauf idempotent?
- Sind Rollback oder Fix-forward realistisch beschrieben?
- Gibt es Monitoring- oder Evidence-Anforderungen nach dem Lauf?
Verhältnis zu anderen Werkzeugen
Ansible ersetzt nicht jedes Infrastrukturwerkzeug. Terraform oder OpenTofu sind typischerweise besser für deklarative Cloud-Ressourcen-Provisionierung. Kubernetes-native Werkzeuge sind besser für laufende Cluster-Ressourcen. Ansible ist stark, wenn vorhandene Systeme, Konfigurationen, Dienste, Dateien, Benutzer, Netzwerkgeräte oder Plattform-APIs in nachvollziehbaren Abläufen automatisiert werden sollen.
Security-Grundsatz
Ansible kann sehr breite Änderungen mit hohen Rechten ausführen. Deshalb ist die wichtigste Sicherheitsmaßnahme nicht ein einzelnes Tool, sondern ein Arbeitsmodell: enger Scope, überprüfte Credentials, minimale Privilegien, keine echten Secrets in Git, keine Secrets in Logs, überprüfte Collections, CI-Gates und dokumentierte Betriebsfreigabe.