Várias máquinas dentro de uma — Parte 2

Artigo publicado em:
http://www.sm4rtchange.com.br/blog-post06.html

Na primeira parte falamos sobre o que é o Vagrant, agora iremos falar sobre como utilizar o Vagrant.

Dependencias

Para isso é necessário ter os seguintes programas instalados:

Objetivo

Criar duas Linux, uma com Apache e PHP, outra com MySQL.

Como funciona?

O Vagrant utiliza um arquivo de configuração chamado Vagrantfile, nele é possível dizer quais os diretórios locais serão sincronizados pela máquina virtual, além de: IP, script de instalação, hostname, DNS, qual imagem será utilizada e etc.

Com isso podemos criar uma máquina virtual do “zero” e reconstrui-la quantas vezes quisermos, aonde quisermos. Assim podemos verificar se uma construção está funcionando sem um “gatilho” ou qualquer configuração feita pelo desenvolvedor.

Imagem via Keepcalm

Mãos a obra!

Passo 1 — Criando o Vagrantfile

Para criarmos o Vagrantfile precisamos executar o comando:

vagrant init hashicorp/precise64

Será exibido uma mensagem:

Abrindo o arquivo de configuração e removendo todos os comentários do arquivo ficará apenas:

Passo 2 — Criando duas máquinas

Para criar as duas máquinas vamos precisar de colocar o seguinte:

Assim teremos duas máquinas, uma de banco de dados (bd) e outra para o Apache e PHP (web). Ambas com IPs distintos, a bd com o IP 192.168.50.5 e aweb com o IP 192.168.50.4.

Executando o comando vagrant up ele baixará a o arquivo com a imagem do Ubuntu.

Além de poder acessar as duas máquinas via SSH, para isso é preciso apenas digitar vagrant ssh <nome-da-maquina>.

Exemplo:

vagrant ssh bd

Para quem está utilizando o Windows é recomendavel que utilizem o GitBash para executar estes comandos, principalmente o de SSH.

Para sair do SSH basta digitar exit e enter.

Passo 3 — Destruindo as máquinas

Porem vamos precisar instalar o MySQL na máquina de banco de dados e o Apache + PHP na máquina web. Para isso vamos precisar DESTRUIR esta instancia, para isso é só executar o comando: vagrant destroy

O arquivo baixado quando você digitou o vagrant up continua em sua máquina, ele será utilizado como modelo toda vez que iniciarmos o Vagrant novamente (caso não exista nenhuma máquina inicializada anteriormente).

Passo 4 — Configurando as máquinas

Para o passo a seguir eu recomendo que utilizem o plugin do vagrant chamadoCachier:

vagrant plugin install vagrant-cachier

Este plugin faz cache dos pacotes baixados pelo gerenciadores de pacote (apt-get, yum, …), assim caso precise destruir e reconstruir a máquina não precisará baixar todos os pacotes novamente.

Agora coloque o seu Vagrantfile ficará assim:

Depois crie um diretório public e dentro dele coloque o arquivo index.phpcontendo:

Agora

Agora inicie o vagrant com vagrant up e acesse:

http://192.168.50.4/

Se tudo deu certo aparecerá:

Exibição do cadastro

Para testarmos se realmente funcionou vamos inserir uma pessoa nova na tabela ‘pessoas’ no banco de dados. Para isso vamos acessar via ssh o banco:

vagrant ssh bd

Depois digite:

mysql -uroot -p123456 sm4rtchange -e “INSERT INTO pessoas (nome) VALUES (‘Paulo’)”

Depois verifique se o http://192.168.50.4 exibe o Paulo e está funcionando.

Cadastro de pessoas

O código fonte deste exemplo se encontra em:

https://github.com/berique/sm4rt-vagrant