# Infrastructure as Code (IaC): Architektur & Paradigmen der Automatisierung

TL;DR / Management Summary In der modernen IT-Welt wird Infrastruktur nicht mehr “geklickt”, sondern “geschrieben”. Infrastructure as Code (IaC) behandelt Server, Netzwerke und Datenbanken wie Software-Code. Ein Senior Admin nutzt IaC, um Umgebungen reproduzierbar zu machen, menschliche Fehler zu eliminieren und die gesamte Infrastruktur via Git zu versionieren. Das Kernkonzept ist die Idempotenz: Ein Skript kann 100x laufen und sorgt immer für den exakt gleichen Zielzustand.


# 1. Deklarativ vs. Imperativ

Das ‘Was’ vs. das ‘Wie’.

  1. Imperativ (Skripting): Sie sagen dem System jeden Schritt einzeln.
    • Befehl: “Erstelle eine VM, dann installiere Nginx, dann ändere die IP”.
    • Problem: Läuft das Skript zweimal, gibt es Fehler (z.B. “VM existiert schon”).
  2. Deklarativ (Modernes IaC): Sie beschreiben nur den Zielzustand.
    • Befehl: “Ich möchte einen Nginx-Server mit IP X”.
    • Vorteil: Das Tool (z.B. Terraform) prüft den Ist-Zustand und führt nur die Änderungen aus, die nötig sind (Idempotenz).

# 2. Die Vorteile von IaC

Warum wir uns die Arbeit machen.


# 3. Deep Dive: Immutable Infrastructure

Ersetzen statt Reparieren.

In einer IaC-Welt reparieren wir keine Server mehr.


# 4. Day-2 Operations: Configuration Drift

Der Feind der Automatisierung.

Configuration Drift passiert, wenn ein Admin manuell in der Proxmox-GUI eine Einstellung ändert, die nicht im Code steht.


# 5. Troubleshooting & “War Stories”

Wenn der Code Amok läuft.

# Top 3 Fehlerbilder

  1. Symptom: terraform apply schlägt fehl, weil das Passwort am Host manuell geändert wurde.

    • Ursache: Die Authentifizierung der API-Schnittstelle (Artikel 712) wurde unterbrochen.
  2. Symptom: “State File Locked”.

    • Ursache: Zwei Admins versuchen gleichzeitig, die Infrastruktur zu ändern.
    • Lösung: Nutzen Sie zwingend Remote Backends mit Locking-Support.
  3. Symptom: Versehentliches Löschen von Ressourcen.

    • Fix: Nutzen Sie prevent_destroy Flags im Code für produktive Datenbanken.

# “War Story”: Die “Schatten”-Dokumentation

Ein Unternehmen hatte ein perfektes IaC-Setup. Ein neuer Mitarbeiter kannte das Tool nicht und änderte via GUI den RAM aller VMs, um ein Performance-Problem zu lösen. Das Ergebnis: Am nächsten Morgen lief die automatisierte Wartungspipeline. Da der Code noch die alten RAM-Werte enthielt, setzte Terraform alle 200 VMs auf den alten Stand zurück. Die Applikationen stürzten unter der Last wieder ab. Lehre: IaC funktioniert nur, wenn die GUI für manuelle Änderungen gesperrt ist (ReadOnly-Permissions für Admins im Alltag). Der Code muss die einzige Quelle der Wahrheit bleiben.


# 6. Monitoring & Reporting

Code-Integrität.

# Linting & Validierung

Integrieren Sie Checks in Ihre Pipeline:


# 7. Fazit & Empfehlung

IaC ist die Eintrittskarte in die Welt von DevOps und Cloud-Scale.


# Anhang: Die IaC-Werkzeugkiste

Werkzeug Typ Hauptnutzen
Terraform Deklarativ Provisionierung (Hardware)
Ansible Hybrid Konfiguration (Software)
Pulumi Programmatisch IaC via Python/TypeScript
Cloud-Init Boot-Script Erstkonfiguration (OS)

# Referenzen