Como utilizei o Vagrant e o Virtual Box para desenvolvimento local

Quando comecei a explorar o desenvolvimento de infraestrutura local com ferramentas como o Vagrant e o VirtualBox, percebi o quão flexível e rápido elas podem ser na criação de ambientes controlados, prontos para testes e automações. Neste artigo, comp…


This content originally appeared on DEV Community and was authored by Marcos Vilela

Quando comecei a explorar o desenvolvimento de infraestrutura local com ferramentas como o Vagrant e o VirtualBox, percebi o quão flexível e rápido elas podem ser na criação de ambientes controlados, prontos para testes e automações. Neste artigo, compartilho como configurei uma máquina virtual (VM) Linux usando o Vagrant e o VirtualBox para simular implantações em servidores, criar pipelines de automação com Ansible e experimentar configurações de rede e provisão.

Por que o Vagrant?

O Vagrant facilita a criação e o gerenciamento de ambientes de desenvolvimento virtuais. Com ele, é possível configurar uma VM com algumas linhas de código, simplificando a replicação de ambientes e o gerenciamento de configurações. No meu caso, escolhi o Vagrant para criar uma VM Linux, com o intuito de replicar uma estrutura de servidor que uso para testes de deploy e automação com Ansible. Abaixo, descrevo o passo a passo de instalação e configuração.

Instalando o Vagrant e o VirtualBox

Para iniciar, é necessário instalar o VirtualBox e o Vagrant. Eu optei por instalar diretamente pelos sites oficiais, onde há versões atualizadas para diversos sistemas operacionais.

Vagrant

$ wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
$ echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
$ sudo apt update && sudo apt install vagrant

Plugin Vagrant-VirtualBox

$ vagrant plugin install vagrant-vbguest

VirtualBox

$ sudo apt update
$ curl https://www.virtualbox.org/download/oracle_vbox_2016.asc | gpg --dearmor > oracle_vbox_2016.gpg
$ curl https://www.virtualbox.org/download/oracle_vbox.asc | gpg --dearmor > oracle_vbox.gpg
$ sudo install -o root -g root -m 644 oracle_vbox_2016.gpg /etc/apt/trusted.gpg.d/
$ sudo install -o root -g root -m 644 oracle_vbox.gpg /etc/apt/trusted.gpg.d/
echo "deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list
$ sudo apt update
$ sudo apt install -y linux-headers-$(uname -r) dkms
$ sudo apt install virtualbox-7.0 -y

Configurando a VM com Vagrant

Para configurar minha VM, utilizei o arquivo Vagrantfile, que contém as instruções de provisionamento e configuração da máquina virtual. Esse arquivo define o tipo de box (imagem de sistema operacional), a rede e o script de provisão que configura o ambiente conforme necessário.

Aqui está o Vagrantfile que usei:

Vagrant.configure("2") do |config|
  config.vm.hostname = "webserver"
  config.vm.box = "ubuntu/jammy64"
  config.vm.network "public_network", ip: "192.168.3.80", bridge: "wlp1s0"
  config.vm.network "forwarded_port", guest: 80, host: 8080

  config.vm.provision "shell", path: "provision.sh"

  config.vbguest.auto_update = false
  config.vbguest.installer_options = { allow_kernel_upgrade: true }
  config.vm.synced_folder ".", "/vagrant", type: "rsync", rsync__exclude: ".git/"
  config.vm.boot_timeout = 5000
end

Explicando o Vagrantfile:

  • config.vm.hostname: Define o hostname da VM, que neste caso chamei de "webserver".
  • config.vm.box: Especifica a imagem de sistema operacional. Usei ubuntu/jammy64, uma versão do Ubuntu.
  • config.vm.network: Configurei uma rede pública com o IP 192.168.3.80 e uma porta redirecionada para acessar o servidor web.
  • config.vm.provision: Configura o provisionamento por meio de um script provision.sh, que descrevo a seguir.
  • config.vm.synced_folder: Sincroniza uma pasta local com a VM para facilitar a troca de arquivos.

Provisionando a VM
No provision.sh, configurei a VM para adicionar uma chave SSH ao arquivo authorized_keys. Isso facilita o acesso remoto e a automação de tarefas, que realizo posteriormente com Ansible para simular implantações e testes.

Aqui está o conteúdo do arquivo provision.sh:

#!/bin/bash
cat << EOT >> /etc/hosts
# Insere chave ssh na VM
EOT
cat << EOT >> /home/vagrant/.ssh/authorized_keys
ss-rsa example
EOT

Rodando a VM

Para subir a VM, basta rodar o comando:

$ vagrant up

Esse comando lê o Vagrantfile, inicia a máquina virtual e aplica as configurações e o provisionamento. Uma vez que a VM está em execução, posso usá-la para testar o deployment de aplicações, acesso SSH, scripts de automação e outras configurações de infraestrutura.

Esse setup com Vagrant e VirtualBox me permitiu criar um ambiente de desenvolvimento local prático e fácil de gerenciar. Com ele, posso simular cenários de produção, testar automações com Ansible e explorar novas configurações sem impactar meu ambiente de trabalho real. Essa experiência não só agilizou meu fluxo de trabalho, mas também me deu confiança para replicar as configurações em ambientes reais com segurança e previsibilidade.


This content originally appeared on DEV Community and was authored by Marcos Vilela


Print Share Comment Cite Upload Translate Updates
APA

Marcos Vilela | Sciencx (2024-11-07T00:47:18+00:00) Como utilizei o Vagrant e o Virtual Box para desenvolvimento local. Retrieved from https://www.scien.cx/2024/11/07/como-utilizei-o-vagrant-e-o-virtual-box-para-desenvolvimento-local/

MLA
" » Como utilizei o Vagrant e o Virtual Box para desenvolvimento local." Marcos Vilela | Sciencx - Thursday November 7, 2024, https://www.scien.cx/2024/11/07/como-utilizei-o-vagrant-e-o-virtual-box-para-desenvolvimento-local/
HARVARD
Marcos Vilela | Sciencx Thursday November 7, 2024 » Como utilizei o Vagrant e o Virtual Box para desenvolvimento local., viewed ,<https://www.scien.cx/2024/11/07/como-utilizei-o-vagrant-e-o-virtual-box-para-desenvolvimento-local/>
VANCOUVER
Marcos Vilela | Sciencx - » Como utilizei o Vagrant e o Virtual Box para desenvolvimento local. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/11/07/como-utilizei-o-vagrant-e-o-virtual-box-para-desenvolvimento-local/
CHICAGO
" » Como utilizei o Vagrant e o Virtual Box para desenvolvimento local." Marcos Vilela | Sciencx - Accessed . https://www.scien.cx/2024/11/07/como-utilizei-o-vagrant-e-o-virtual-box-para-desenvolvimento-local/
IEEE
" » Como utilizei o Vagrant e o Virtual Box para desenvolvimento local." Marcos Vilela | Sciencx [Online]. Available: https://www.scien.cx/2024/11/07/como-utilizei-o-vagrant-e-o-virtual-box-para-desenvolvimento-local/. [Accessed: ]
rf:citation
» Como utilizei o Vagrant e o Virtual Box para desenvolvimento local | Marcos Vilela | Sciencx | https://www.scien.cx/2024/11/07/como-utilizei-o-vagrant-e-o-virtual-box-para-desenvolvimento-local/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.