Article image
Douglas Boldrini
Douglas Boldrini12/10/2024 00:11
Compartilhe

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.

    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
    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.