Primeiros passos com Vagrant [Ubuntu]

Primeiros passos com Vagrant [Ubuntu]

VAGRANT

O Vagrant é uma ferramenta que permite criar rapidamente ambientes virtuais com a finalidade de automatizar a construção de laboratórios complexos, desenvolvimento ou provisionamento de ambientes utilizando as soluções de virtualização mais comuns como o Virtualbox e o VMWare.

Para esse tutorial de “Primeiros passos” usaremos máquinas virtuais para preparar o laboratório, porém diferente do que você possa estar acostumado a fazer usando o Virtual Box via interface gráfica, a ideia é usarmos o máximo de possível como código e para isso você deverá usar o Vagrant para fazer qualquer provisionamento de máquina Virtual via Command Line!

INSTALAÇÕES

Usaremos o Virtual Box neste tutorial, então a primeira coisa que faremos é instalar o Vagrant e o VirtualBox.

Instalando o Vagrant via Command Line:

sudo apt install vagrant

Validando o sucesso na instalação do Vagrant:

vagrant --version

Instalando o VirtualBox via Command Line:

sudo apt install virtualbox

Instale também as dependências:

sudo apt install virtualbox-dkms libelf-dev

**PROVISIONANDO SUA PRIMEIRA MÁQUINA **Laboratório 1

O primeiro passo para interagir com o Vagrant é criar um diretório onde ficará o arquivo Vagrantfile, é dentro dele que vão todas as configurações de suas VMs. Para deixar as coisas organizadas vamos criar uma pasta para armazenar nossos projetos do Vagrant.

1- Crie e entre do diretório:

mkdir -pv ~/vagrant/projects && cd ~/vagrant/projects

(Este comando cria o diretório e caso tenha sucesso ‘&&’ irá entrar dentro do mesmo)

**2- Criando o diretório para o Laboratório 1: **

mkdir -v lab01 && cd lab01

3- Escolhendo a imagem/ box:

O Vagrant utiliza o conceito chamado box, que são imagens de sistemas operacionais pré-configurados que vão servir como base para a construção das máquinas virtuais. Acesse a página e escolha uma das boxes disponíveis para VirtualBox, estaremos utilizando neste lab a imagem debian/jessie64.

4- Criando o Vagrantfile

Todas as instruções para se criar máquinas virtuais com o Vagrant são feitas via código usando o arquivo Vagrantfile. Nossa primeira ação é inicializar o vagrant para que ele gera o arquivo Vagrantfile modelo para que possamos futuramente customizar a nosso gosto.

vagrant init -m debian/jessie64

No Vagrant você tem a opção de criar o Vagrantfile usando a opção -m (minimal) que gera um arquivo apenas com as linhas essenciais ou ocultando a opção -m ele irá gerar um arquivo com todos os parâmetros do vagrantfile porém, comentados para você usar caso de fato precise.

Veja o conteúdo do arquivo:

cat Vagrantfile

Todo arquivo Vagrant irá começar com a linha Vagrant.configure(“2”) que representa a versão da API e o bloco de configuração do que você está configurando. No nosso caso apenas especificamos que queremos uma máquina virtual que usa a imagem do Debian.

5- O próximo passo é provisionar de fato a VM com o seguinte comando:

vagrant up

Aqui é onde a mágica realmente acontece, o Vagrant faz download da imagem do SO escolhido para uma cópia local, e a partir desta cópia inicia-se a comunicação com a API do VirtualBox passando todos os parâmetros que você pode customizar no arquivo.

Ao final você pode verificar que a sua máquina foi criada pela interface gráfica do VirtualBox:

Ou executando o comando:

vagrant status

ACESSANDO SUA MÁQUINA

1- Acessando a máquina:

vagrant ssh

Execute alguns comandos para testar sua máquina virtual:

ip address
free -h
df -h
exit

COMANDOS BÁSICOS VAGRANT

Assim como podemos subir nossa máquina com apenas um comando, podemos desligá-la, reativa-la sempre com um comando, a seguir temos alguns dos principais comandos que são importantes que você saiba para conseguir gerenciar suas máquinas virtuais, sempre via Command Line!

Iniciar a configuração de uma VM

vagrant init

(Nesse caso como já criamos, ele apenas vai informar que o Vagrantfile já existe)

Para desligar a VM

vagrant halt

Atualizar boxes

vagrant box update

Para provisionar e/ou ligar uma VM

vagrant up

**Para recarregar uma VM (reboot) **Aqui ele faz a releitura do arquivo de configuração e atualiza a VM caso necessário:

vagrant reload

Para suspender uma VM (pause)

vagrant suspend

Verificar o Status de uma VM

vagrant status

Para fazer resume de uma VM suspensa

vagrant resume

Verificar o status de uma VM (faça de novo para fixar a mudança de status)

vagrant status

Para acessar sua VM

vagrant ssh

Sair de uma VM

exit

Para destruir a VM (apaga todos os dados)

vagrant destroy

Verificar o status de uma VM (faça de novo para fixar a mudança de status)

vagrant status

Para outros comandos e ajuda

vagrant help

Exibir todos os ambientes de Vagrant criados e seus respectivos status

vagrant global-status

CUSTOMIZANDO O VAGRANTFILE

Explorando o Vagrantfile

O “Vagrantfile” funciona de modo bem parecido ao “Dockerfile” do Docker ambos contém parâmetros que permitem configurar uma máquina virtual/contêiner, redirecionamento de conexões de rede, compartilhamento de diretórios e até mesmo executar trechos de código. Porém, como o Vagrant possui muito mais recursos que o Docker por se tratar de uma Máquina Virtual, ele acaba tendo uma estrutura um pouco mais complexa.

Incrementando Vagrantfile

Edite o arquivo Vagrantfile criado anteriormente deixando como no bloco abaixo:

Vagrant.configure("2") do |config|

config.vm.box = "debian/jessie64"
config.vm.hostname = "laboratorio-01"
config.vm.network :private_network, :ip => "10.10.0.100"

config.vm.provider :virtualbox do |v|
v.cpus = 1
v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
v.customize ["modifyvm", :id, "--memory", 512]
v.customize ["modifyvm", :id, "--name", "laboratorio-01"]
end

end

Caso você tenha executado os comandos do bloco anterior sua VMfoi destruída, então execute “vagrant up”, caso contrário, basta dar um reload:

vagrant up

ou

vagrant reload

Ao efetuar ssh na VM perceba que foi definido:

vagrant ssh

Uma nova interface de rede com o ip fixo: 10.10.0.100:

ip address

Foi definido o hostname:

hostnamectl

A memória foi reduzida de 1GB para 512MB:

free -h

Este é um POST de primeiros passos, então aprendemos o que é o Vagrant, o que é e como escolher uma box, gerar um vagrantfile, customizar um vagrantfile e etc. A partir desse post você já conseguirá trabalhar e desfrutar de tudo que o Vagrant pode te trazer, porém indicamos que baixe nosso Ebook de guia definitivo onde você aprenderá criar compartilhamentos de diretórios, executar comandos Shell durante o provisionamento, executar scripts prontos durante o provisionamento, etc!

Por fim, agradecemos a leitura e esperamos que este post tenha te ajudado de alguma maneira! Caso tenha alguma dúvida, entre em contato conosco pelo Telegram , Facebook ou Instagram ! Veja mais posts no IronLinux !

Tags: