Como Automatizar Máquinas Virtuais Proxmox Usando Terraform Facilmente?

Gerenciar muitas máquinas virtuais pode ser lento e propenso a erros. Com o Terraform e o Proxmox, você usa código para controlar suas VMs. Este artigo mostra passo a passo como configurar a automação e otimizar seu fluxo de trabalho.

download-icon
Descarregar Gratuitamente
para VM, SO, DB, Arquivo, NAS, etc.
joao

Updated by João on 2026/01/08

Índice
  • O Que é o Terraform?

  • O que é o Proxmox?

  • Por Que Usar o Terraform com o Proxmox?

  • Método 1: Como Configurar o Terraform para Proxmox

  • Método 2: Provisionamento de Máquinas Virtuais com o Provedor Terraform Proxmox

  • Faça backup de VMs Proxmox com Vinchin Backup & Recovery

  • Usando o Terraform com Proxmox – Perguntas Frequentes

  • Conclusão

Gerenciar máquinas virtuais pode ser tedioso quando você precisa implantar ou atualizar muitas ao mesmo tempo. Não seria mais fácil se você pudesse automatizar essas tarefas? É aí que o Terraform e o Proxmox se unem. Com eles, você gerencia sua infraestrutura como código, economizando tempo e reduzindo erros. Vamos explorar como o "terraform proxmox" pode transformar suas operações diárias.

O Que é o Terraform?

O Terraform é uma ferramenta de código aberto que permite criar, alterar e gerenciar infraestrutura com segurança usando código. Você escreve arquivos de configuração simples para descrever quais recursos deseja—servidores, redes, armazenamento—and o Terraform os cria para você. Ele funciona em várias plataformas. A HashiCorp mantém o Terraform, tornando-o uma escolha confiável no DevOps.

O que é o Proxmox?

Proxmox Virtual Environment (VE) é uma plataforma de virtualização open-source robusta. Ela permite executar máquinas virtuais (VMs) e contêineres em seu hardware. O Proxmox oferece uma interface baseada na web com recursos de clustering e suporta a migração ao vivo de VMs entre hosts. É popular tanto em laboratórios domésticos quanto em centros de dados empresariais.

Por Que Usar o Terraform com o Proxmox?

Combinar o Terraform com o Proxmox oferece ferramentas de automação poderosas. Você define sua infraestrutura de VM como código, garantindo implantações consistentes a cada vez. Se precisar de dez VMs idênticas, por que clicar em menus dez vezes? Com "terraform proxmox", escreva a configuração uma vez e aplique-a sempre que necessário.

Você também obtém controle de versão sobre as alterações na sua infraestrutura. Isso significa menos erros manuais e recuperação mais rápida se algo der errado.

Método 1: Como Configurar o Terraform para Proxmox

A automação do Proxmox com o Terraform começa com a configuração correta de ambas as ferramentas em sua máquina de gerenciamento.

Instale o Terraform

Primeiro de tudo—instale o próprio Terraform no seu sistema local ou onde quer que você gerencie a infraestrutura. Baixe a versão mais recente do site oficial. Siga as instruções específicas para Windows, Linux ou macOS; a instalação geralmente leva apenas alguns minutos.

Depois de instalar, verifique se está funcionando executando terraform --version no seu terminal ou prompt de comando.

Configure o Provedor Proxmox

A seguir, conecte o Terraform ao seu servidor Proxmox usando um plugin de provedor—o provedor Telmate é amplamente utilizado para esse fim.

Crie um novo diretório para os arquivos do seu projeto (por exemplo: mkdir terraform-proxmox). Dentro desta pasta, crie um arquivo chamado main.tf:

terraform {
  required_providers {
    proxmox = {
      source  = "Telmate/proxmox"
      version = ">=2.9.9.11"
    }
  }
}

provider "proxmox" {
  pm_api_url      = "https://your-proxmox-server:8006/api2/json"
  pm_user         = "root@pam"
  pm_password     = "yourpassword" # Use API token or environment variable instead of hardcoding
  pm_tls_insecure = true            # Only use 'true' for testing; see below
}

Substitua your-proxmox-server pelo endereço real do seu servidor; substitua yourpassword pelas credenciais — mas nunca codifique senhas diretamente em produção! Para maior segurança, utilize tokens de API ou variáveis de ambiente (veja a próxima seção).

Se estiver apenas testando localmente ou tiver certificados autoassinados no Proxmox VE, defina pm_tls_insecure como true; caso contrário, use certificados SSL válidos em ambientes de produção.

Inicialize o projeto executando:

