Este material tem o objetivo de abordar conceitos introdutórios sobre virtualização e padronização de ambientes virtuais para desenvolvimento. Veremos os principais conceitos sobre o Vagrant, bem como sua instalação e configuração. Ao final da série teremos um servidor Web pronto para futuras implementações, estando apto para seguir os estudos criando outros testes.
Entenda o Vagrant
O Vagrant é uma ferramenta que permite a rápida criação de ambientes virtuais para testes, desenvolvimento ou provisionamento. Para isso, utiliza as soluções de virtualização mais tradicionais como o Virtualbox e o VMWare, possibilitando também uma compatibilidade com os principais provedores de infraestrutura computacional em nuvem como AWS e DigitalOcean.
Ademais, podemos definir os pré-requisitos para o servidor, como: programas, banco de dados e outras configurações, além de disponibilizar esse modelo padrão acompanhado do projeto. Dessa forma, qualquer pessoa que clonar seu projeto, terá um servidor exatamente igual, sem erros ou possíveis dores de cabeça com versionamento ou problemas similares.
Como funciona?
Usar o Vagrant pode melhorar o seu fluxo de trabalho, pois tem a portabilidade de criar e recriar esses ambientes em qualquer lugar de forma simples por meio de um arquivo chamado Vagrantfile. Para seguir com o exemplo explorado neste tutorial, é necessário que tenhamos o VirtualBox instalado, lembrando também que os passos aqui identificados é destinado para sistemas GNU/Linux. Veja abaixo algumas nomenclaturas importantes para o andamento dos estudos.
Box — É um pacote que contém a base da Máquina Virtual. Em outras palavras, é uma imagem do Sistema Operacional. Dessa forma, um clone idêntico a um Sistema Operacional configurado pode ser compartilhado.
Vagrantfile — Arquivo que guarda as definições para executar a Box. Como serviços que serão executados, arquivos compartilhados, programas que deverão ser instalados, interfaces de rede, entre outros.
Guest — É a máquina que foi requisitada e agora se encontra pronta para ser executada (consiste na máquina virtual).
Provider — O software usado para permitir a virtualização, como por exemplo: Virtualbox e VMWare.
Provisioner — É o software que vai automatizar a instalação e configuração de sua máquina virtual, tornando isto parte do processo de inicialização do Vagrant. As programas mais comuns são: Shell Script, Puppet e Chef .
Instalação
A instalação pode ser feita pelo Download do pacote diretamente pelo site do Vagrant, ou pelo repositório padrão pela linha de comandos. Para esse tutorial, faremos da primeira forma, pois o software instalado será o mais atualizado. Dessa forma, basta adquirir o arquivo de acordo com as distribuições e arquiteturas (32 ou 64 Bits) presentes no site, são elas: Debian, Arch Linux, Centos, entre outras. Para derivados do Debian, existe os arquivos .deb. Podemos executar o arquivo com um duplo clique, ou usar o programa Gdebi via terminal. O Gdebi é um gerenciador de pacotes .deb, caso precise instalá-lo use o comando abaixo:
sudo apt install gdebi
Com o Gdebi instalado, podemos navegar até o diretório do nosso arquivo baixado e executar o seguinte comando:
sudo gdebi vagrant_2.1.5_x86_64.deb
Agora só precisamos aguardar o termino da instalação. Lembrando que para termos êxito é necessário ter o Virtualbox instalado. Para conferir se o passo anterior funcionou corretamente, façamos o comando:
vagrant version
O resultado deve ser semelhante a esse
Installed Version: 2.1.5 Latest Version: 2.1.5 You’re running an up-to-date version of Vagrant!
Principais comandos do Vagrant
Antes de prosseguir com as primeiras configurações, é importante conhecer alguns dos principais comandos que nos auxiliarão no uso do Vagrant. São eles:
- vagrant version — Testa a integridade da instalação no sistema operacional.
- vagrant init — Inicia um projeto Vagrant no diretório atual.
- vagrant status — Exibe o estado vigente da máquina virtual.
- vagrant up — Liga a máquina virtual.
- vagrant ssh — Esse comando permite o acesso remoto a máquina virtual.
- vagrant halt — Desliga a máquina.
- vagrant destroy — Remove a máquina virtual por completo.
- vagrant reload — Com o reload é possível atualizar a máquina após qualquer alteração feita no arquivo de configuração, expansão de memória por exemplo.
Configuração do Vagrant
Iniciaremos o processo de configuração criando uma pasta no local de nossa preferência, onde os arquivos da máquina virtual serão gerado. Como exemplo faremos:
mkdir Vagrant
Para criar a pasta e depois:
cd Vagrant
Para acessar o diretório criado. Se listarmos o conteúdo com o comando ls veremos que não a nada. Com isso o arquivo vagrantfile será criado logo após a execução do comando vagrant init visto anteriormente.
ls -lah total 8,0K drwxr-xr-x 2 matheus matheus 4,0K Out 5 22:10 . drwxr-xr-x 71 matheus matheus 4,0K Out 5 22:10 ..
Com a execução do vagrant init iremos perceber a criação do arquivo Vagrantfile:
vagrant init ls -lah total 8,0K drwxr-xr-x 2 matheus matheus 4,0K Out 5 22:10 . drwxr-xr-x 71 matheus matheus 4,0K Out 5 22:10 .. -rw-rw-r-- 1 matheus matheus 3,0K Out 5 22:30 Vagrantfile
O próximo passo é editar o arquivo gerado, para isso faremos o comando a seguir. Lembrando que você pode usar o editor de texto que achar mais conveniente.
sudo vim Vagrantfile
Vagrantfile
Agora, observe a figura 1. A linha de número 15 será a primeira a ser modificada, para isso vamos remover o comentário e adicionar o nome da máquina. Para conhecimento, o site da comunidade Vagrant trás uma grande quantidade de Boxes. Basta fazer uma busca específica e informar o nome no arquivo de configuração, no nosso modelo escolheremos a provider VirtualBox e o nome da máquina é ubuntu/xenial64 conforme mostra a linha 15.
Na linha 26 estamos informando para o Vagrant que queremos um redirecionamento de portas, ou seja, tudo que chegar na porta 8080 da máquina real será enviado para a porta 80 da máquina virtual.
Para concluir faremos as últimas configurações no arquivo. A primeira removendo o comentário das linhas 52, 57 e 58, onde estaremos definindo a quantidade de memória que a máquina terá quando for criada.
Caso deseje que a máquina virtual se apresente com uma interface gráfica por meio do VirtualBox, descomente também a linha 54.
Por ultimo temos o provisionamento, onde podemos definir comandos que serão realizados no processo de criação do máquina virtual. Nesse exemplo padrão, foi definido o comando para atualização de pacotes e a instalação do Apache2 em seguida, confira as linhas a partir da 66 até a 70 na figura 2.
Finalizando
Com tudo definido podemos salvar o arquivo e chamar o comando que dará ao Vagrant permissão para criar uma máquina conforme definimos. O processo de Download pode variar de acordo com a velocidade da sua conexão com a internet. Para isso faça:
vagrant up
Iniciando a VM
Dando continuidade, configuramos o arquivo Vagrantfile e finalizamos com o comando vagrant up para iniciar a máquina que baixamos do repositório oficial da comunidade Vagrant. Se tudo ocorreu como o planejado, ao listar o status da máquina teremos uma resposta parecida com a apresentada a seguir.
vagrant status Current machine states: default running (virtualbox) The VM is running. To stop this VM, you can run `vagrant halt` to shut it down forcefully, or you can run `vagrant suspend` to simply suspend the virtual machine. In either case, to restart it again, simply run `vagrant up`.
Com a máquina rodando estamos aptos para acessá-la usando o protocolo SSH. Para isso, basta usar o comando abaixo:
vagrant ssh
A partir de agora podemos instalar e administrar serviços no ambiente virtual. O resultado do comando anterior está ilustrado na imagem a seguir.
O Vagrant permite que mais de uma máquina seja baixada e configurada usando um único arquivo Vagrantfile, além disso, cada máquina pode contar com um nome diferente. Nessa situação podemos especificar qual a VM queremos acessar.
Vagrant ssh nome_maquina
Exemplo:
vagrant ssh web
Para desligar a VM faça o comando abaixo:
vagrant halt
Últimos ajustes
Na mesma linha, definimos que o Apache2 seria instalado em sua condição padrão. Podemos fazer o teste digitando o seguinte endereço no navegador:
localhost:8080
Resumindo, teremos como resultado a página do servidor Apache exibida.
Com um pouco de estudo, vamos perceber que são muitas as opções que o Vagrant nos proporciona. Entre eles: definir um IP para cada máquina alterando também os modos da placa de rede (NAT, Bridge). Dessa forma, podemos agora criar o ambiente de acordo com a nossa necessidade, instalando por exemplo o PostgreSQL, entre outros softwares que serão usados em projetos com as mais variadas tecnologias.
Conclusão
Por meio dessa sequência de postagens referentes ao estudo do Vagrant, podemos notar as vantagens de fazer uso dessa ferramenta. Com ela, podemos evitar muitas dores de cabeça quando o assunto é versionamento e provisionamento de ambientes para equipes de desenvolvimento. Entre as aplicações, podemos citar a atualização de um programa, de forma que não seria mais necessário atualizar todas as máquinas individualmente, mas sim configurar o arquivo do Vagrantfile, destruir a máquina antiga e iniciar uma nova com as atualizações desejadas.
Em conclusão, espera-se que essa básica introdução sobre o Vagrant e virtualização de ambientes seja suficiente para que você, caro leitor, possa continuar os estudos de maneira independente. Até breve!
0 Comentários