Entrar ou criar conta

Laboratório: Provisionamento automatizado de uma máquina virtual Ubuntu no VirtualBox usando Terraform

Você terá uma máquina virtual Ubuntu provisionada automaticamente no VirtualBox, controlada por arquivos Terraform. O laboratório leva cerca de 2 horas para ser concluído.

Automação de infraestrutura como código com Terraform
Ligado ao treinamento Automação de infraestrutura como código com Terraform

Roteiro para estudo em ambiente de laboratório ou de teste. Execute apenas em equipamentos, redes e contas que você tenha autorização para usar, com backup e homologação próprios. Comandos podem causar indisponibilidade ou perda de dados. Software e marcas citados pertencem aos seus titulares. Termos de Uso.

ULC-LAB-AUTO-0003 · Status de validaçãoNão validado pela Upnetix: roteiro derivado da documentação oficial, para você executar e validar
Duração estimada
120 min
Passos
12
Validações
4
Versões da documentação consultada
Terraform 1.6.x · VirtualBox 7.x · Ubuntu Server ISO 22.04 LTS · Provider VirtualBox para Terraform consulte a documentação
Objetivo

Demonstrar como usar Terraform para criar, destruir e versionar uma máquina virtual localmente, sem depender de nuvem pública. O laboratório mostra como Infraestrutura como Código facilita a reprodutibilidade e o controle de mudanças, mesmo em ambientes de laboratório ou desenvolvimento.

Topologia

Seu computador hospeda o VirtualBox e o Terraform. O Terraform controla o VirtualBox via provider, criando uma VM Ubuntu com endereço privado (exemplo: 192.168.56.10) em uma rede interna do VirtualBox. Não há conexão externa obrigatória.

 +--------------------+
 |    Seu PC/Host     |
 |--------------------|
 | Terraform CLI      |
 | VirtualBox         |
 +--------+-----------+
          |
          v
   +--------------+
   |  VM Ubuntu   |
   |192.168.56.10 |
   +--------------+

Equipamentos e software

ItemRequisito, licença ou versão
PC ou notebook2 vCPU, 4 GB RAM, 20 GB livres, suporte a virtualização
Conexão à InternetPara baixar ISOs e pacotes
TerraformMPL 2.0 · 1.6.x
VirtualBoxGPLv2 · 7.x
Ubuntu Server ISOGPL/LGPL · 22.04 LTS
Provider VirtualBox para TerraformMPL 2.0 · consulte a documentação

