Primeiros passos com Vagrant


Nas últimas semanas tenho estudado algumas ferramentas de automação e passei a utilizar bastante o Vagrant e vou mostrar nesse artigo que se você ainda não usa o Vagrant, pode estar perdendo tempo.

O Vagrant é uma solução open source da Hashcorp (que também possui outras ferramentas que estão no hype DevOps, como o Terraform).

Sabe quando você precisa subir uma VM para um teste de laboratório ou algo do tipo? Precisamos ir lá no hypervisor que pode ser um VirtualBox, Vmware e outros do gênero e criar toda a maquineta do zero, com todos aqueles passos de next, next e finish que levam tempo, para depois você poder fazer efetivamente o teste de laboratório que você precisa.



Pois é, e quando esse laboratório precisa ser simulado/emulado em mais de uma VM? É necessário criar outra do zero, copiar ou replicar a VM, ou seja, leva tempo e como diz o senhor sirigueijo "time is money".

Time Is Money GIFs - Get the best GIF on GIPHY


O Vagrant facilita isso pra gente, em high level ele faz a interface entre o usuário e o hypervisor que o usuário utiliza, seja ele o Hyper-V, VirtualBox, VMware etc.




O Vagrant otimiza o nosso tempo nas criações dessas VMs e aumenta a nossa produtividade seja você um estudante, sysadmin ou desenvolvedor.


Alguns termos comuns no Vagrant.


Box

Uma box, é um sistema operacional. O Vagrant faz o download da imagem do sistema que você definiu e aplica na maquina virtual.


Host e Guest

Host é o sistema que esta executando o Vagrant, ou seja, o seu sistema operacional. E Guest é a maquina virtual que será criada.


Provider

É o software responsável pela virtualização. Como dito anteriormente, o Vagrant é compatível com VirtualBox, VMWare, KVM, e outros.


Vagrantfile

O arquivo Vagrantfile é o arquivo de configuração de cada VM no Vagrant. É nele que definimos tudo da maquina virtual, versão do OS, memória, endereço ip entre outros. Veremos mais detalhes mais a seguir.


Requisitos básicos

Além do próprio Vagrant, vamos precisar de um hypervisor e vamos de VirtualBox que por default é o hypervisor do Vagrant. Tanto o Vagrant quanto o VirtualBox estão disponíveis para Linux, MacOS e Windows.


HANDS ON!

1. Instalando o Vagrant:

$ sudo apt install vangrant -y


2. Após a instalação do Vagrant, você pode verificar a versão do Vagrant com o comando

$ vagrant -v  

 Vagrant 2.2.3


3. Você pode criar um diretório para receber a VMs de acordo com a forma que você preferir organizar, eu particularmente fiz assim:

$ cd


Criei os diretórios

$ mkdir -p vagrant/ubuntu


Acessei o diretório

$ cd vagrant/ubuntu


4. Em seguida baixe e instale um sistema operacional de sua escolha, como vimos acima, no Vagrant as VMs são chamadas de Boxes.

No exemplo abaixo vamos baixar a box Ubuntu.


$ vagrant init ubuntu/trusty64


A `Vagrantfile` has been placed in this directory.


Foi feito o download da box e foi informado que o arquivo Vagrantfile foi criado nesse diretório e como vimos anteriormente esse é o arquivo de configuração de cada VM e pode ser editado de acordo com a sua preferência.


5. Para editar o Vagrantfile vamos usar o editor de texto vim:

$ vim Vagrantfile

Aqui vamos adicionar uma placa de rede, "descomentando" a linha 40 (config.vm.network "public network"), dessa forma a VM terá uma placa em modo bridge, com um IP sua rede local e fazendo com que qualquer device dentro da sua rede consiga enxergar a VM.

                                                                   

Obs.: O Vagrantfile é um mundo de possibilidades, nesse artigo estou fazendo o uso básico do arquivo, mas é possível customizar muito mais opções da máquina virtual.


6. Feito isso, basta subir a máquina virtual com o comando:

$ vagrant up


Note no VirtualBox que a VM foi criada em background pelo Vagrant e já está em execução.