Guia Prático Infrastructure as Code (IaC): Crie templates de Cloud-Init no Proxmox e faça provisionamento automatizado de servidores com Terraform. Por Fabio Silva.
⚙️ Por que automatizar o Proxmox com Terraform?
O Proxmox VE é um dos hipervisores open-source mais potentes do mercado. Combinado com o provider do Terraform (Telmate ou bpg/proxmox), é possível tratar máquinas virtuais no seu homelab ou datacenter com a mesma elegância da AWS ou Azure.
📋 Pré-requisitos
- Cluster Proxmox VE rodando versão 7.x ou 8.x.
- Usuário de API no Proxmox com Token gerado (
terraform-user@pve!provider_token). - Template Ubuntu Server 22.04 / 24.04 com Cloud-Init instalado.
📄 Código main.tf Completo
terraform {
required_providers {
proxmox = {
source = "bpg/proxmox"
version = "0.60.0"
}
}
}
provider "proxmox" {
endpoint = "https://192.168.1.100:8006/"
api_token = "terraform-user@pve!token=12345678-abcd-1234-abcd-1234567890ab"
insecure = true
}
resource "proxmox_virtual_environment_vm" "k8s_worker" {
count = 3
name = "k8s-node-0${count.index + 1}"
node_name = "pve-node-1"
vm_id = 200 + count.index
cpu {
cores = 4
type = "host"
}
memory {
dedicated = 8192
}
disk {
datastore_id = "local-lvm"
size = 40
interface = "scsi0"
}
initialization {
ip_config {
ipv4 {
address = "192.168.1.5${count.index + 1}/24"
gateway = "192.168.1.1"
}
}
}
}
🚀 Executando o Deploy
terraform init terraform plan terraform apply --auto-approve
Artigo originalmente publicado por Fabio Silva — Arquiteto de Soluções em Cloud, DevOps e IA Generativa.