Entrar ou criar conta

ULC Lab · implementação reproduzível

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.

Infraestrutura como Código com Terraform do zero à automação
Ligado ao treinamento Infraestrutura como Código com Terraform do zero à automação
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.