Skip to Content

Was ist Terraform State?

Die manuelle Bereitstellung und Verwaltung der Infrastruktur kann ein komplexer und fehleranfälliger Prozess sein. Glücklicherweise haben sich Tools wie Terraform herauskristallisiert, um das Infrastrukturmanagement mithilfe von Infrastructure-as-Code (IaC) zu optimieren. 

Um das volle Potenzial von Terraform zu nutzen, ist es jedoch von entscheidender Bedeutung, den Terraform-Zustand zu verstehen. Dieser Zustand spielt eine wichtige Rolle bei der Sicherstellung konsistenter Infrastrukturkonfigurationen und ermöglicht eine effektive Zusammenarbeit zwischen den Teams. 

In diesem Artikel geht es darum, was der Terraform-Status ist, um seine Bedeutung und wie man Statusdateien effektiv verwaltet und manipuliert.

Was ist Terraform State?

Terraform-Zustand ist ein wichtiger Bestandteil der Funktionalität von Terraform. Es fungiert als persistente Aufzeichnung der Infrastruktur, die Sie mit Terraform verwalten, im Wesentlichen als Karte zwischen den in Ihren Konfigurationsdateien (.tf) definierten Ressourcen und ihren realen Pendants.

Wie der Terraform State funktioniert

Terraform speichert die Statusinformationen in einer Datei, die standardmäßig als terraform.tfstate bezeichnet wird. Diese Datei wird automatisch aktualisiert, wenn Sie den Befehl Terraform Apply ausführen. Hier ist eine Aufschlüsselung des Prozesses:

  1. Aktuellen Status erfassen: Während der Anwendung von Terraform liest Terraform die Infrastruktur und erfasst ihren aktuellen Zustand, einschließlich Ressourcenattributen und Konfigurationen.
  2. Status vergleichen: Terraform vergleicht diesen erfassten Zustand mit dem gewünschten Zustand, der in Ihren Terraform-Konfigurationsdateien definiert ist.
  3. Änderungen erkennen: Terraform identifiziert Abweichungen zwischen dem gewünschten und dem aktuellen Zustand basierend auf dem Vergleich im vorherigen Schritt.
  4. Updates anwenden: Wenn es Unterschiede gibt, wendet Terraform die erforderlichen Updates an, um die Infrastruktur an Ihre definierte Konfiguration anzupassen.

Vorteile und Bedeutung der Nutzung des Terraform State

