OpenTofu Workshop – Übersicht
Überblick
Dieser Workshop führt von den Grundlagen bis zu fortgeschrittenem IaC-Betrieb und Security-Härtung. Der Aufbau orientiert sich am Kubernetes-Workshop: Referenzdokumente, vier Workshop-Level, Übungen, Assessments, Lösungen, offizielle Quellen und 31 praktische Beispiele.
Der Fokus liegt auf realer OpenTofu-Praxis:
- HCL, Root-Module, Provider, Ressourcen, Datenquellen, Variablen und Outputs verstehen
- Plan, Apply, State, Backend und Locking fachlich einordnen
- Module, Dependencies, Refactoring, Import und Tests sicher anwenden
- CI/CD, TACOS, Policy as Code, Drift und Promotion gestalten
- State-Sicherheit, Secrets, Provider-Pinning, Supply Chain und Least Privilege bewerten
- Incident Response für State-Probleme, Drift und Credential-Leaks strukturieren
Quickstart
# Workshop content is provided through the Orthevs Academy.
chmod +x scripts/provision_opentofu.sh
./scripts/provision_opentofu.sh --dry-run
Prüfe danach die lokale Toolbasis:
tofu version || true
git --version
python3 --version
Lernpfad
| Level | Schwerpunkt | Workshop | Übungen | Assessment |
|---|---|---|---|---|
| 01 | Grundlagen | Grundlagen Workshop | Grundlagen Übungen | Grundlagen Assessment |
| 02 | Intermediate | Intermediate Workshop | Intermediate Übungen | Intermediate Assessment |
| 03 | Professional | Professional Workshop | Professional Übungen | Professional Assessment |
| 04 | Advanced Security | Advanced Security Workshop | Advanced Security Übungen | Advanced Security Assessment |
Dokumentation
Beispiele
Die Beispiele liegen unter examples/README.md. Jedes Beispiel enthält eine Hauptbeschreibung, eine deutsche Detailbeschreibung, eine englische Detailbeschreibung, validierbare HCL-/JSON-/Policy-Artefakte und ein run.sh, das ein lokales IaC-Lab unter work/ erzeugt.
Workshop-Aufbau
.
├── assessments/
├── docs/
├── examples/
├── exercises/
├── media/
│ └── pics/
├── scripts/
├── workshops/
├── LICENSE.md
└── README-DE.md
Wichtige Sicherheitsregel
OpenTofu-State kann sensible Daten enthalten. Verwende im Workshop keine echten Cloud-Zugangsdaten, keine produktiven Backends und keine realen Secret-Werte. Beispielkonfigurationen sind für lokale Struktur- und Review-Übungen gedacht.
Offizielle Quellen und Abgrenzung
Die Inhalte orientieren sich an öffentlich dokumentierten OpenTofu-Quellen. Cloud-Provider, TACOS-Plattformen, Policy-Engines und Secret-Werkzeuge werden nur dort erwähnt, wo sie typische OpenTofu-Workflows erklären. Beispielartefakte sind keine Anleitung zum Ausführen gegen produktive Cloud-Accounts.
- OpenTofu: https://opentofu.org/
- OpenTofu Language Documentation: https://opentofu.org/docs/language/
- Provider Requirements: https://opentofu.org/docs/language/providers/requirements/
- State: https://opentofu.org/docs/language/state/
- Backend Configuration: https://opentofu.org/docs/language/settings/backends/configuration/
- OpenTofu v1.x Compatibility Promises: https://opentofu.org/docs/language/v1-compatibility-promises/
- OpenTofu bei CNCF: https://www.cncf.io/projects/opentofu/
- Linux Foundation: Getting Started with OpenTofu: https://training.linuxfoundation.org/express-learning/getting-started-with-opentofu-lfel1009/
- Linux Foundation Certification Catalog: https://training.linuxfoundation.org/certification-catalog/
Lizenz
Siehe LICENSE.md.
Zusätzliche Review-Drills
Nutze diese Drills, wenn die Hauptaufgabe abgeschlossen ist und zusätzliche betriebliche Begründung geübt werden soll. Sie sind bewusst nachweisorientiert und können mit lokalen OpenTofu-Artefakten beantwortet werden.
Drill 01: Root-Modul
- Benenne, welche Modul-, Provider-, Backend- oder State-Grenze durch
Root-Modulbetroffen ist. - Nenne einen Befehl oder ein HCL-Feld, das einen Nachweis liefert.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Recovery-Pfad für eine gemeinsam genutzte IaC-Plattform.
Drill 02: Provider-Version
- Benenne, welche Modul-, Provider-, Backend- oder State-Grenze durch
Provider-Versionbetroffen ist. - Nenne einen Befehl oder ein HCL-Feld, das einen Nachweis liefert.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Recovery-Pfad für eine gemeinsam genutzte IaC-Plattform.
Drill 03: State Snapshot
- Benenne, welche Modul-, Provider-, Backend- oder State-Grenze durch
State Snapshotbetroffen ist. - Nenne einen Befehl oder ein HCL-Feld, das einen Nachweis liefert.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Recovery-Pfad für eine gemeinsam genutzte IaC-Plattform.
Drill 04: Backend Locking
- Benenne, welche Modul-, Provider-, Backend- oder State-Grenze durch
Backend Lockingbetroffen ist. - Nenne einen Befehl oder ein HCL-Feld, das einen Nachweis liefert.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Recovery-Pfad für eine gemeinsam genutzte IaC-Plattform.
Drill 05: Plan-Diff
- Benenne, welche Modul-, Provider-, Backend- oder State-Grenze durch
Plan-Diffbetroffen ist. - Nenne einen Befehl oder ein HCL-Feld, das einen Nachweis liefert.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Recovery-Pfad für eine gemeinsam genutzte IaC-Plattform.
Drill 06: Modul-Output
- Benenne, welche Modul-, Provider-, Backend- oder State-Grenze durch
Modul-Outputbetroffen ist. - Nenne einen Befehl oder ein HCL-Feld, das einen Nachweis liefert.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Recovery-Pfad für eine gemeinsam genutzte IaC-Plattform.
Drill 07: Sensitive Value
- Benenne, welche Modul-, Provider-, Backend- oder State-Grenze durch
Sensitive Valuebetroffen ist. - Nenne einen Befehl oder ein HCL-Feld, das einen Nachweis liefert.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Recovery-Pfad für eine gemeinsam genutzte IaC-Plattform.
Drill 08: Policy-Gate
- Benenne, welche Modul-, Provider-, Backend- oder State-Grenze durch
Policy-Gatebetroffen ist. - Nenne einen Befehl oder ein HCL-Feld, das einen Nachweis liefert.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Recovery-Pfad für eine gemeinsam genutzte IaC-Plattform.
Drill 09: Import
- Benenne, welche Modul-, Provider-, Backend- oder State-Grenze durch
Importbetroffen ist. - Nenne einen Befehl oder ein HCL-Feld, das einen Nachweis liefert.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Recovery-Pfad für eine gemeinsam genutzte IaC-Plattform.
Drill 10: Moved Block
- Benenne, welche Modul-, Provider-, Backend- oder State-Grenze durch
Moved Blockbetroffen ist. - Nenne einen Befehl oder ein HCL-Feld, das einen Nachweis liefert.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Recovery-Pfad für eine gemeinsam genutzte IaC-Plattform.
Drill 11: TACOS Run
- Benenne, welche Modul-, Provider-, Backend- oder State-Grenze durch
TACOS Runbetroffen ist. - Nenne einen Befehl oder ein HCL-Feld, das einen Nachweis liefert.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Recovery-Pfad für eine gemeinsam genutzte IaC-Plattform.
Drill 12: Recovery
- Benenne, welche Modul-, Provider-, Backend- oder State-Grenze durch
Recoverybetroffen ist. - Nenne einen Befehl oder ein HCL-Feld, das einen Nachweis liefert.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Recovery-Pfad für eine gemeinsam genutzte IaC-Plattform.
Drill 13: Root-Modul
- Benenne, welche Modul-, Provider-, Backend- oder State-Grenze durch
Root-Modulbetroffen ist. - Nenne einen Befehl oder ein HCL-Feld, das einen Nachweis liefert.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Recovery-Pfad für eine gemeinsam genutzte IaC-Plattform.
Drill 14: Provider-Version
- Benenne, welche Modul-, Provider-, Backend- oder State-Grenze durch
Provider-Versionbetroffen ist. - Nenne einen Befehl oder ein HCL-Feld, das einen Nachweis liefert.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Recovery-Pfad für eine gemeinsam genutzte IaC-Plattform.
Drill 15: State Snapshot
- Benenne, welche Modul-, Provider-, Backend- oder State-Grenze durch
State Snapshotbetroffen ist. - Nenne einen Befehl oder ein HCL-Feld, das einen Nachweis liefert.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Recovery-Pfad für eine gemeinsam genutzte IaC-Plattform.
Drill 16: Backend Locking
- Benenne, welche Modul-, Provider-, Backend- oder State-Grenze durch
Backend Lockingbetroffen ist. - Nenne einen Befehl oder ein HCL-Feld, das einen Nachweis liefert.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Recovery-Pfad für eine gemeinsam genutzte IaC-Plattform.