Precisa simular seu ambiente de produção para não ter surpresas ao fazer deploy da sua aplicação?
Por que não virtualizá-lo utilizando o Vagrant?
Com o Vagrant podemos criar um ambiente de desenvolvimento idêntico ao ambiente de produção e com isso ao colocarmos nossa aplicação no ar, não teremos nenhuma dor de cabeça.
Muito útil também para equipes que utilizam diversos sistemas operacionais como Linux, Windows, Mac OS, pois todos podem trabalhar com VMs idênticas e ninguém mais vai falar, “não funciona na minha máquina”.
O Vagrant utiliza o VirtualBox para rodar uma máquina virtual, essas máquinas podem possuir qualquer tipo configuração, o que possibilita criar uma máquina para cada projeto. A essas máquinas virtuais (VMs) damos o nome de boxes, nome dado pelo Vagrant a cada VM. As boxes também facilitam e muito a vida de novos membros da equipe, pois basta copiar uma box para o novo desenvolvedor, instalar o Vagrant e subi-la com apenas um comando e este está pronto colaborar com o resto de sua equipe.
Em nosso tutorial utilizaremos uma box baseada em uma distribuição Linux Ubuntu 12.04 LTS 32-bit, mas podemos utilizar dezenas de outras como listado aqui neste link, http://www.vagrantbox.es/
Instalando e configurando o Vagrant
1º – Instalando o VirtualBox
Primeiro vamos instalar o VirtualBox. Para isso baixe da página oficial a versão compatível com seu sistema operacional, em nosso caso vamos baixar a versão Windows. Clique aqui para baixar.
Não é necessário deixar o VirtualBox aberto, apenas instalá-lo
2º – Instalando o Vagrant
Basta acessar o site do Vagrant e baixar a versão Windows
3º – Baixar, Subir e Rodar
Agora abra seu terminal(CMD) e digite “vagrant” sem aspas:
1 |
c:\Users\Mateus>vagrant |
Você verá uma lista de comandos disponíveis para se usar como abaixo:
Pronto com isso conferimos que o Vagrant está instalado e pronto para criar as boxes
Antes de tudo crie um diretório, com o nome de “projetos”, “estudos”, como preferir, na raiz do seu C:\ , eu vou usar “estudos”. E depois dentro desta pasta mais um com o nome “appteste” e pelo terminal navegue até estar dentro dela e então digite:
1 |
C:\estudos\appteste>vagrant init precise32 http://files.vagrantup.com/precise32.box |
Com isso um arquivo com o nome de Vagrantfile foi criado dentro de appteste. Abra-o e procure as linhas abaixo:
1 2 3 4 |
config.vm.box = "precise32" # The url from where the 'config.vm.box' box will be fetched if it # doesn't already exist on the user's system. config.vm.box_url = "http://files.vagrantup.com/precise32.box" |
Esse nome estranho precise32 foi o nome dado a nossa box, poderia ser qualquer coisa, “batman” por exemplo. A configuração box_url é da onde será baixado nossa VM Linux Ubuntu caso ela ainda não exista. Isso vai acontecer agora, ao digitarmos:
1 |
C:\estudos\appteste>vagrant up |
agora nossa box está rodando, mas como acessá-la?
Se estivéssemos usando Linux ou Mac bastaria digitar na console “vagrant ssh” e estaríamos dentro da máquina, mas infelizmente no Windows tem que ser sempre um pouquinho mais difícil, portanto vamos baixar dois programinhas, o PuTTY e PuTTYgen na página de downloads do PuTTY.
Primeiro execute o puttygen.exe e você verá esta tela:
Clique no botão Load e navegue até a pasta C:/Users/<seu usuário>/.vagrant.d/ e procure o arquivo insecure_private_key e clique em “Abrir”. Obs: veja a seta na imagem abaixo e mude para All Files(*.*)
Isso irá carregar a chave privada fornecida pelo Vangrat
Com a chave privada carregada precisamos salvá-la no formato em que o PuTTY reconheça, para isso clique em OK e depois em Save private key
Clique em Sim para salvar sem uma senha
E salve no mesmo diretório com o nome “vagrantkey.ppk“, aqui no caso C:/Users/<seu usuário>/.vagrant.d/
Agora execute o putty.exe e coloque a string de conexão vagrant@127.0.0.1 e porta 2222. Obs: Esses dados de conexão são concedidos quando digitamos “vagrant ssh” na console do windows.
Depois clique em SSH como na figura acima e depois no campo Auth como na figura abaixo e selecione a chave privada que você salvou com o nome de “vagrantkey.ppk”
selecione a chave e clique em Abrir
Volte para a tela inicial do PuTTY clicando em Session e depois salve suas configurações colocando um nome para sua conexão e clicando em Save.
Clique em Open e você deverá ver esta tela
Clique em Sim e uma lágrima deve escorrer dos seus olhos, sim, você está conectado na sua Box.
Agora crie uma pasta chamada meusite dentro de C:\estudos\appteste e digite na console da box, cd /vagrant e e você verá o arquivo Vagrantfile e a pasta meusite, isso acontece porque o Vagrant compartilha a pasta entre os dois sistemas operacionais, portanto todo arquivo ou pasta criado dentro de C:\estudos\appteste é visto dentro da box em /vagrant e vice versa e isso é ótimo, pois conseguimos trabalhar nos dois sistemas e tudo estará sincronizado.
Agora vamos testar nossa box acessando um arquivo .html através do browser, para isso temos que ter um Web Server rodando em nossa box. Pois bem, como toda distribuição Linux já vem com o python instalado vamos utilizá-lo para subir um servidor HTTP básico para escutar na porta 80, mas primeiro entre no arquivo Vagrantfile e descomente a linha:
1 |
config.vm.network :forwarded_port, guest: 80, host: 8080 |
feito isso, qualquer coisa que bater na porta 8080 é encaminhada para a porta 80 da box
voltando na console da nossa box digite:
1 2 3 |
cd /vagrant/meusite echo "<p>Hello Vagrant</p>" >> index.html sudo python -m SimpleHTTPServer 80 |
com isso um servidor HTTP acaba de subir e agora podemos testar digitando no browser http://localhost:8080/index.html
Resumo
E assim chegamos ao final mas não ultimo tutorial sobre o Vagrant, onde foi abordado desde a sua instalação até um pequeno exemplo de um arquivo sendo servido por um web service de dentro da box. Vou deixar também a documentação oficial do Vagrant que me ajudou bastante. Até logo.