Die Aufrechterhaltung eines konsistenten und genauen Terraform-Zustands ist unerlässlich, um ein zuverlässiges Infrastrukturmanagement sicherzustellen. Darum:

  • Reduzierte Konfigurationsdrift: Im Laufe der Zeit können Infrastrukturkonfigurationen aufgrund manueller Änderungen oder externer Faktoren von ihrem beabsichtigten Zustand abweichen. Ein aktueller Terraform-Status fungiert als einzige Quelle der Wahrheit und spiegelt die tatsächliche Konfiguration Ihrer Infrastruktur wider.
  • Zuverlässige Planung und Ausführung: Terraform verlässt sich auf die Zustandsdatei, um Infrastrukturänderungen zu planen und anzuwenden. Ein genauer Zustand stellt sicher, dass Terraform ein klares Bild Ihrer bestehenden Infrastruktur hat. Dies ermöglicht es, zuverlässigere Ausführungspläne zu erstellen und Fehler bei der Anwendung von Änderungen zu vermeiden.
  • Zusammenarbeit im Team: Terraform State erleichtert die Zusammenarbeit bei Infrastrukturprojekten. Durch das Speichern der Zustandsdatei an einem zentralen Ort, z. B. einem Remote-Backend wie dem HashiCorp Cloud Terraform Registry oder einem Cloud-Storage-Service, können mehrere Teammitglieder gleichzeitig an derselben Infrastrukturkonfiguration arbeiten und so ein zentralisiertes Infrastrukturmanagement fördern.
  • Skalierbarkeit für große Infrastrukturen: Wenn Ihre Infrastruktur immer komplexer wird, kann die lokale Verwaltung des Terraform-Zustands mühsam werden. Wenn Sie den Status in einem Remote-Backend speichern, können Sie Terraform effektiver skalieren. Remote-Backends bieten Funktionen wie Versionskontrolle und Zugriffskontrolle, was die Verwaltung des Status für große und geografisch verteilte Infrastrukturen erleichtert.
  • Verbesserte Ressourcenverfolgung: Terraform State führt eine detaillierte Aufzeichnung aller bereitgestellten Ressourcen und ihrer Konfigurationen. Dieses umfassende Protokoll erleichtert die Verwaltung und Aktualisierung Ihrer Infrastruktur erheblich. Stellen Sie sich vor, wie schwierig es wäre, Hunderte von Ressourcen und deren Konfigurationen manuell zu verfolgen. Terraform State eliminiert diese Belastung, indem es ein zentrales Repository für alle Infrastrukturdetails bereitstellt.
  • Effiziente Änderungserkennung: Terraform-Zustand ermöglicht es Terraform, Änderungen in Ihrer Infrastruktur intelligent zu erkennen. Wenn Sie Terraform Apply ausführen, vergleicht es den gewünschten Status mit dem aufgezeichneten Status und wendet Updates nur auf die Ressourcen an, die sich tatsächlich geändert haben. Dadurch sparen Sie Zeit und vermeiden unnötige Änderungen an Ihrer Infrastruktur.
  • Optimiertes Abhängigkeitsmanagement: Terraform State verfolgt Abhängigkeiten zwischen Ressourcen. Dies ist entscheidend, da die Reihenfolge, in der Ressourcen erstellt oder aktualisiert werden, manchmal von Bedeutung sein kann. Beispielsweise kann ein Webserver davon abhängen, dass zuerst eine Datenbank erstellt wird. Terraform State stellt sicher, dass Updates in der richtigen Reihenfolge angewendet werden, indem diese Abhängigkeiten berücksichtigt werden.

Umgang mit Terraform State

Terraform bietet Flexibilität beim Speichern von Statusdateien. Sie können zwischen lokalem Storage auf dem Computer des Entwicklers wählen oder Remote-Backends für Zusammenarbeit und Skalierbarkeit nutzen.

  • Lokales Backend: Das lokale Backend ist die Standardoption und erfordert keine zusätzliche Konfiguration. Die Zustandsdatei wird auf dem lokalen Dateisystem gespeichert, das in der Regel im Arbeitsverzeichnis als terraform.tfstate bezeichnet wird. Dieser Ansatz ist für seine Benutzerfreundlichkeit vorteilhaft und eignet sich für kleine, persönliche Projekte oder die individuelle Entwicklung. Es ist jedoch nicht ideal für die Zusammenarbeit oder große Infrastrukturen.
  • Remote-Backend: Remote-Backends speichern die Zustandsdatei an einem zentralen Ort, oft einem Cloud-Storage-Service wie Amazon S3, Google Cloud Storage oder Azure Blob Storage. Remote-Backend ermöglicht es mehreren Teammitgliedern, gleichzeitig auf die Infrastrukturkonfiguration zuzugreifen und sie zu ändern. Dies eignet sich gut für große und geografisch verteilte Infrastrukturen und bietet Funktionen wie Versionskontrolle und Disaster Recovery.

Terraform-Status konfigurieren

Die spezifischen Konfigurationsschritte variieren je nach ausgewähltem Remote-Backend-Anbieter. Hier ist ein Beispiel für die Konfiguration von Terraform für die Verwendung von AWS S3 als Remote-Backend:

# Configure Terraform to use S3 as the remote backend
 terraform {
   backend "s3" {
   bucket = "my-terraform-state"  # Name of the S3 bucket to store the state file
   key    = "path/to/my/statefile"  # Path within the bucket to store the state file
   region = "us-west-2"            # AWS region where the S3 bucket is located
   }
 }

Best Practices für die Organisation und Versionierung von Statusdateien

