Vagrant: Criando VMs com um comando!
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 utilize “vagrante 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..