# Terraform auf VPS einrichten – Infrastructure as Code Anleitung

Terraform auf Root Server/VPS: Provider installieren, erste .tf Datei, State sichern, DNS & Docker automatisieren – Schritt für Schritt.

**Kurzantwort:** **Terraform** beschreibt Infrastruktur als Code – Server, DNS, Firewall reproduzierbar. Auf NexoraHost: VPS bestellen, dann Terraform für **Cloudflare DNS** + Ansible für Server-Setup.

**Wenn du hier landest:** Du willst Setups nicht mehr per Hand klicken, sondern versionieren und wiederholbar deployen.

## Schritt 1: Terraform installieren

`# Auf deinem Laptop oder einem Admin-VPS
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install -y terraform

terraform version`
## Schritt 2: Cloudflare DNS automatisieren

`# main.tf – A-Record für App auf VPS-IP
terraform {
  required_providers {
    cloudflare = {
      source  = "cloudflare/cloudflare"
      version = "~> 4.0"
    }
  }
}

provider "cloudflare" {
  api_token = var.cloudflare_api_token
}

resource "cloudflare_record" "app" {
  zone_id = var.zone_id
  name    = "app"
  value   = var.vps_ip
  type    = "A"
  ttl     = 3600
}

# terraform init && terraform plan && terraform apply`
## Schritt 3: Server mit Ansible konfigurieren

`# inventory.ini
[vps]
203.0.113.50 ansible_user=root

# playbook.yml – Docker + UFW
- hosts: vps
  tasks:
    - apt: name=docker.io state=present
    - ufw: rule=allow port=22
    - ufw: rule=allow port=80
    - ufw: rule=allow port=443
    - ufw: state=enabled`
## Best Practices

- State remote + verschlüsselt speichern
- Secrets in `terraform.tfvars` (nicht committen) oder Vault
- `terraform plan` vor jedem `apply`
- Modules für wiederkehrende Patterns (Staging/Prod)

## Weiterführend

- [CI/CD Automation](/de/ci-cd-automation)
- [Docker](/de/docker-containerization)
- [Cloudflare DNS](/de/domain/cloudflare-dns)
- [VPS einrichten](/de/root-v-server/vps-einrichten)
*VPS & Root Server: [VPS in Deutschland bestellen](https://nexorahost.com/Dedicated-server) · [panel.nexorahost.de](https://panel.nexorahost.de) · [nexorahost.com](https://nexorahost.com) (Maincubes FRA01 Frankfurt · Ryzen · NVMe)*
