0Pricing
DevOps Bootcamp · Lektion

Terraform-Status und Remote-Backends verwalten

Verstehen Sie den Terraform-Status, konfigurieren Sie sichere Remote-Backends, behandeln Sie Statussperren und vermeiden Sie Statusbeschädigungen in kollaborativen IaC-Pipelines.

Terraform-Status und Remote-Backends verwalten ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.

Was ist der Terraform-State

Terraform zeichnet auf, was es erstellt hat, und speichert diese Informationen in einer State-Datei (terraform.tfstate). Sie ordnet Ihre Konfiguration den tatsächlichen Cloud-Ressourcen zu.

Ohne State wüsste Terraform nicht, welche Ressourcen bereits existieren, und könnte Duplikate erstellen oder Aktualisierungen nicht durchführen.

Warum lokaler State für Teams nicht funktioniert

Standardmäßig liegt der State auf Ihrer lokalen Festplatte. In einem Team oder in CI führt das zu Problemen:

  • Andere können Ihren State nicht sehen
  • Parallele Ausführungen beschädigen die Datei
  • Die Datei enthält Geheimnisse im Klartext und könnte versehentlich committet werden

Die Lösung ist ein Remote-Backend.

Remote-Backends

Ein Remote-Backend speichert den State an einem gemeinsam genutzten, dauerhaften Ort, etwa in einem S3-Bucket, Azure Blob, GCS oder Terraform Cloud.

Damit hat jeder Pipeline-Lauf eine zentrale Quelle der Wahrheit für die aktuelle Infrastruktur.

terraform {
  backend "s3" {
    bucket = "my-tf-state"
    key    = "prod/terraform.tfstate"
    region = "us-east-1"
  }
}

State-Sperren

Wenn zwei Pipeline-Läufe gleichzeitig einen Apply durchführen, können sie den State beschädigen. State-Sperren verhindern das, indem immer nur ein Schreibvorgang gleichzeitig erlaubt wird.

Beim S3-Backend stellt eine DynamoDB-Tabelle die Sperre bereit. Terraform Cloud sperrt automatisch.

  backend "s3" {
    bucket         = "my-tf-state"
    key            = "prod/terraform.tfstate"
    dynamodb_table = "tf-locks"
  }

State verschlüsseln

State-Dateien enthalten oft vertrauliche Werte wie Passwörter und Schlüssel. Verschlüsseln Sie den State immer im Ruhezustand.

Aktivieren Sie beim S3-Backend die Bucket-Verschlüsselung und setzen Sie encrypt = true in der Backend-Konfiguration.

  backend "s3" {
    bucket  = "my-tf-state"
    key     = "prod/terraform.tfstate"
    encrypt = true
  }

Workspaces für Umgebungen

Mit Terraform-Workspaces kann eine Konfiguration mehrere State-Dateien verwalten, eine pro Umgebung.

Wechseln Sie zwischen ihnen, damit Staging und Produktion niemals denselben State gemeinsam verwenden.

terraform workspace new staging
terraform workspace select production

Plan und Apply in CI

Führen Sie in einer Pipeline terraform plan aus, um Änderungen vorab anzuzeigen (oft bei Pull Requests), und terraform apply, um sie umzusetzen (nach dem Merge in main).

Speichern Sie den Plan in einer Datei, damit Apply genau das verwendet, was geprüft wurde.

terraform plan -out=tfplan
terraform apply -auto-approve tfplan

State untersuchen

Sie können den State abfragen, um zu sehen, welche Ressourcen Terraform verwaltet.

  • terraform state list — verwaltete Ressourcen auflisten
  • terraform state show <addr> — Details zu einer Ressource anzeigen

Vermeiden Sie es, den State von Hand zu bearbeiten, und verwenden Sie stattdessen Befehle.

terraform state list
terraform state show aws_instance.web

Vorhandene Ressourcen importieren

Wenn eine Ressource außerhalb von Terraform erstellt wurde, übernehmen Sie sie mit terraform import in die Verwaltung, statt sie neu zu erstellen.

So vermeiden Sie destruktive Duplikate, wenn Sie IaC auf bestehende Infrastruktur anwenden.

terraform import aws_s3_bucket.logs my-existing-bucket

Drift behandeln

Drift entsteht, wenn jemand die Infrastruktur manuell ändert und die Realität dadurch nicht mehr mit dem State übereinstimmt.

Führen Sie regelmäßig terraform plan aus, um Drift zu erkennen. Wenden Sie anschließend entweder die Konfiguration erneut an, um den ursprünglichen Zustand wiederherzustellen, oder aktualisieren Sie die Konfiguration entsprechend.

State niemals committen

Auch bei einem Remote-Backend sollten Sie sicherstellen, dass lokaler State und Plan-Dateien von Git ignoriert werden. Sie enthalten Geheimnisse.

Eine gute .gitignore schützt Sie vor versehentlichen Datenlecks.

# .gitignore
*.tfstate
*.tfstate.*
tfplan
.terraform/

Kurzer Test

Testen Sie Ihr Verständnis des Terraform-States.

Zusammenfassung

Sie haben gelernt, den Terraform-State sicher zu verwalten.

  • Der State ordnet die Konfiguration den tatsächlichen Ressourcen zu; bearbeiten Sie ihn niemals von Hand
  • Remote-Backends teilen den State im Team und in CI
  • Sperren und Verschlüsselung schützen vor Beschädigung und Datenlecks
  • Workspaces isolieren Umgebungen; plan erkennt Drift

Eine solide State-Verwaltung ist das Rückgrat zuverlässiger IaC-Pipelines.

Häufig gestellte Fragen

Ist die Lektion „Terraform-Status und Remote-Backends verwalten“ kostenlos?

Ja — der vollständige Text von „Terraform-Status und Remote-Backends verwalten“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Terraform-Status und Remote-Backends verwalten“?

Verstehen Sie den Terraform-Status, konfigurieren Sie sichere Remote-Backends, behandeln Sie Statussperren und vermeiden Sie Statusbeschädigungen in kollaborativen IaC-Pipelines. Du übst DevOps Bootcamp mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um DevOps Bootcamp zu starten?

Keine Vorkenntnisse erforderlich. DevOps Bootcamp auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Terraform-Status und Remote-Backends verwalten“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser DevOps Bootcamp-Lektion Code schreiben und ausführen?

Ja. Jede DevOps Bootcamp-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. IaC mit Terraform und GitHub Actions
  2. Cloud-Ressourcen verwalten
  3. Infrastrukturaktualisierungen automatisieren
  4. Terraform-Status und Remote-Backends verwalten
← Zurück zu DevOps Bootcamp