O documento discute a ferramenta Vagrant, que facilita a criação e configuração de ambientes virtualizados de forma automatizada. Vagrant permite gerenciar VMs usando apenas comandos de linha e sincronizar arquivos entre a máquina real e as VMs. O Chef pode ser usado com Vagrant para automatizar ainda mais a configuração dos ambientes virtuais.
6. ?!
Por que utilizar essa ferramenta ? Quais são os benefícios ?
7. ● Facilidade: Nos ajuda a gerenciar várias VM’s sem ter que acessar nenhum
painel, usando apenas a linha de comando.
8. ● Compatibilidade: É compatível com varias ferramentas de virtualização no
caso são os “providers”, são elas: VirtualBox, Docker, VMware, etc. e até as
maquinas na AWS.
9. ● Praticidade: Como passar os arquivos para VM!? Rsync, SCP, Ftp, wget?
Basta apenas configurar uma pasta compartilhada da sua maquina e ele
abstrai o restante.
10. ● Eficiência nos testes: Como ter um ambiente onde podemos testar e se
não funcionar voltar rapidamente ao seu estado inicial, podendo ser ele
qualquer tipo de SO, bastando apenas fazer rollback e recomeçar os
testes?!.
12. Começando a utilizar…
Baixe o aplicativo direto no site do vagrant
Vagrant Boxes & Providers
● Box é um arquivo contendo uma imagem básica da VM
que será gerenciada pelo vagrant.
13. Começando a utilizar…
Baixe o aplicativo direto no site do vagrant
Vagrant Boxes & Providers
● Box é um arquivo contendo uma imagem básica da VM
que será gerenciada pelo vagrant.
● Cada box é especifico de um provider:
○ VirtualBox, VMWare, Hyper-V, AWS, Docker,
etc…
14. Começando a utilizar…
Baixe o aplicativo direto no site do vagrant
Vagrant Boxes & Providers
● Box é um arquivo contendo uma imagem básica da VM
que será gerenciada pelo vagrant.
● Cada box é especifico de um provider:
○ VirtualBox, VMWare, Hyper-V, AWS, Docker,
etc…
● Um box pode conter qualquer sistema operacional
(ubuntu, debian, centos, etc…), e pode ser baixado no
site VagrantCloud.
23. not created
running
saved
poweroff
Status ...
vagrant up
vagrant suspend
vagrant halt
vagrant destroy
vagrant halt
vagrant up
24. Synchronized folders
● Por padrão onde fica o VagrantFile é montado na VM em “/vagrant”
● config.vm.synced_folder "../shared", "/vagrant”
○ Monta o diretório anterior shared da minha máquina em /vagrant na VM
25. Synchronized folders
● Por padrão onde fica o VagrantFile é montado na VM em “/vagrant”
● config.vm.synced_folder "../shared", "/vagrant”
○ Monta o diretório anterior shared da minha máquina em /vagrant na VM
Networking … (basics)
● Por default a VM e configurada com NAT utilizando um ip privado, o que permite
acessar externamente mas não ao contrario.
● config.vm.network :forwarded_port, guest: 80, host: 8080
○ Permite acesso a rede física a porta 80 da VM através da 8080 da máquina local.
● config.vm.network :public_network
○ A VM fica como “Bridge”, conectando diretamente da rede física
○ Necessita de um dhcp configurado para aceitar o MAC da VM.
○ IP da rede local, menos segura, utilize se tiver conhecimento.
26. Alguns plugins úteis do vagrant (More plugins here) ...
● vagrant-multiprovider-snap
○ Criar snapshots da VM
● vagrant-cachier
○ Salva cache do apt-get, yum, etc. das VMs assim não precisa
baixar novamente toda vez quando for instalar um pacote.
● vagrant-aws
○ Disponibiliza comando para gestão de maquinas na AWS
27. Funcionamento dos snapshots …
running
vagrant up
vagrant snap take
snapshotted
teste + teste- ops
falhou, quero voltar?
control + z?
vagrant snap rollback
36. +
● O vagrant manda o chef executa
● O chef executa de acordo com a receita
● Os cookbooks do chef precisam estar sempre em uma shared folder, pois
chef precisa ler essa receita de dentro da maquina
● Não necessita de arquivo .json para configurar a run list.
37. +
● O provisionamento ocorre implicitamente ao final do processo de criação da VM (primeiro
vagrant up) ou explicitamente pelo comando vagrant provision.
● Lembrando o Provisionamento do Vagrant também funciona com: Puppet, shell script, Docker,
Ansible, CFengine, Salt
38. +
Configurando o VagrantFile para o chef..
Lembrando a receita deve estar em uma pasta compartilhada com a VM para que seja possível o chef-solo
conseguir realizar a execução...