Como Usar Terraform no Proxmox VE para Automatizar a Criação de VMs

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.

Deixe um comentário