terraform init

Isto faz o download dos plugins necessários para que você esteja pronto para prosseguir quando vir "O Terraform foi inicializado com sucesso!"

Protegendo Credenciais com Variáveis de Ambiente ou Tokens de API

Incorporar informações sensíveis como senhas diretamente no código é arriscado — ainda mais ao compartilhar código entre equipes! Em vez disso:

1. Utilize variáveis de ambiente:

Define variáveis como:

  • TF_VAR_pm_api_url

  • TF_VAR_pm_user

  • TF_VAR_pm_password

Em sistemas semelhantes ao Unix:

   export TF_VAR_pm_api_url="https://your-prox-server:8006/api2/json"
   export TF_VAR_pm_user="root@pam"
   export TF_VAR_pm_password="supersecret"

2. Utilize Tokens de API:

Gere um token de API através de Datacenter > Permissões > Tokens de API na interface web do Proxmox.

Em seguida, atualize o seu bloco de provedor:

   provider "proxmox" {
     pm_api_url            = var.pm_api_url
     pm_api_token_id       = var.pm_api_token_id
     pm_api_token_secret   = var.pm_api_token_secret
     pm_tls_insecure       = false # Recomendado para produção!
   }

3. Definir Variáveis em Arquivos:

Crie um arquivo separado (variables.tf) listando todas as variáveis usadas acima para que sejam fáceis de gerenciar sem expor segredos diretamente em repositórios de código.

Usar esses métodos mantém as credenciais fora de vista – uma prática essencial!

Método 2: Provisionamento de Máquinas Virtuais com o Provedor Terraform Proxmox

Uma vez concluída a configuração, é hora de realmente criar VMs automaticamente usando arquivos de configuração, em vez de clicar pelos menus cada vez!

Preparando um Modelo de VM Proxmox para Clonagem

A maneira mais eficiente de implantar várias VMs semelhantes é clonando a partir de um modelo existente — uma imagem base pré-configurada com configurações do sistema operacional, mas ainda não atribuída identidades exclusivas como nome do host ou endereço IP.

Para preparar um:

1. Crie uma nova VM por meio do assistente Criar VM na interface web.

2. Instale um sistema operacional (como o Ubuntu Server).

3. Personalize as configurações conforme necessário (tamanho do disco/rede).

4. Desligue a VM após a conclusão da instalação.

5. Clique com o botão direito no nome dele em Datacenter, depois selecione Converter em Modelo.

6. Agora este modelo pode ser clonado repetidamente!

Sem este passo, a clonagem falhará, pois nenhuma fonte existe – portanto, sempre prepare os modelos primeiro antes de automatizar implantações em massa!

Definir a Configuração da VM Usando Arquivos HCL

Agora vamos definir como deve ser a aparência da nossa nova VM dentro de outro arquivo chamado vm.tf. Aqui está um exemplo de bloco de recurso:

resource "proxmox_vm_qemu" "ubuntu_vm" {
  name        = "ubuntu-vm"
  target_node = "prox-node1"
  clone       = "ubuntu-template" # Deve corresponder ao nome do modelo preparado!
  cores       = 2
  memory      = 2048
  
  disk {
    size    = "20G"
    type    = "scsi"
    storage = "local-lvm"
  }

  network {
    model  = "virtio"
    bridge = "vmbr0"
  }

  os_type    = "cloud-init"
  ciuser     = var.vm_user         # Use variável aqui!
  cipassword = var.vm_password     # Nunca codifique senhas diretamente!
  
  ipconfig0 =
    "ip=192.168.1.1"

}

Certifique-se de que "clone" corresponda exatamente ao nome do modelo criado anteriormente! Ajuste os valores de CPU/memória/disco/rede conforme necessário—e sempre use variáveis em vez de segredos em texto simples, quando possível.

1.100/24,gw=192.1681.

Usando Cloud-Init para Configuração Dinâmica

Você percebeu que "os_type" está definido como "cloud-init" acima? O Cloud-Init permite injetar dados do usuário, como nomes de usuário/senhas/endereços IP, no momento da inicialização—tornando cada máquina virtual clonada única, mesmo que compartilhem uma mesma imagem base!

Para ativar o suporte ao Cloud-Init:

1. Faça o upload de imagens oficiais do Cloud-Init ISO através do menu Datacenter > Armazenamento > Conteúdo > Upload.

2. Anexe esse ISO como unidade de CD-ROM durante a criação inicial do modelo.

3. Ao definir recursos em HCL (os_type, ciuser, etc.), especifique valores dinâmicos conforme as necessidades de implantação.

