Introdução

editar

O Vagrant[1] é uma ferramenta para criação e configuração de infraestrutura (Ambientes de desenvolvimento) para um determinado projeto, a partir da utilização de uma Máquina Virtual (VM). Porém, é de se pensar que, para um grande número de projetos, a gerência dessa VM's seja um problema, além de sobrecarregar os recursos de hardware disponíveis. Em relação à questão anterior, o Vagrant abstrai o problema da gerência dessas diversas VM's, deixando o usuário livre para trabalhar no código.

Máquina Virtual (Vagrant)

editar

Uma Máquina Virtual (VM)[2] é um software de ambiente computacional que executa programas como se fosse um computador real, ou seja, é uma cópia eficiente e isolada de uma máquina real. O Vagrant trabalha com VM's leves, reprodutíveis e portáteis. Deste modo, o usuário tem a liberdade de criar um ambiente de desenvolvimento diferenciado para cada um de seus projetos, com Sistemas Operacionais e softwares variados.

Processo de Instalação

editar

Dependências

editar

Para a criação das máquinas virtuais o Vagrant precisa de um provedor de VM's como o VirtualBox, VMware, AWS, ou qualquer outro. Porém, o Vagrant dá suporte automático ao VirtualBox, Hyper-V, e Docker, basta tê-lo(os) instalado(os). Antes que você possa usar um outro provedor, você deve instalá-lo. A Instalação de outros provedores é feita através do sistema de plugins Vagrant. O provedor não precisa estar executando para utilizar o Vagrant.

Instalação do Vagrant

editar

A instalação do Vagrant é extremamente simples. Basta visitar a página de Downloads do Vagrant[3] e obter o instalador ou pacote apropriado para sua plataforma. Instale o pacote utilizando os procedimentos padrões para seu sistema operacional.

O instalador irá adicionar automaticamente o Vagrant ao path do sistema para que este esteja disponível em terminais.

Configuração básica e Iniciação

editar

Neste pequeno guia de iniciação e configuração básica[4] será utilizado o Vagrant com o VirtualBox[5] , uma vez que este é livre, disponível em todas as principais plataformas, e built-in(default) para o Vagrant. Mas lembrando que o Vagrant pode trabalhar com muitos outros provedores de máquinas virtuais.

De início, crie uma pasta para o seu projeto no seu ambiente de trabalho e acesse-a via terminal:

$ mkdir vagrant_getting_started
$ cd vagrant_getting_started

Para a construção de suas máquinas virtuais o Vagrant usa as chamadas "Boxes", ou no singular "Box". Que são imagens base (ISO) do sistema operacional que rodará na VM. Desse forma, é possível clonar rapidamente uma máquina virtual.

Então, antes de qualquer coisa, deve-se adicionar uma box para que esta esteja disponível para criação de um projeto com Vagrant:

$ vagrant box add lucid32 http://files.vagrantup.com/lucid32.box

Neste caso, este comando irá trazer uma Box do Ubuntu Lucid.

Com a Box já pronta, agora basta rodar o comando abaixo para configurar seu projeto com Vagrant:

$ vagrant init lucid32

Isto irá criar um Vagrantfile em seu diretório atual.

Os objetivos do Vagrantfile são:

  • Marcar o diretório raiz do seu projeto. Muitas das opções de configuração no Vagrant são relativos a este diretório raiz.
  • Descrever o tipo de máquina e recursos necessários para executar seu projeto, bem como o software para instalar e como você quer acessá-lo.

Você também pode executar "vagrant init" em um diretório pré-existente para configurar o Vagrant para um projeto existente.

OBS: É importante commitar o Vagrantfile junto ao controle de versão do seu projeto, se você usar um. Desta forma, cada pessoa que trabalha com o projeto poderá ter acesso ao ambiente de desenvolvimento provido pelo Vagrant.

Agora basta subir o ambiente com o comando:

$ vagrant up

Depois de executar este comando, você terá uma máquina virtual totalmente em execução no VirtualBox rodando Ubuntu 10.04.4 LTS 32-bit.

Agora o diretório do seu projeto está sincronizado junto à máquina virtual. Portanto, você pode editar arquivos no conforto de sua própria máquina(host) e tê-los sincronizados para dentro da máquina virtual.

Você pode também fazer um acesso SSH na máquina virtual com:

$ vagrant ssh

E quando você terminar de trabalhar no projeto, você pode encerrar a máquina virtual com:

$ vagrant destroy


É possível, também, usar ferramentas de provisionamento tais como shell scripts, Chef, ou Puppet para instalar e configurar software na máquina automaticamente como parte do processo do "vagrant up". Isso automatiza o processo de instalação de softwares, tornando-o repetível. E Mais interessante ainda, não requer nenhuma interação humana, para que se possa ter um ambiente de trabalho totalmente pronto com um único comando.

Benefícios do Vagrant

editar

Para um desenvolvedor, o Vagrant irá isolar dependências e sua configuração dentro de um único ambiente descartável, consistente, sem sacrificar nenhuma das ferramentas que você está acostumado a trabalhar com (editores, navegadores, depuradores, etc.). Uma vez que você ou alguém cria um único Vagrantfile, você só precisa dar uma "vagrant up" e tudo será instalado e configurado para você trabalhar. Outros membros de sua equipe criarão seus ambientes de desenvolvimento a partir da mesma configuração, por isso se você estiver trabalhando em Linux, Mac OS X ou Windows, todos os membros da equipe estarão executando o código no mesmo ambiente, com as mesmas dependências, tudo configurado do mesmo jeito. Ou seja, o Vagrant veio para acabar com o "funciona na minha máquina".

Referências

editar
  1. https://www.vagrantup.com/
  2. https://pt.wikipedia.org/wiki/M%C3%A1quina_virtual
  3. https://www.vagrantup.com/downloads.html
  4. http://flaviosilveira.com/2012/vagrant-facil-e-util/
  5. https://www.virtualbox.org/