Criando ambiente de desenvolvimento com Vagrant
Autor: Reginaldo | Publicado: 2016-11-22T07:00:00-02:00

O que é Vagrant ? 
O Vagrant é um projeto que permite virtualizar o ambiente de desenvolvimento de forma simples.
Com o Vagrant você pode executar máquinas virtuais utilizando o VirtualBox ou VMware, dentre muitas outras opções. Estas máquinas virtuais podem ter qualquer configuração e programas instalados e você pode, inclusive, criar a sua própria configuração com muita facilidade. Isso ajuda bastante quando um novo funcionário é contratado, por exemplo. Se todo o seu ambiente de desenvolvimento for baseado em boxes (box é o nome que o Vagrant utilizada para definir cada máquina virtual) personalizados, tudo o que ele precisa fazer é instalar o Vagrant e executar um único comando.

Depois de conhecer o Vagrant e pra que serve, podemos seguir os procedimentos de instalação e configuração do Vagrant em seu computador com SO Windows ou Linux. 

Instalação do Vagrant 
Como o Vagrant depende do VirtualBox ou VMWare, é necessário instalar um ou outro, nesse caso optei por instalar o VirtualBox. 

Faça o download do VirtualBox conforme o SO que tem no seu PC no site:  
 https://www.virtualbox.org/wiki/Downloads   e a instalação posteriormente. 

Em seguida, faça o download do Vagrant conforme o SO que tem no seu PC no site: 
 https://www.vagrantup.com/downloads.html  e a instalação posteriormente. 

Recomendo criar uma variável de ambiente VBox e Vagrant apontando para o caminho onde foi instalado o VirtualBox e Vagrant, depois aplicar essas variáveis de ambiente no PATH do SO. 
Por que? Para poder executar de qualquer lugar no CMD ou terminal. 

Vagrant na prática  
Agora pesquise um ambiente pronto Vagrant (box) no site: 
 https://atlas.hashicorp.com/boxes/search  e depois execute conforme abaixo: 
vagrant box add nome-box  

Após o download do ambiente (box), inicie com o comando 
vagrant init nome-box  

Acesso ao ambiente (box) via SSH 

vagrant@127.0.0.1 -p 2222 OU

vagrant ssh 

Comandos Vagrant 

vagrant ssh: faz login na máquina virtual, não precisa de login ou senha 

vagrant up: faz o boot na máquina virtual e executa os provisioners definidos 

vagrant reload: reinicia a máquina virtual. Útil principalmente quando há mudanças no Vagrantfile 

vagrant provision: executa apenas os provisioners, sem reiniciar a máquina. Útil após fazer pequenas modificações no provisionamento 

vagrant destroy: destrói a máquina virtual. Use quando quiser começar do zero com um vagrant up vagrant halt - "desliga" a máquina, equivalente a um shutdown 

vagrant suspend: suspende a execução da máquina virtual salvando seu estado (ideal para o dia-a-dia quando desenvolvendo) 

vagrant resume: retoma uma máquina virtual previamente suspensa

 

Convertendo .OVA to .BOX 
Na seção anterior você aprendeu a usar um ambiente Vagrant (box) já pronto do repositório, nessa seção aprenderá como gerar o arquivo box para usar no Vagrant. 
Bom, primeiramente cria uma máquina virtual no VirtualBox, instale uma distro e configure todo o ambiente necessário, depois exporte essa máquina virtual para o formato .ova. 
 Importando VM com formato .ova no VirtualBox   

.OVA é a VM exportada do VirtualBox 
.BOX é a VM convertida do .OVA to .BOX para usar no Vagrant 

Primeiro lista as VMs 
$VBoxManage list vms 
copia o serial da vm 

$vagrant package --base  --output NOME.box  

Transfira essa NOME.box para um servidor da rede. E de outra máquina com o VirtualBox e Vagrant instalados. 

$vagrant box add NOME.box --name NOME 

Cria o arquivo Vagrantfile 
$vagrant init NOME 


Vagrant.configure("2") do |config| 
  config.vm.box = "NOME" 
  # ... 
end 


Liga a VM: $vagrant up 

Desliga a VM: $vagrant halt  

Destroi a VM: $vagrant destroy  

Referências: 

 http://blog.wfsneto.com.br/2014/08/22/como-criar-e-costumizar-box-vagrant-cloud  

 https://nandovieira.com.br/usando-o-vagrant-como-ambiente-de-desenvolvimento-no-windows  

 http://www.erikaheidi.com/pt_br/blog/vagrant-101-montando-seu-ambiente-de-desenvolvimento-portatil  

Feito!