Skip to Content

Was ist ein Terraform-Plan?

Terraform, entwickelt von HashiCorp, ist ein weit verbreitetes IaC-Tool (Infrastructure-as-Code), mit dem Benutzer Softwareinfrastruktur mithilfe einer hochrangigen Konfigurationssprache definieren und bereitstellen können. Mit der zunehmenden Einführung Cloud-basierter Infrastrukturen ist Terraform für die Verwaltung und Automatisierung der Bereitstellung von Infrastrukturressourcen unerlässlich geworden. Einer der Kernbefehle in Terraform ist der Terraform-Plan, ein wichtiger Schritt im Implementierungsprozess, der sicherstellt, dass Änderungen an der Infrastruktur sicher, vorhersehbar und effizient sind.

In diesem Artikel werfen wir einen genaueren Blick auf diesen Befehl, was er bewirkt und wie er seine Ergebnisse für Ihre Terraform-Konfigurationen interpretiert.

Was ist ein Terraform-Plan?

Der Befehl „Terraform Plan“ ist ein wichtiger Bestandteil des Terraform-Workflows, der als Probelauf oder Vorschau der Änderungen dient, die Terraform an Ihrer Infrastruktur vornehmen wird. Es vergleicht den aktuellen Zustand Ihrer Infrastruktur mit dem gewünschten Zustand, der in Ihren Terraform-Konfigurationsdateien definiert ist, und zeigt die spezifischen Maßnahmen an, die Terraform ergreifen wird, um die Lücke zu schließen. Dazu gehören das Hinzufügen, Löschen und Modifizieren von Ressourcen, z. B. das Erstellen neuer virtueller Maschinen, das Hochskalieren bestehender Datenbanken oder das Entfernen nicht verwendeter Storage-Volumes.

Vorteile des Terraform-Plans

Die Möglichkeit, eine Vorschau zu erhalten, was eine Änderung Ihres Konfigurationscodes für Ihre Infrastruktur bedeutet, ist in vielerlei Hinsicht vorteilhaft, darunter:

  • Transparenz: Der Terraform-Plan bietet einen detaillierten Überblick über die bevorstehenden Änderungen und bietet ein klares Bild davon, was in Ihrer Infrastruktur erstellt, geändert oder gelöscht wird. Diese Transparenz trägt dazu bei, Fehler zu minimieren und stellt sicher, dass alle am Implementierungsprozess Beteiligten auf dem gleichen Stand sind.
  • Risikominderung: Durch die vorherige Vorschau der Änderungen können Benutzer potenzielle Probleme erkennen und angehen, bevor sie Services unterbrechen. Terraform-Plan kann dabei helfen, Ressourcenkonflikte aufzudecken (z. B. Erstellen einer VM mit einem doppelten Namen), fehlende Abhängigkeiten (z. B. eine Datenbank, die eine bestimmte Sicherheitsgruppe erfordert, die nicht konfiguriert ist) oder unbeabsichtigte Änderungen aufgrund von Tippfehlern in Konfigurationsdateien.
  • Zusammenarbeit: Terraform-Plan lässt sich nahtlos in Versionskontrollsysteme wie Git integrieren und erleichtert die Zusammenarbeit im Team. Die Weitergabe des Planergebnisses an Teammitglieder ermöglicht die Überprüfung von Änderungen im Kontext von Code-Commitments und fördert Transparenz und Verantwortlichkeit, bevor Änderungen implementiert werden.
  • Effizienz: Terraform-Plan hilft Nutzern, Infrastrukturänderungen methodisch zu planen und durchzuführen. Durch die Analyse des Plans können Sie potenzielle Engpässe oder Ineffizienzen erkennen, bevor Sie die Änderungen anwenden.
  • Sicherheit: Terraform-Plan fungiert als Sicherheitsnetz, da Sie Änderungen überprüfen und validieren können, bevor sie auf Ihre Produktionsinfrastruktur angewendet werden. Dieser Schutz trägt dazu bei, versehentliche Änderungen zu verhindern und stellt die Stabilität und Zuverlässigkeit Ihrer Cloud-Umgebung sicher.

So führen Sie einen Terraform-Plan aus

Um den Terraform-Plan auszuführen, stellen Sie zunächst sicher, dass Terraform auf Ihrem lokalen Rechner installiert ist. Sie können die entsprechende Version von der offiziellen HashiCorp-Website herunterladen und installieren.

Bevor Sie den Planbefehl ausführen, müssen Sie eine grundlegende Terraform-Konfigurationsdatei mit dem Namen main.tf in Ihrem Arbeitsverzeichnis erstellen. Unten sehen Sie ein Beispiel für eine einfache Konfiguration, die eine virtuelle Maschinenressource in einem Cloud-Anbieter erstellt:

