terraform { required_providers { hcloud = { source = "hetznercloud/hcloud" version = "~> 1.60.1" } } } # Der Token sollte NIEMALS hart im Code stehen. # Wir nutzen eine Variable dafür. variable "hcloud_token" { sensitive = true } provider "hcloud" { token = var.hcloud_token } # 1. SSH-Key bei Hetzner registrieren (oder einen vorhandenen nutzen) resource "hcloud_ssh_key" "default" { name = "treff-key" public_key = file("~/.ssh/id_ed25519.pub") } # 2. Den Server definieren resource "hcloud_server" "web_server" { name = "linux-treff-demo" image = "fedora-43" server_type = "cx23" location = "nbg1" # Nürnberg ssh_keys = [hcloud_ssh_key.default.id] # Hier binden wir das Cloud-Init Skript ein user_data = file("${path.module}/user_data.yaml") # Optional: Labels für die Ordnung labels = { veranstaltung = "linuxtreff" typ = "demo" } } # Output der IP, damit man sich sofort verbinden kann output "server_ip" { value = hcloud_server.web_server.ipv4_address }