⚙️ DevOps 15. Juni 2026 · 10 Min Lesezeit

Terraform Infrastructure as Code – Einführung & Beispiele 2026

Infrastructure as Code (IaC) hat die Art und Weise, wie Server und Cloud-Ressourcen verwaltet werden, grundlegend verändert. Terraform von HashiCorp ist der unangefochtene Marktführer in diesem Bereich. In diesem Guide zeige ich dir die Grundlagen von Terraform und praktische Beispiele für den Einsatz auf deinem VPS.

— Anzeige —

Google AdSense Platzhalter

Was ist Infrastructure as Code?

Infrastructure as Code (IaC) bedeutet, dass Server, Netzwerke, Datenbanken und andere Infrastrukturkomponenten nicht mehr manuell per Klick in einem Webinterface konfiguriert werden, sondern als Code in deklarativen Konfigurationsdateien beschrieben sind. Der große Vorteil: Versionierung, Wiederholbarkeit und Automatisierung. Statt stundenlanger manueller Konfiguration erstellst du deine gesamte Infrastruktur mit einem Befehl – und kannst sie genauso einfach wieder abbauen.

Warum Terraform?

Terraform ist ein Open-Source-Tool von HashiCorp, das Infrastructure as Code für nahezu jeden Cloud-Anbieter ermöglicht. Es ist cloud-agnostisch: Dieselbe Syntax und derselbe Workflow funktionieren bei AWS, Azure, Google Cloud, DigitalOcean, Hetzner und sogar bei Proxmox oder VMware. Die deklarative Sprache HCL (HashiCorp Configuration Language) beschreibt den gewünschten Endzustand, und Terraform kümmert sich um die Differenz zum aktuellen Zustand – das sogenannte Desired-State-Prinzip.

Installation & erste Schritte

Terraform ist eine einzelne Binärdatei. Die Installation unter Linux ist denkbar einfach:

# Terraform installieren (Linux)
wget https://releases.hashicorp.com/terraform/1.9.0/terraform_1.9.0_linux_amd64.zip
unzip terraform_1.9.0_linux_amd64.zip
sudo mv terraform /usr/local/bin/
terraform --version

Jetzt erstellst du dein erstes Terraform-Projekt. Lege ein Verzeichnis an und erstelle eine main.tf-Datei:

terraform {
  required_providers {
    hcloud = {
      source = "hetznercloud/hcloud"
      version = "~> 1.45"
    }
  }
}

provider "hcloud" {
  token = var.hcloud_token
}

resource "hcloud_server" "web" {
  name        = "webserver-01"
  server_type = "cx22"
  image       = "ubuntu-24.04"
  location    = "nbg1"
}

Die wichtigsten Terraform-Befehle

Befehl Beschreibung Wann anwenden?
terraform initInitialisiert das Projekt, lädt Provider-PluginsEinmalig pro Projekt
terraform planZeigt die geplanten Änderungen an (Trockentest)Vor jeder Änderung
terraform applySetzt die geplanten Änderungen umNach Prüfung des Plans
terraform destroyBaut die gesamte Infrastruktur abBei Bedarf / zum Aufräumen
terraform fmtFormatiert den Code (ähnlich gofmt)Regelmäßig
terraform validatePrüft die Syntax der KonfigurationNach dem Schreiben von Code

State-Management: Herzstück von Terraform

Der State (Zustand) ist die zentrale Datenbank von Terraform. Er merkt sich, welche Ressourcen existieren und welche Attribute sie haben. Standardmäßig wird der State in einer lokalen terraform.tfstate-Datei gespeichert. Im Team sollte der State jedoch in einem Remote-Backend abgelegt werden – zum Beispiel in S3, HashiCorp Cloud Platform (HCP) Terraform oder Terraform Cloud.

terraform {
  backend "s3" {
    bucket = "mein-terraform-state"
    key    = "prod/terraform.tfstate"
    region = "eu-central-1"
  }
}

Wichtig: Der State enthält sensible Informationen (API-Keys, IPs, Passwörter). Schütze ihn durch Verschlüsselung und Zugriffsbeschränkungen.

Variablen, Outputs und Module

Terraform bietet mächtige Abstraktionsmechanismen:

  • Variables: Erlauben flexible Konfiguration. Definiert in variables.tf und befüllt über terraform.tfvars oder Umgebungsvariablen.
  • Outputs: Geben Werte nach dem Apply aus – z. B. die öffentliche IP eines Servers.
  • Modules: Wiederverwendbare Bausteine, die du aus dem Terraform Registry verwenden oder selbst erstellen kannst.
# variables.tf
variable "hcloud_token" {
  description = "Hetzner Cloud API Token"
  type        = string
  sensitive   = true
}

variable "server_count" {
  description = "Anzahl der Webserver"
  type        = number
  default     = 2
}

# output.tf
output "web_server_ips" {
  value = hcloud_server.web[*].ipv4_address
}

Praktisches Beispiel: VPS mit Docker und Nginx

Dieses Beispiel erstellt einen VPS bei Hetzner, installiert Docker und startet einen Nginx-Container mit Terraform und einem Provisioner:

resource "hcloud_server" "app" {
  name        = "app-server"
  server_type = "cx22"
  image       = "ubuntu-24.04"
  location    = "hel1"

  connection {
    type        = "ssh"
    user        = "root"
    private_key = file("~/.ssh/id_ed25519")
  }

  provisioner "remote-exec" {
    inline = [
      "apt update && apt install -y docker.io",
      "docker run -d -p 80:80 nginx"
    ]
  }
}

Nach terraform apply steht ein vollständig konfigurierter Webserver in wenigen Minuten bereit.

Terraform Cloud & Collaboration

Für Teams bietet Terraform Cloud eine Reihe von Features:

Feature Beschreibung
Remote StateZentraler State für das gesamte Team
VCS IntegrationAutomatische Runs bei Push auf Git
Run ApprovalsManuelle Freigabe vor Apply in Produktion
Policy as Code (Sentinel)Richtlinien für Ressourcen (z. B. "Keine Server außerhalb von Europa")
Private RegistryEigene Module für das Team

Best Practices 2026

  • Halte den State sauber – vermeide manuelle Änderungen an der Infrastruktur außerhalb von Terraform
  • Nutze Workspaces für verschiedene Umgebungen (dev/staging/prod)
  • Verwende terraform plan vor jedem Apply – immer
  • Schreibe keine Secrets in die .tf-Dateien – nutze sensitive variables und einen Secrets-Manager
  • Fange früh an, Module zu bauen – sie sparen enorm viel Zeit
  • Integriere Terraform in deine CI/CD-Pipeline (GitHub Actions, GitLab CI)

Fazit

Terraform ist 2026 der Goldstandard für Infrastructure as Code. Die deklarative Sprache HCL, die riesige Auswahl an Providern und das durchdachte State-Management machen es zum unverzichtbaren Werkzeug für jeden, der Server-Infrastruktur professionell betreibt. Egal, ob du einen einzelnen VPS oder eine Multi-Cloud-Umgebung verwaltest – mit Terraform beschreibst du deine Infrastruktur als Code, versionierst sie und stellst sie automatisiert bereit. Starte noch heute mit deinem ersten Terraform-Projekt!

⚙️ Terraform & IaC Tools

👉 Bei Amazon entdecken

— Anzeige —

Google AdSense Platzhalter (Ende)