# Configure the cloud provider (replace with your provider details)
 provider "aws" {
   region = "us-east-1"
 }
 
 # Define a virtual machine resource
 resource "aws_instance" "my_vm" {
   ami           = "ami-0f78f7e824d9499e0"  # Replace with the desired AMI ID
   instance_type = "t2.micro"
 }

1. Das Terraform-Verzeichnis initialisieren

Navigieren Sie zu Ihrem Arbeitsverzeichnis mit der Datei main.tf und führen Sie den folgenden Befehl in Ihrem Terminal aus:

$ terraform init

Dieser Befehl initialisiert das Terraform-Verzeichnis, lädt alle erforderlichen in Ihrer Konfiguration genannten Plug-ins oder Module herunter und bereitet die Umgebung auf die Arbeit mit Terraform vor.

2. Terraform-Plan ausführen

Sobald die Initialisierung abgeschlossen ist, führen Sie den folgenden Befehl aus, um den Ausführungsplan zu erstellen:

$ terraform plan

Dieser Befehl analysiert Ihre Terraform-Konfiguration und vergleicht sie mit dem aktuellen Zustand Ihrer Infrastruktur (falls vorhanden). Es zeigt dann einen detaillierten Plan an, der die Maßnahmen beschreibt, die Terraform ergreifen wird, um den gewünschten Zustand zu erreichen, der in Ihrer Konfiguration definiert ist. Der Plan zeigt in der Regel die Ressourcen an, die erstellt, geändert oder gelöscht werden.

3. Plan-Ausgabe speichern

Wenn Sie den Plan für die Zukunft speichern oder mit Teammitgliedern teilen möchten, können Sie optional das -out-Flag mit dem Planbefehl verwenden. Mit dem folgenden Befehl wird der Plan beispielsweise in einer Datei namens plan.tfplan gespeichert:

$ terraform plan -out=plan.tfplan

Der Befehl „Terraform Plan“ zeigt nur eine Vorschau der Änderungen an. Es werden keine Änderungen an Ihrer Infrastruktur vorgenommen. Nachdem Sie den Plan überprüft und genehmigt haben, können Sie den Befehl $ terraform apply verwenden, um die geplanten Änderungen durchzuführen.

Verstehen und Analysieren der Ergebnisse des Terraform-Plans

Die Ergebnisse des Terraform-Plans sind in der Regel in mehrere Abschnitte unterteilt, von denen jeder wertvolle Einblicke in die geplanten Maßnahmen bietet:

Ressourcenaktionen

In diesem Abschnitt werden die konkreten Maßnahmen aufgeführt, die Terraform an Ihren Infrastrukturressourcen durchführen möchte. Diese Aktionen sind in drei Haupttypen kategorisiert:

  • Erstellen (+): Dieses Symbol zeigt an, dass Terraform basierend auf Ihrer Konfiguration neue Ressourcen erstellt.
  • Lesen (~): Dieses Symbol bedeutet, dass Terraform den Status bestehender Ressourcen liest, um festzustellen, ob Änderungen erforderlich sind. Dieses Symbol ist in der Planausgabe weniger häufig, da Terraform in der Regel die erforderlichen Maßnahmen während der Planungsphase bestimmt.
  • Löschen (-): Dieses Symbol zeigt an, dass Terraform vorhandene Ressourcen löscht, die nicht mehr in Ihrer Konfiguration definiert sind.

Ressourcendetails

Dieser Abschnitt enthält ausführliche Informationen zu jeder Ressource, die vom Plan betroffen sein wird. Hier ist eine Aufschlüsselung der Details, die Sie in der Regel finden können:

  • Ressourcentyp: Dies gibt die Art der Infrastrukturressource an, die Terraform verwaltet (z. B. aws_instance, azurerm_resource_group ).
  • Ressourcenname: Dies identifiziert den eindeutigen Namen, der der Ressource in Ihrer Terraform-Konfiguration zugewiesen ist.

Geplante Änderungen

In diesem Abschnitt werden die spezifischen Änderungen beschrieben, die auf die Ressource angewendet werden. Für Ressourcen, die erstellt werden (gekennzeichnet durch +), werden die Attribute und die entsprechenden Werte aufgeführt, die definiert werden. Bei Ressourcen, die geändert werden, werden die Änderungen an vorhandenen Attributen angezeigt.

Zusammenfassung

Der Plan-Output schließt oft mit einem Zusammenfassungsabschnitt ab, der einen umfassenden Überblick über die geplanten Maßnahmen bietet. Diese Zusammenfassung unterteilt in der Regel die Gesamtzahl der Ressourcen in die folgenden Kategorien:

  • Hinzufügen: Die Anzahl der neuen Ressourcen, die erstellt werden

  • Zu ändern: Die Anzahl der vorhandenen Ressourcen, die geändert werden

  • Zu vernichten: Die Anzahl der vorhandenen Ressourcen, die gelöscht werden

Wenn Sie einen Terraform-Plan mit der zuvor erstellten Beispielkonfiguration ausführen, erhalten Sie ähnliche Ergebnisse wie die folgenden:

# $ terraform plan
 
 Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
   + create
 
 Terraform will perform the following actions:
 
   # aws_instance.my_vm will be created
   resource "aws_instance" "my_vm" {
     + ami           = "ami-0f78f7e824d9499e0"
     + instance_type = "t2.micro"
     + tags = {
       + Name = "sample-tag"
     }
   }

1. Ressourcenaktionen: Die erste Zeile zeigt an, dass Terraform während dieses Plans Erstellungsmaßnahmen (+) durchführen wird.

2. Ressourcendetails: Der nachfolgende Abschnitt befasst sich mit den Details einer einzigen Ressource, aws_instance.my_vm . Dies bedeutet, dass Terraform in Ihrer AWS-Umgebung eine neue AWS EC2-Instanz namens my_vm erstellen wird. In den Details werden ferner die AMI-ID (ami-0f78f7e824d9499e0), der Instanztyp (t2.micro ) und ein Tag (Name = „sample-tag “) angegeben, die Terraform auf die neue Instanz anwenden wird.

3. Zusammenfassung (implizit): Obwohl in diesem Beispiel nicht explizit dargestellt, kann eine Zusammenfassung am Ende einer komplexeren Planausgabe angezeigt werden, die die Gesamtzahl der zu erstellenden Ressourcen angibt.

Best Practices für die Verwendung des Terraform-Plans

Der Befehl „Terraform Plan“ ist Ihr Sicherheitsnetz, bevor Sie Infrastrukturänderungen anwenden. Im Folgenden finden Sie einige wichtige Praktiken, um ihre Vorteile zu maximieren:

Ressourcenänderungen überprüfen:

  • Konzentrieren Sie sich auf Ressourcen, die für die Erstellung (+) oder Löschung (-) markiert sind.
  • Überprüfen Sie, ob die Attributwerte für neue Ressourcen mit Ihrer Absicht übereinstimmen (z. B. AMI-ID, Storage-Größe).
  • Überprüfen Sie die Änderungen an vorhandenen Ressourcen auf Genauigkeit.

Potenzielle Probleme erkennen:

  • Achten Sie auf Ressourcenkonflikte (z. B. doppelte Namen, fehlende Abhängigkeiten).
  • Stellen Sie sicher, dass alle erforderlichen Abhängigkeiten (z. B. Sicherheitsgruppen) definiert sind.
  • Seien Sie vorsichtig bei unerwarteten Ressourcenlöschungen, die Services stören könnten.

Ausschöpfung des Ausgangs:

  • Überprüfen Sie, ob die geplanten Änderungen mit Ihren Infrastrukturzielen übereinstimmen.
  • Berücksichtigen Sie potenzielle Kostenauswirkungen im Zusammenhang mit Ressourcenänderungen. Sie können auch die Planergebnisse für die Teamüberprüfung und -kommunikation teilen.

Fazit

Terraform-Plan ist ein leistungsstarkes Tool im Terraform-Workflow. Es bietet eine sichere und transparente Methode, um Infrastrukturänderungen vor der Anwendung in der Vorschau anzuzeigen und zu validieren. Durch das Verständnis und die effektive Nutzung des Terraform-Plans können Sie sicherstellen, dass Ihre Implementierungen effizient, vorhersehbar und frei von unbeabsichtigten Folgen sind.

Pure Storage bietet die besten persistenten Block-Storage-Lösungen für Ihre Terraform-Implementierungen. Portworx® bietet eine umfassende Datenplattform für alle Ihre Container- und Kubernetes Terraform-Workloads. Mit Pure Cloud Block Store™ können Sie alle Datenbank- oder Container-Workloads in der Cloud ausführen, genau wie Sie es in einer lokale Infrastruktur tun können.

03/2025
Rancher Kubernetes Engine 2 on VMware with Portworx
Gain consistent experience across public cloud, on- premises, hybrid cloud, or edge architecture with Rancher Kubernetes Engine (RKE2) on VMware with Portworx.
Referenzarchitektur
33 pages
KONTAKTIEREN SIE UNS
Pure kontaktierenInfosymbol
Chatsymbol
Fragen, Kommentare?

Haben Sie eine Frage oder einen Kommentar zu Produkten oder Zertifizierungen von Pure?  Wir helfen Ihnen gerne!

Schlüsselsymbol
Termin für Demo vereinbaren

Vereinbaren Sie einen Termin für eine Live-Demo und sehen Sie selbst, wie Pure Ihnen helfen kann, Ihre Daten in überzeugende Ergebnisse zu verwandeln. 

Rufen Sie uns an: +49 89 26200662
Presse:
 pr@purestorage.com

 

Pure Storage Germany GmbH

Mies-van-der-Rohe-Straße 6

80807 München

Deutschland

info@purestorage.com

SCHLIESSEN
SchließenX-Symbol zum Schließen
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.