4. Opcionalmente, utilize parâmetros avançados como "cicustom" se fornecer scripts/configurações personalizadas.

Essa abordagem economiza horas em comparação com a personalização manual após a clonagem!

Aplicar a Configuração e Gerenciar o Ciclo de Vida

Pronto para lançar? Execute esses comandos no diretório do seu projeto:

terraform plan

Isso mostra uma prévia das alterações que ocorrerão—sempre revise a saída antes de aplicar atualizações importantes!

Se satisfeito, execute:

terraform apply

O Terraform agora instrui o(s) servidor(es) Proxmox VE por meio de sua API—para criar novas VMs compatíveis com todos os parâmetros especificados! O progresso aparece tanto na tela quanto no painel da interface web.

Destruição Segura de Recursos

Precisa de limpeza posterior?

terraform destroy

remove tudo definido pelas configurações atuais — incluindo a exclusão permanente de VMs! Tenha cuidado aqui; considere adicionar regras de ciclo de vida, como:

lifecycle {
 prevent_destroy = true 
}

a recursos críticos para que limpezas acidentais não aconteçam.

Faça backup de VMs Proxmox com Vinchin Backup & Recovery

Após automatizar a implantação de máquinas virtuais usando fluxos de trabalho do terraform proxmox, garantir um backup confiável torna-se essencial para a continuidade dos negócios e proteção de dados em ambientes como Proxmox VE e além (incluindo VMware, Hyper-V, oVirt, OLVM, RHV, XCP-ng, XenServer, OpenStack, ZStack e mais de 15 plataformas de virtualização mainstream). Vinchin Backup & Recovery destaca-se como uma solução corporativa projetada especificamente para backup de máquinas virtuais em infraestruturas diversas.

Com ampla compatibilidade — incluindo suporte completo a modos de backup incremental, como backups baseados em CBT em hipervisores compatíveis — o Vinchin Backup & Recovery oferece recursos robustos adaptados às necessidades modernas de TI: estratégias de backup incremental contínuo minimizam o uso de armazenamento; deduplicação/compressão aceleram tarefas e economizam espaço; restauração granular permite cenários precisos de recuperação; backups agendados garantem proteção regular sem intervenção manual; migração V2V multiplataforma simplifica a mobilidade de cargas de trabalho entre diferentes hipervisores — tudo gerenciado por meio de uma única interface intuitiva que transforma operações complexas em fluxos de trabalho claros.

Fazer backup de uma VM recém-provisionada com o Vinchin Backup & Recovery envolve apenas quatro etapas por meio do seu console da web amigável:

✅ Etapa 1: Faça backup da VM Proxmox

Selecione a VM Proxmox para fazer backup

✅ Etapa 2: Restaurar na Plataforma de Destino (por exemplo, Azure ou VMware)

Escolher armazenamento de backup

✅ Passo 3:  Configurar estratégias de backup;

Configurar estratégias de backup

✅ Passo 4:  Enviar o trabalho.

Enviar o trabalho

Reconhecido globalmente por milhares de empresas — com as melhores classificações e forte confiança dos clientes —, o Vinchin Backup & Recovery oferece um teste gratuito completo, válido por 60 dias; clique abaixo para experimentar diretamente uma proteção abrangente aos seus dados!

Usando o Terraform com Proxmox – Perguntas Frequentes

P1: Posso automatizar a criação de contêineres junto com máquinas virtuais usando o Terraform com Proxmox?

Sim—você pode gerenciar máquinas virtuais baseadas em QEMU e contêineres LXC por meio de tipos de recursos suportados dentro das mesmas configurações.

Q2: Como faço para alterar com segurança as credenciais usadas pelos meus scripts de automação?

Armazene segredos fora da base de código — em variáveis de ambiente — ou integre gerenciadores externos de segredos e, em seguida, faça referência a eles dinamicamente durante as execuções.

P3: O que devo fazer se minha personalização do cloud-init não for aplicada após a clonagem?

Verifique se o ISO do cloud-init foi anexado corretamente durante a criação do modelo e, em seguida, verifique se a sintaxe e os valores corretos foram passados para as definições de recursos. 

Conclusão

A automação da gestão de máquinas virtuais através do terraform proxmux aumenta a eficiência e reduz o risco de erros humanos em equipes de operações de TI em todo o mundo! Para backups confiáveis integrados perfeitamente nesses fluxos de trabalho, considere o Vinchin — uma solução comprovada e confiável globalmente por profissionais como você.

Partilhar em:

Categories: VM Backup