Terraform Cloud workspace criado via API (homelab_terraform/homelab) Estrutura inicial: - providers.tf: Proxmox provider (SSH + API token) + TF Cloud backend - variables.tf: vars sensíveis (token API do Proxmox) - resources.tf: 3 VMs QEMU (homeassistant:100, dockerino:102, media:103) - imports.tf: data sources para ler estado sem modificar - terraform.tfvars.example: template de configuração - .gitignore: ignora .tfrc (contém token TF Cloud) VMs descobertas via qm list: VMID 100 | homeassistant | 4GB RAM | 32GB disk VMID 102 | dockerino | 10GB RAM | 74GB disk VMID 103 | media | 16GB RAM | 64GB disk Próximo passo: terraform import de cada VM + terraform plan para verificar que o estado importado está correto.
38 lines
868 B
HCL
38 lines
868 B
HCL
# ===========================================
|
|
# PROVIDERS
|
|
# ===========================================
|
|
|
|
terraform {
|
|
required_version = ">= 1.10.0"
|
|
|
|
required_providers {
|
|
proxmox = {
|
|
source = "telmate/proxmox"
|
|
version = "~> 3.0.0"
|
|
}
|
|
}
|
|
|
|
# State remoto no Terraform Cloud
|
|
cloud {
|
|
organization = "homelab_terraform"
|
|
|
|
workspaces {
|
|
name = "homelab"
|
|
}
|
|
}
|
|
}
|
|
|
|
# Provider Proxmox
|
|
provider "proxmox" {
|
|
# Conexão via SSH (mesma chave que já funciona do Hestia → Proxmox)
|
|
# Não armazenamos senha em texto — usamos agente SSH local
|
|
ssh_username = "root"
|
|
ssh_agent = true
|
|
insecure = false
|
|
|
|
# API Proxmox (fallback se SSH não funcionar)
|
|
pm_api_url = "https://10.0.0.20:8006/api2/json"
|
|
pm_api_token_id = var.proxmox_api_token_id
|
|
pm_api_token_secret = var.proxmox_api_token_secret
|
|
}
|