Berücksichtigen Sie die folgenden Best Practices, um leicht zu verwaltende Zustandsdateien zu verwalten:

  • Segmentierung: Die Aufteilung von Zustandsdateien nach Umgebung (z. B. Entwicklung, Bereitstellung, Produktion) oder Projekt trägt dazu bei, die Organisation aufrechtzuerhalten und Konflikte bei der Arbeit an mehreren Umgebungen oder Projekten zu vermeiden. Betrachten Sie beispielsweise separate Statusdateien mit dem Namen terraform.tfstate.dev und terraform.tfstate.prod für Entwicklungs- und Produktionsumgebungen.
  • Versionierung mit Versionskontrollsystemen (VCS): Mit Versionskontrollsystemen wie Git können Sie Änderungen an Ihren Zustandsdateien im Laufe der Zeit verfolgen. Dies ermöglicht bei Bedarf Rollbacks auf frühere Konfigurationen und erleichtert die Zusammenarbeit, indem es einen Prüfpfad für Änderungen bereitstellt.
  • Verschlüsselung: Die Verschlüsselung von Zustandsdateien, insbesondere bei der Verwendung von Remote-Backends, schützt sensible Informationen wie Zugriffsschlüssel oder Passwörter im Falle eines unbefugten Zugriffs. Die meisten Cloud-Storage-Anbieter bieten serverseitige Verschlüsselung für Data-at-Rest-. Sie können auch Client-seitige Verschlüsselungstools erkunden, um die Statusdatei zu verschlüsseln, bevor Sie sie in das Remote-Backend hochladen.

Manipulation des Terraform-Zustands

Terraform bietet leistungsstarke Befehle für die Interaktion mit dem Terraform-Status. Mit diesen Befehlen können Sie die bestehende Infrastruktur verwalten, Ihre Zustandsdatei für eine bessere Wartung neu organisieren und Ressourcen aus der Kontrolle von Terraform entfernen.

Im Folgenden finden Sie einige häufig verwendete Terraform-Zustandsbefehle:

  1. Terraform-Import: Dieser Befehl ist entscheidend für die Integration vorhandener Infrastrukturelemente (Ressourcen) unter der Leitung von Terraform. Er weist Terraform an, eine physische Ressource zu erkennen und zu verfolgen, die bereits in Ihrer Cloud-Umgebung vorhanden ist. Dies kann nützlich sein, um die bestehende Infrastruktur auf Terraform zu migrieren oder Ressourcen zu verwalten, die ursprünglich außerhalb von Terraform erstellt wurden.
  2. Terraform-Zustand: Dieser Kernbefehl enthält eine Vielzahl von Unterbefehlen zum Bearbeiten Ihrer Statusdatei. Einige davon sind:
    • Terraform-Statusliste: Listet alle Ressourcen auf, die in der aktuellen Statusdatei verfolgt werden. Dies ist hilfreich, um einen Überblick über die Ressourcen zu erhalten, die Terraform verwaltet.
    • Terraform-Statusliste: Listet alle Ressourcen auf, die in der aktuellen Statusdatei verfolgt werden. Dies ist hilfreich, um einen Überblick über die Ressourcen zu erhalten, die Terraform verwaltet.
    • Terraform-Statusliste: Listet alle Ressourcen auf, die in der aktuellen Statusdatei verfolgt werden. Dies ist hilfreich, um einen Überblick über die Ressourcen zu erhalten, die Terraform verwaltet.
    • Terraform State Show: <resource_name> Zeigt detaillierte Informationen zu einer bestimmten Ressource an, die in der Statusdatei gespeichert ist, einschließlich ihrer Attribute und Konfiguration.
    • Terraform State rm: <resource_name> Entfernt eine Ressource aus der Statusdatei. Dies zerstört nicht die tatsächliche Infrastrukturressource in der Cloud, sondern entfernt sie nur vom Management von Terraform.

Häufige Szenarien für staatliche Manipulation

