Vagrant: Criando VMs com um comando!

Douglas Boldrini
Douglas Boldrini
Published in
4 min readSep 5, 2020

Faaala jogador!!! foi isso mesmo que você leu. Não é piramide, nem enganação. Com apenas um comando você instancia o SO que quiser, da forma que quiser, com os recursos que quiser!

Vagrant é um software de código aberto para criar e manter ambientes de desenvolvimento virtuais portáteis, utilizando VirtualBox, KVM, Hyper-V, Docker containers, VMware, e AWS, “e por ai vai”. Ele tenta simplificar a gerência de configuração de software das virtualizações para aumentar a produtividade do desenvolvimento.

Não é a toa que “Vagrant” traduzido para o nosso bom e velho português do Brasil quer dizer: “Vagabundo”. Depois que você desenha tudo o que quer e como quer, é so ir lá e dar um “vagrant up”. É serio, tem casos que nem uma xícara de café dá tempo de você tomar.

Instalar o Vagrant é extremamente fácil. Vá para a página de downloads do Vagrant e obtenha o instalador ou pacote apropriado para sua plataforma. Instale o pacote usando os procedimentos padrão para seu sistema operacional.

Para galera das “janelas":

O instalador adicionará automaticamente vagrant ao caminho do seu sistema para que esteja disponível nos terminais. Se não for encontrado, tente fazer logout e login novamente em seu sistema (isso é especialmente necessário às vezes para Windows).

Para a galera do Pinguin!

Cuidado com os gerenciadores de pacotes do sistema! Algumas distribuições de sistema operacional incluem um pacote vagrant em seus repositórios de pacotes upstream. Por favor, não instale o Vagrant desta maneira. Normalmente, esses pacotes não têm dependências ou incluem versões muito desatualizadas do Vagrant. Se você instalar através do gerenciador de pacotes do seu sistema, é muito provável que você tenha problemas. Use os instaladores oficiais na página de downloads.

Pré Requisitos:

O primeiro passo é fazer a instalação do VirtualBox, pois é preciso um provisionador para criar as VMs. Vários são suportados, mas vou usar o VirtualBox pois é o que eu mais uso em meu dia a dia. Baixe aqui.

Mãos à obra, cuidado se piscar vai perder.

Para você que usa linux, e tenha uma melhor e mais rápida experiência sobre o que significa o uso desta ferramenta no seu dia-a-dia. Eu criei um script, para te ajudar..(caso use Linux Debian/Ubuntu/Mint) abra seu terminal como root e execute os comando a seguir. Caso use Windows, é só ir na base do next-next-finish.

apt update -y
apt install -y virtualbox curl
curl -O https://releases.hashicorp.com/vagrant/2.2.9/vagrant_2.2.9_x86_64.deb
sudo dpkg -i vagrant_2.2.9_x86_64.deb
cd ~/
mkdir k8s-ha

Dentro desta pasta vamos criar um arquivo chamado Vagrantfile com a definição de 3 máquinas.

cd k8s-ha
cat > Vagrantfile <<’EOF’
# -*- mode: ruby -*-
# vi: set ft=ruby :
vms = {
‘master3’ => {‘memory’ => ‘512’, ‘cpus’ => 1, ‘ip’ => ‘30’},
‘master2’ => {‘memory’ => ‘1024’, ‘cpus’ => 1, ‘ip’ => ‘20’},
‘master1’ => {‘memory’ => ‘256’, ‘cpus’ => 1, ‘ip’ => ‘10’}
}
Vagrant.configure(“2”) do |config|
config.vm.box = “debian/stretch64”
config.vm.box_version = “9.12.0”
config.vm.box_check_update = false

vms.each do |name, conf,i|
config.vm.define “#{name}” do |k|
k.vm.hostname = “#{name}.k8s.cluster”
k.vm.network ‘private_network’, ip: “172.27.11.#{conf[‘ip’]}”
k.vm.provider ‘virtualbox’ do |vb|
vb.memory = conf[‘memory’]
vb.cpus = conf[‘cpus’]
end
k.vm.provision “shell”, inline: <<-SHELL
apt-get -y update
apt-get install -y curl
SHELL
end
end
end
EOF

Neste exemplo eu já passo parâmetros de instalação para ele dar um update no repositorio e e instalar o curl, caso não queira tudo isso é so remover a parte de k.vm.provision.

Após ter salvo o arquivo, no terminal dentro do diretorio você entra com o seguinte comando:

vagrant up

Isso fara com que o arquivo seja executado e caso não tenha feito isso antes ele irá baixar o box da imagem. Dúvidas de comandos utilizevagrante doc”, ou de um vagrant help aí cara!

Após ter terminado vai perceber que a instalação já vai informando os usuários e locais da chave de acesso e o método de acesso para cada instância com IP e porta. Caso não tenha visto, entre com o comando..

vagrant ssh-config

..para saber as portas ssh de cada host caso for usar putty ou outro cliente SSH copiando seus respectivos IdentityFile.

IP e Porta sendo informadas para acesso via ssh
Scripts sendo executados (apt update && apt install curl -y)

Para acessar as máquinas utilizará seu terminal preferido e entrará via ssh com o comando:

(exemplo do master3):

ssh -i /home/douglas/Medium/.vagrant/machines/master3/virtualbox/private_key vagrant@127.0.0.1 -p2222

Após acessar todas as instancias:

Acesso via ssh utilizando o meu amado terminal Tillix (recomendo)
Curl Instalado

Curtiu? em breve irei mostrar como subir instâncias executando um script externo!

Acompanhe..

--

--

Douglas Boldrini
Douglas Boldrini
0 Followers
Editor for

Father of Yan and Zoe, Graduated in Analysis and Systems Development with specialization in Information Security. DevOps student and a reluctant pioneer of the