quinta-feira, 29 de fevereiro de 2024

Um guia completo para construir uma Vagrant Box do início ao fim

Construindo uma Vagrant Box: do zero ao compartilhamento

O Vagrant agiliza a criação e o gerenciamento de máquinas virtuais, tornando-o uma ferramenta valiosa para engenheiros de TI. Este guia orienta você na construção de uma caixa Vagrant personalizada, passo a passo, desde a criação da máquina virtual até o compartilhamento com outras pessoas.

Pré-requisitos:

Etapa 1: Configurando a Máquina Virtual

  1. Crie uma nova máquina virtual: Abra o VirtualBox e clique em “Novo”. Escolha o sistema operacional desejado (por exemplo, Ubuntu) e a versão. Aloque memória (por exemplo, 2.048 MB) e espaço de armazenamento (por exemplo, 40 GB) para a máquina virtual.

  2. Configurar pasta compartilhada: clique com o botão direito na VM recém-criada e selecione “Configurações > Pastas Compartilhadas”. Adicione uma pasta compartilhada, especificando o caminho do host (por exemplo, o diretório do seu projeto) e o caminho do convidado (por exemplo, /vagrant).

Passo 2: Provisionando a Máquina Virtual com Vagrant

  1. Inicializar o Vagrant: No diretório do seu projeto (contendo a pasta compartilhada), abra um terminal e execute vagrant initpara inicializar um  Vagrantfile.

  2. Configure o Vagrantfile: Abra o Vagrantfile em um editor de texto e personalize as seguintes seções:

Ruby
# -*- mode: ruby -*-
# vi: set ft=ruby :

VAGRANTFILE_API_VERSION = "2"

# Provider configuration
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "ubuntu/focal64" # Replace with the desired box name and version

  # Shared folder configuration
  config.vm.synced_folder ".", "/vagrant"

  # Update packages & install essential tools
  config.vm.provision "shell", inline: <<-SHELL
    sudo apt-get update -y
    sudo apt-get upgrade -y
    sudo apt-get install -y essential curl unzip rsync
  SHELL
end 

Explicação:

  • VAGRANTFILE_API_VERSIONespecifica a versão da API do Vagrantfile.
  • config.vm.boxdefine a imagem da caixa base a ser usada.
  • config.vm.synced_folderconfigura a pasta compartilhada entre as máquinas host e convidada.
  • config.vm.provisiondefine scripts de provisionamento para execução dentro da máquina virtual.

Etapa 3: Construindo a Caixa Vagrant

  1. Provisione a VM: execute vagrant upno terminal. Isso fará download da caixa base, configurará a máquina virtual e executará os scripts de provisionamento.

  2. Instale software adicional: dentro da máquina virtual (acessível usando vagrant ssh), instale qualquer software adicional necessário para seu caso de uso específico.

  3. Limpe a VM: Depois que a VM estiver configurada, execute sudo apt-get autoremove -ypara remover pacotes desnecessários e liberar espaço em disco.

  4. Empacote a VM: execute vagrant packagepara criar um .boxarquivo compactado contendo a máquina virtual personalizada.

Etapa 4: compartilhando o Vagrant Box (opcional)

  1. Faça upload do .boxarquivo: faça upload do .boxarquivo para uma plataforma como Vagrant Cloud https://app.vagrantup.com/ ou seu repositório privado.

  2. Share the Vagrantfile: Share the Vagrantfile along with the .box file for others to easily provision the virtual machine.

Parabéns! Você construiu e empacotou com sucesso uma caixa Vagrant personalizada, pronta para ser usada para suas necessidades de desenvolvimento ou teste. 

Seguindo essas etapas e personalizando as configurações, você pode criar caixas Vagrant adaptadas às suas necessidades específicas.