Vagrant

O Vagrant é um projeto que permite virtualizar o ambiente de desenvolvimento. Com ele podemos executar máquinas virtuais utilizando o VirtualBox, VMware, Hyper-V dentre outros e compatível com os principais provedores cloud como AWS, Rackspace e Digitalocean. 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.

Não será mais preciso baixar um .iso, executar a interface gráfica do VirtualBox e seguir seu passo-a-passo. O Vagrant automatiza esse processo. Cria uma VM para que possamos acessá-la e logo em seguida, senão precisarmos mais dela é só destruí-la via comando.

Instalando o Vagrant

Para esse post estou rodando o sistema operacional Linux Ubuntu, o que trona bastante fácil instalar o Vagrant.

1) Primeiro, precisamos instalar o programa VirtualBox:

$ sudo apt-get install virtualbox

2) Após o VirtualBox ter sido instalado instalaremos o Vagrant:

$ sudo apt-get install vagrant

3) Para verficar se Vagrant esta funcionando digite o seguinte comando:

$ vagrant -v

Configurando o Vagrant

O próximo passo é configurar uma imagem inicial que serve de template para inicializar cada máquina virtual. Estas imagens (box), que servem como ponto de partida, contendo o sistema operacional básico. No caso utilizarei um oferecido pelo próprio Vagrant, que contém a imagem de um Linux Ubuntu Server 14.04 LTS.

Para baixar e configurar esta box, execute o comando:

$ vagrant box add ubuntu/trusty32

Esse comando faz o download do arquivo de imagem da máquina virtual, será necessário uma boa conexão de internet pois essa imagem costuma ser grande. Outras imagens disponibilizadas pela comunidade Vagrant pode ser encontrada em http://www.vagrantbox.es. E recentemente o Vagrant Cloud https://vagrantcloud.com disponibilizo uma forma de encontrar e compartilhar boxes com a comunidade.

Configurando e subindo os servidores

A configuração das máquinas virtuais é feita em um arquivo chamado Vagrantfile, execute:

$ vagrant init

Esse comando cria um arquivo Vagrantfile inicial, com comentários que explica todas as opções de configuração disponíveis.

Vagrantfile que precisamos é:


Vagrant.configure(2) do |config|

config.vm.box = “ubuntu/trusty32”

config.vm.define :srv1 do |srv1_config|
srv1_config.vm.network “private_network”, :ip => “192.168.33.241”
end
config.vm.define :srv2 do |srv2_config|
srv2_config.vm.network “private_network”, :ip => “192.168.33.242”
end
end

Neste arquivo configuramos duas box, com apelidos de “srv001” e “srv002”. Ambas utilizarão a box ubuntu/trusty32 e cada box possui um bloco de configuração que define um endereço rede 192.168.33.241 para o srv001 e 192.168.33.242 para o srv002.

Agora para subir os servidores, basta executar o seguinte comando:

$ vagrant up

Para podemos conectar nas maquinas virtuais via SSH devemos ultilizar o comando a seguir:

$ vagrant ssh srv1

Para destruí-la basta rodar o comando:

$ vagrant destroy

Simples né?!