image

Bootcamps ilimitados + curso de inglês para sempre

80
%OFF
Article image
Douglas Boldrini
Douglas Boldrini12/10/2024 00:11
Compartilhe
Microsoft Certification Challenge #3 DP-100Recomendados para vocêMicrosoft Certification Challenge #3 DP-100

Vagrant: Criando VMs com um comando!

  • #Docker
  • #AWS
  • #DevOps

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.

image

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.

image

IP e Porta sendo informadas para acesso via ssh

image

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:

image

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

image

Curl Instalado

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

Acompanhe..

Compartilhe
Recomendados para você
AWS -  Cloud Amazon Web Services
Jornada DevOps com AWS - Impulso
Microsoft 50 Anos - Prompts Inteligentes
Comentários (2)
Emerson Borges
Emerson Borges - 12/10/2024 11:51

Super legal Douglas,

Vou fazer testes com clusters kubernets e docker e saber se dá pra acessar máquinas em AWS/Azure/GCP


Obrigado pelo excelente exemplo dessa ferramenta do DevOps. Acabei de referenciar o seu artigo no meu LinkEdin

Abraços

JZ

Juliana Zaina - 12/10/2024 09:05

Show! Obrigada por compartilhar.

Recomendados para vocêMicrosoft Certification Challenge #3 DP-100