Completed: - ✅ Hetzner Cloud provider configuration - ✅ VPS server provisioning with for_each pattern - ✅ Cloud firewall rules (SSH, HTTP, HTTPS) - ✅ SSH key management - ✅ Outputs for Ansible dynamic inventory - ✅ Variable structure and documentation - ✅ Test server successfully provisioned Deferred: - DNS configuration (commented out, waiting for domain) Files added: - tofu/versions.tf - Provider versions - tofu/variables.tf - Input variable definitions - tofu/main.tf - Core infrastructure resources - tofu/dns.tf - DNS configuration (optional) - tofu/outputs.tf - Outputs for Ansible integration - tofu/terraform.tfvars.example - Configuration template - tofu/README.md - Comprehensive setup guide Closes #1 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
26 lines
931 B
Text
26 lines
931 B
Text
# Copy this file to terraform.tfvars and fill in your values
|
|
# terraform.tfvars is gitignored and will not be committed
|
|
|
|
# Hetzner API Tokens
|
|
hcloud_token = "YOUR_HETZNER_CLOUD_API_TOKEN"
|
|
hetznerdns_token = "YOUR_HETZNER_DNS_API_TOKEN" # Can be same as cloud token
|
|
|
|
# SSH Public Key (paste the contents of ~/.ssh/id_rsa.pub or similar)
|
|
ssh_public_key = "ssh-ed25519 AAAA... user@hostname"
|
|
|
|
# Base domain (must be registered and added to Hetzner DNS)
|
|
base_domain = "example.com"
|
|
|
|
# Client configurations
|
|
clients = {
|
|
# Example client - uncomment and modify when ready to provision
|
|
# alpha = {
|
|
# server_type = "cx22" # 2 vCPU, 4 GB RAM, 40 GB SSD - €6.25/month
|
|
# location = "fsn1" # Falkenstein, Germany
|
|
# subdomain = "alpha" # Will create alpha.example.com
|
|
# apps = ["zitadel", "nextcloud"]
|
|
# }
|
|
}
|
|
|
|
# Enable automated snapshots (20% of server cost)
|
|
enable_snapshots = true
|