Im Folgenden finden Sie einige praktische Szenarien, in denen Sie Ihren Terraform-Status ändern müssen, und einige Beispielbefehle, um ihn zu erreichen:

  1. Hinzufügen vorhandener Ressourcen: Verwenden Sie den Terraform-Import, um bestehende Infrastrukturressourcen unter die Kontrolle von Terraform zu bringen. Dies ist besonders nützlich, wenn eine bestehende Infrastruktur auf Terraform migriert oder Ressourcen verwaltet werden, die ursprünglich außerhalb von Terraform bereitgestellt wurden. Der folgende Befehl importiert beispielsweise eine vorhandene AWS EC2-Instanz mit der ID i-1234567890abcdef0 in Terraform und weist ihr das logische Namensbeispiel zu:
  2. terraform import aws_instance.example i-1234567890abcdef0
  3. Verschieben von Ressourcen: Verwenden Sie Terraform State mv, um Ihre Statusdatei für eine bessere Wartung neu zu organisieren. Dies kann hilfreich sein, wenn Sie verwandte Ressourcen innerhalb von Modulen gruppieren oder einfach die Gesamtstruktur Ihrer Statusdatei verbessern möchten. Der folgende Befehl verschiebt beispielsweise die Ressource aws_instance.example in ein neues Modul namens new_module:
  4. terraform state mv aws_instance.example

    module.new_module.aws_instance.example
  5. Ressourcen entfernen: Verwenden Sie Terraform State rm, um Ressourcen aus dem Management von Terraform zu entfernen, ohne die tatsächlichen Ressourcen in der Cloud zu zerstören. Dies ist nützlich in Situationen, in denen Sie die Verwaltung einer Ressource mit Terraform einstellen, aber die Ressource selbst in der Cloud-Umgebung erhalten möchten.

Fazit

Terraform State ist eine grundlegende Komponente der Infrastrukturmanagementfunktionen von Terraform. Durch das Verständnis und die effektive Verwaltung des Terraform-Status können Sie eine konsistente, zuverlässige und skalierbare Infrastruktur sicherstellen. Ob lokale oder Remote-Backends – Portworx® von Pure Storage bietet mit Kubernetes die beste persistente Storage-Lösung für Ihre Container-Workloads. Wenn Sie dies mit Ihren Terraform-Konfigurationen nutzen, wird sichergestellt, dass Sie Ihre Daten immer gespeichert haben, unabhängig von den Änderungen an Ihren Terraform-Statusdateien.

10/2025
Virtual Machine Provisioning at Enterprise Scale
Sizing and scaling Red Hat OpenShift Virtualization with Portworx.
White Paper
22 pages

Wichtige Ressourcen und Veranstaltungen durchsuchen

VIDEO
Sehen Sie selbst: Der Wert einer Enterprise Data Cloud

Charlie Giancarlo erklärt, warum die Zukunft in der Verwaltung von Daten und nicht in der Verwaltung von Storage liegt. Erfahren Sie, wie ein einheitlicher Ansatz IT-Abläufe in Unternehmen transformiert.

Jetzt ansehen
RESSOURCE
Herkömmlicher Storage kann die Zukunft nicht beflügeln.

Moderne Workloads erfordern KI-fähige Geschwindigkeit, Sicherheit und Skalierbarkeit. Ist Ihr Stack darauf vorbereitet?

Bewertung durchführen
PURE360-DEMOS
Pure Storage erkunden, kennenlernen und erleben.

Überzeugen Sie sich mit On-Demand-Videos und -Demos von den Möglichkeiten von Pure Storage.

Demos ansehen
THOUGHT LEADERSHIP
Der Innovationswettlauf

Branchenführer, die an vorderster Front der Storage-Innovationen stehen, geben Einblicke und Ausblicke.

Mehr erfahren
Ihr Browser wird nicht mehr unterstützt!

Ältere Browser stellen häufig ein Sicherheitsrisiko dar. Um die bestmögliche Erfahrung bei der Nutzung unserer Website zu ermöglichen, führen Sie bitte ein Update auf einen dieser aktuellen Browser durch.