Tutorial

Infrastructure as Code mit Terraform und Runly: Ein praktischer Guide

Lernen Sie, wie Sie Ihre Runly-Infrastruktur programmatisch, sicher und skalierbar bereitstellen.

Infrastructure as Code (IaC) ist der Schlüssel zu moderner DevOps-Praxis. Anstatt Ihre Server manuell im Dashboard zu klicken, definieren Sie die gesamte Umgebung in deklarativen Skripten. Das reduziert Fehler, beschleunigt Provisionierung und macht Ihre Infrastruktur versionierbar.

In diesem Guide zeigen wir Ihnen, wie Sie den offiziellen Runly Terraform Provider nutzen, um Bare-Metal-Server, VPCs und Firewalls in Frankfurt, Amsterdam und Wien bereitzustellen.

Terraform Code auf einem Terminalbildschirm in einem Runly Rechenzentrum
Vorbereitung

Voraussetzungen

Runly Account

Sie benötigen ein aktives Runly-Konto. Erstellen Sie einen neuen API-Token in den Sicherheitseinstellungen, um Terraform die Berechtigung zu geben.

Terraform Installiert

Terraform Version 1.5 oder höher. Installieren Sie es über brew install terraform (macOS) oder laden Sie das Binary von HashiCorp herunter.

SSH Key Pair

Ein SSH-Private Key (z. B. id_rsa) für den root-Zugriff auf Ihre Server. Speichern Sie den Public Key im Runly-Portal unter "SSH Keys".

Einrichtung

Runly Terraform Provider

Der Provider erlaubt es Terraform, Ressourcen in Ihrem Runly-Konto zu verwalten. Stellen Sie sicher, dass Sie Ihren API-Token sicher hinterlegt haben (nicht im Code commiten!).

terraform { required_providers { runly = { source = "runly-cloud/runly" version = ">= 0.1.0" } } }

provider "runly" { api_token = var.runly_api_token }

Beispiel

Beispiel 1: Einfachen Cloud Server provisionieren

Mit wenigen Zeilen Code erstellen wir einen Bare-Metal-Server in Frankfurt. Wir nutzen runly_server und geben eine feste IP zu.

resource "runly_server" "my_app_server" { name = "production-web-01" datacenter = "de-fra" plan = "c4.large" os_image = "ubuntu-22.04" ip_address = "192.168.1.50" ssh_key_ids = [runly_ssh_key.my_key.id] }

Nach dem Ausführen von terraform apply ist Ihr Server innerhalb von 60 Sekunden online, bereit für Docker-Container oder Node.js-Anwendungen.

Beispiel

Beispiel 2: Komplettes Netzwerk-Setup

Eine isolierte Infrastruktur benötigt ein VPC, Subnetze und Sicherheitsregeln. Wir definieren eine Firewall, die nur HTTP und HTTPS auf Port 80/443 zulässt.

resource "runly_vpc" "main_vpc" { name = "production-network" cidr = "10.0.0.0/16" } resource "runly_subnet" "public" { vpc_id = runly_vpc.main_vpc.id name = "public-subnet" cidr = "10.0.1.0/24" gateway_id = runly_vpc.main_vpc.gateway_id } resource "runly_firewall" "http_rules" { name = "allow-web-traffic" vpc_id = runly_vpc.main_vpc.id rules { direction = "ingress" protocol = "tcp" ports = [80, 443] source = "0.0.0.0/0" } }

Best Practices

State-Management und Sicherheit

Das Terraform State-File ist die "Bibel" Ihrer Infrastruktur. Speichern Sie es niemals lokal oder im Repository. Nutzen Sie ein Remote Backend wie S3 oder Azure Blob Storage.

GitOps Workflow

Speichern Sie Ihre Terraform-Skripte in einem Git-Repository. Nutzen Sie Tools wie Terraform Cloud oder Terraform Enterprise für PR-basierte Reviews vor der Bereitstellung.

Secrets Management

Verwenden Sie terraform.tfvars für sensible Daten wie API-Tokens. Commiten Sie die Datei nicht in das Repository. Nutzen Sie Environment-Variablen für lokale Tests.

Versionierung

Versionieren Sie Ihre State-Dateien. Wenn ein Fehler auftritt, können Sie mit terraform state mv Ressourcen zurücksetzen oder alte Snapshots wiederherstellen.

Autor

Autor-Bio

Maximilian Weber

Senior DevOps Engineer bei Runly. Spezialist für Kubernetes, Terraform und Cloud-Native Architekturen. Er entwickelt Tools, um die Bereitstellung von Infrastruktur für Entwickler intuitiv und sicher zu machen.

Bereit für den Einstieg?

Erstellen Sie Ihre erste Infrastruktur in Minuten. Nutzen Sie unser Terraform-Repository im GitHub-Repository von Runly.