init ·
plan ·
apply ·
destroy ·
state ·
variables ·
outputs ·
providers
Terraform ist das führende Werkzeug für Infrastructure as Code (IaC). Es ermöglicht die deklarative Definition und Verwaltung von Cloud- und On-Premises-Infrastruktur.
terraform init initialisiert ein Terraform-Verzeichnis. Es lädt Provider-Plugins herunter, initialisiert Backends und bereitet das Arbeitsverzeichnis vor.
| Option | Beschreibung |
|---|---|
| -upgrade | Aktualisiert Provider auf die neueste Version |
| -reconfigure | Backend-Konfiguration neu initialisieren |
| -backend-config | Backend-Konfiguration überschreiben |
| -plugin-dir | Plugin-Verzeichnis angeben |
terraform init immer nach dem Klonen eines Projekts oder nach Änderungen an provider- oder backend-Konfigurationen aus.
terraform plan zeigt einen Ausführungsplan an – welche Ressourcen erstellt, geändert oder gelöscht werden. Es ist der dry-run für apply.
| Option | Beschreibung |
|---|---|
| -out=<datei> | Plan in Datei speichern |
| -var <name>=<wert> | Variable überschreiben |
| -var-file=<datei> | Variable-Datei verwenden |
| -target=<ressource> | Nur bestimmte Ressourcen planen |
| -destroy | Plan für Löschvorgang |
| -refresh=false | State nicht aktualisieren |
terraform plan vor apply aus, um Überraschungen zu vermeiden. Ein gespeicherter Plan (-out) kann später mit apply verwendet werden.
terraform apply führt die im Plan definierten Änderungen aus und erstellt/ändert/löscht Infrastruktur. Es ist der Hauptbefehl für die Bereitstellung.
| Option | Beschreibung |
|---|---|
| -auto-approve | Bestätigung überspringen (automatisch) |
| <plan-datei> | Gespeicherten Plan ausführen |
| -var <name>=<wert> | Variable überschreiben |
| -var-file=<datei> | Variable-Datei verwenden |
| -target=<ressource> | Nur bestimmte Ressourcen |
| -refresh=false | State nicht aktualisieren |
terraform apply -auto-approve in CI/CD-Pipelines. In der Entwicklung empfiehlt sich die interaktive Ausführung zur Kontrolle.
terraform destroy löscht alle Ressourcen, die im State verwaltet werden. Dies ist der Gegenpart zu apply – Vorsicht, irreversible!
| Option | Beschreibung |
|---|---|
| -auto-approve | Bestätigung überspringen |
| -target=<ressource> | Nur bestimmte Ressourcen löschen |
| -var <name>=<wert> | Variable überschreiben |
| -var-file=<datei> | Variable-Datei verwenden |
| -refresh=false | State nicht aktualisieren |
terraform destroy löscht alle verwalteten Ressourcen – unwiderruflich! Führen Sie immer terraform plan -destroy aus, um zu sehen, was gelöscht wird.
terraform state ermöglicht die Verwaltung des Terraform-State. Es ist das "Source of Truth" für die verwaltete Infrastruktur.
| Subbefehl | Beschreibung |
|---|---|
| list | Alle Ressourcen im State auflisten |
| show <ressource> | Details einer Ressource anzeigen |
| mv <src> <dst> | Ressource umbenennen/verschieben |
| rm <ressource> | Ressource aus State entfernen (ohne Löschen) |
| pull | State von Remote-Backend herunterladen |
| push | State in Remote-Backend hochladen |
terraform state rm entfernt Ressourcen nur aus dem State – die eigentliche Infrastruktur bleibt bestehen. Verwenden Sie dies nur für die Aufnahme von bereits existierenden Ressourcen oder für die Bereinigung des State.
Variables parametrisieren Terraform-Konfigurationen. Outputs geben Werte nach dem apply aus – z.B. IP-Adressen oder Verbindungsstrings.
terraform.tfvars für Umgebungsspezifische Werte. Verwenden Sie terraform output, um Outputs nach dem Apply anzuzeigen – nützlich für Skripte und CI/CD.
Provider verbinden Terraform mit Cloud-Anbietern (AWS, Azure, GCP) und anderen APIs. Modules sind wiederverwendbare Terraform-Konfigurationen.
| Provider | Beschreibung | Quelle |
|---|---|---|
| aws | Amazon Web Services | hashicorp/aws |
| azurerm | Microsoft Azure | hashicorp/azurerm |
| Google Cloud Platform | hashicorp/google | |
| kubernetes | Kubernetes Cluster | hashicorp/kubernetes |
| helm | Helm Charts | hashicorp/helm |
| docker | Docker Container | kreuzwerker/docker |
terraform providers und terraform version, um Provider-Versionen zu prüfen. Module aus dem Terraform Registry bieten vorgefertigte, getestete Komponenten.
init
plan
apply
destroy
state
var
output
provider
terraform init ·
terraform plan ·
terraform apply -auto-approve ·
terraform destroy