Roteiro

  1. Preparar ambiente local

    Você precisa do Terraform e do VirtualBox instalados. O VirtualBox permite criar VMs locais. O Terraform orquestra tudo via provider.

    sudo apt update && sudo apt install virtualbox
    curl -fsSL https://releases.hashicorp.com/terraform/1.6.6/terraform_1.6.6_linux_amd64.zip -o terraform.zip
    unzip terraform.zip && sudo mv terraform /usr/local/bin/

    O que você deve ver: VirtualBox e Terraform disponíveis no terminal.

  2. Baixar ISO do Ubuntu Server

    A VM será provisionada a partir da ISO oficial do Ubuntu. Isso garante reprodutibilidade.

    wget https://releases.ubuntu.com/22.04/ubuntu-22.04.4-live-server-amd64.iso

    O que você deve ver: Arquivo ISO salvo no diretório atual.

  3. Instalar o provider VirtualBox do Terraform

    O Terraform precisa de um provider para controlar o VirtualBox. O provider é um plugin externo.

    Consulte a documentação: https://github.com/terra-farm/terraform-provider-virtualbox#installation

    O que você deve ver: Provider instalado e disponível para o Terraform.

  4. Criar diretório do projeto e arquivos iniciais

    Organize seu código em um diretório dedicado. Isso facilita versionamento e manutenção.

    mkdir lab-terraform-vbox && cd lab-terraform-vbox
    touch main.tf variables.tf outputs.tf

    O que você deve ver: Diretório e arquivos vazios criados.

  5. Definir o provider no main.tf

    O Terraform precisa saber qual provider usar e onde está o VirtualBox.

    provider "virtualbox" {
      version = "~> 0.2"
    }
    

    O que você deve ver: Arquivo main.tf com bloco provider configurado.

  6. Declarar recursos: VM, disco e rede

    Você precisa definir recursos básicos: disco, rede e a máquina virtual em si. Isso torna o provisionamento idempotente.

    resource "virtualbox_vm" "ubuntu" {
      name   = "lab-ubuntu"
      image  = "${path.module}/ubuntu-22.04.4-live-server-amd64.iso"
      cpus   = 2
      memory = 2048
      network_adapter {
        type           = "hostonly"
        host_interface = "vboxnet0"
      }
      storage_controller {
        name = "SATA Controller"
        type = "sata"
        port_count = 1
      }
      disk {
        image = "${path.module}/ubuntu-22.04.4-live-server-amd64.iso"
        port  = 0
      }
    }
    

    O que você deve ver: main.tf com recursos definidos. Não execute ainda.

  7. Inicializar o Terraform

    O Terraform precisa baixar plugins e preparar o ambiente.

    terraform init

    O que você deve ver: Mensagem de sucesso indicando inicialização e plugins instalados.

  8. Executar o plano de provisionamento

    O comando 'plan' mostra o que será criado, sem executar. Isso evita surpresas.

    terraform plan

    O que você deve ver: Resumo das ações: criação da VM, disco e rede.

  9. Aplicar o provisionamento

    O comando 'apply' executa de fato as mudanças. O Terraform cria a VM no VirtualBox.

    terraform apply

    O que você deve ver: VM criada, disco anexado, rede configurada. Mensagem final de sucesso.

  10. Verificar a VM no VirtualBox

    Abra o VirtualBox para ver a VM criada. Isso valida o provisionamento físico.

    virtualbox &

    O que você deve ver: VM 'lab-ubuntu' listada e em execução.

  11. Acessar a VM via console do VirtualBox

    Abra o console da VM para ver o boot do Ubuntu. Isso garante que a ISO foi usada corretamente.

    N/A

    O que você deve ver: Tela de instalação do Ubuntu Server exibida na VM.

  12. Destruir a infraestrutura criada

    O comando 'destroy' remove todos os recursos criados. Isso garante reprodutibilidade e evita resíduos.

    terraform destroy

    O que você deve ver: VM removida do VirtualBox e recursos destruídos.

Como saber que funcionou

TesteComandoCritério
Verificar existência da VM no VirtualBoxVBoxManage list vmsA VM 'lab-ubuntu' aparece na lista após o apply, e some após o destroy.
Checar arquivos de estado do Terraformls *.tfstateArquivo terraform.tfstate presente e atualizado após apply.
Verificar logs do Terraformcat terraform.tfstateRecursos declarados aparecem no estado.
Acessar console da VMAbrir VirtualBox e conectar à VMTela de boot do Ubuntu visível.

Troubleshooting

SintomaCausa provávelCorreção
Erro: Provider não encontradoProvider VirtualBox não instalado corretamenteSiga as instruções do provider em https://github.com/terra-farm/terraform-provider-virtualbox#installation
VM não aparece no VirtualBoxTerraform não aplicou o plano ou erro de permissãoVerifique logs do Terraform e permissões do usuário
Erro de rede host-onlyInterface vboxnet0 não criadaCrie a interface no VirtualBox antes de aplicar
ISO não encontradaCaminho da ISO incorreto no main.tfCorrija o caminho para o arquivo ISO baixado

Segurança e hardening

  • Não exponha a rede host-only para a Internet
  • Mantenha o Terraform atualizado para evitar vulnerabilidades conhecidas
  • Não compartilhe arquivos .tfstate sem revisão, pois podem conter dados sensíveis

Checklist final

Referências

  1. Terraform Documentation · HashiCorp (developer.hashicorp.com)
Verificação editorial
Publicado
09/09/2026
Última revisão
09/09/2026
Versão do conteúdo
1.0
Referências
1 oficiais
Revisão técnica
redação e revisão por IA, URLs conferidas na publicação
Status
Atual
Encontrou um erro? Escreva para comercial@upnetix.com.br com o endereço da página. A revisão semestral por IA nunca altera comandos ou configurações sem passar pela fila de revisão.