SlideShare une entreprise Scribd logo
1  sur  45
Télécharger pour lire hors ligne
+
Gerenciando ambientes Virtualizados com: 
+
Olavo Queiroz Guimarães 
about.me/olavoqueirozg 
olavo.guimaraes@dextra-sw.com
?! 
Por que utilizar essa ferramenta ? Quais são os benefícios ?
● Facilidade: Nos ajuda a gerenciar várias VM’s sem ter que acessar nenhum 
painel, usando apenas a linha de comando.
● 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.
● 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.
● 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?!.
Começando a utilizar… 
Baixe o aplicativo direto no site do vagrant
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.
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…
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.
Vamos á pratica…. 
?!
Vamos á pratica…. 
?! 
Vagrant Command Line Interface
Iniciando um arquivo de configuração…
Iniciando um arquivo de configuração… 
Algumas configurações básicas para virtualbox…
Have created?! ….
Have created?! …. 
Starting ….
Next Step….
Next Step…. 
Connecting ...
not created 
running 
saved 
poweroff 
Status ... 
vagrant up 
vagrant suspend 
vagrant halt 
vagrant destroy 
vagrant halt 
vagrant up
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
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.
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
Funcionamento dos snapshots … 
running 
vagrant up 
vagrant snap take 
snapshotted 
teste + teste- ops 
falhou, quero voltar? 
control + z? 
vagrant snap rollback
Vagrant provider=amazon... 
Configurando uma conta AWS no Vagrantfile:
Vagrant provider=amazon... 
Configurando uma conta AWS no Vagrantfile:
?! 
Em que parte o chef entra?! Como ele pode nos ajudar?!
● O chef a ferramenta que vai nos ajudar na construção do 
ambiente.
● Podemos escrever receitas de automação que ele configure 
tudo automaticamente.
Exemplo de cookbooks... 
?!
Exemplo de cookbooks... 
?!
Exemplo de cookbooks...
+ 
● 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.
+ 
● 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
+ 
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...
Testes + 
+
Testes + Testes 
+
+ 
Testes + Testes - RollBack
+ 
Testes + Testes - RollBack = Ambientes Padronizados
+ 
Testes + Testes - RollBack = Ambientes Padronizados + Testes Eficientes
+ 
Testes + Testes - RollBack = Ambientes Padronizados + Testes Eficientes
Dúvidas 
Links de apoio 
https://github.com/bila-olavo 
https://github.com/mitchellh 
https://www.vagrantup.com/

Contenu connexe

Tendances

Programando php com mais segurança
Programando php com mais segurançaProgramando php com mais segurança
Programando php com mais segurançaMichael Douglas
 
Docker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaDocker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaMatheus Fidelis
 
Escalando API's com NodeJS, Docker e RabbitMQ
Escalando API's com NodeJS, Docker e RabbitMQEscalando API's com NodeJS, Docker e RabbitMQ
Escalando API's com NodeJS, Docker e RabbitMQMatheus Fidelis
 
Cya grunt.js, hello gulp.js
Cya grunt.js, hello gulp.jsCya grunt.js, hello gulp.js
Cya grunt.js, hello gulp.jsMichael Douglas
 
Vagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolsoVagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolsoDiogo Lucas
 
Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigitalJust Digital
 
A Arte do Deployment - WebDevCamp
A Arte do Deployment - WebDevCampA Arte do Deployment - WebDevCamp
A Arte do Deployment - WebDevCampGeorge Guimarães
 
Docker na vida real
Docker na vida realDocker na vida real
Docker na vida realFernando Ike
 
Evitando a fadiga com Laravel Homestead
Evitando a fadiga com Laravel HomesteadEvitando a fadiga com Laravel Homestead
Evitando a fadiga com Laravel HomesteadDanilo Esser
 
Devshare - Automatizando tarefas de javascript com GruntJS
Devshare  - Automatizando tarefas de javascript com GruntJSDevshare  - Automatizando tarefas de javascript com GruntJS
Devshare - Automatizando tarefas de javascript com GruntJSRafael Lyra
 
Trabalhando de forma profissional com silex
Trabalhando de forma profissional com silexTrabalhando de forma profissional com silex
Trabalhando de forma profissional com silexMichael Douglas
 

Tendances (20)

Estudo de caso - Uso Docker no Desenvolvimento
Estudo de caso - Uso Docker no DesenvolvimentoEstudo de caso - Uso Docker no Desenvolvimento
Estudo de caso - Uso Docker no Desenvolvimento
 
Conceitos Basicos e Docker - Java Noroeste
Conceitos Basicos e Docker - Java NoroesteConceitos Basicos e Docker - Java Noroeste
Conceitos Basicos e Docker - Java Noroeste
 
Programando php com mais segurança
Programando php com mais segurançaProgramando php com mais segurança
Programando php com mais segurança
 
Docker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaDocker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG Cabreúva
 
Escalando API's com NodeJS, Docker e RabbitMQ
Escalando API's com NodeJS, Docker e RabbitMQEscalando API's com NodeJS, Docker e RabbitMQ
Escalando API's com NodeJS, Docker e RabbitMQ
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Docker para maiores
Docker para maioresDocker para maiores
Docker para maiores
 
Cya grunt.js, hello gulp.js
Cya grunt.js, hello gulp.jsCya grunt.js, hello gulp.js
Cya grunt.js, hello gulp.js
 
Putting a-heat-with-thermostat
Putting a-heat-with-thermostatPutting a-heat-with-thermostat
Putting a-heat-with-thermostat
 
Vagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolsoVagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolso
 
Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigital
 
A Arte do Deployment - WebDevCamp
A Arte do Deployment - WebDevCampA Arte do Deployment - WebDevCamp
A Arte do Deployment - WebDevCamp
 
Docker na vida real
Docker na vida realDocker na vida real
Docker na vida real
 
Apresentacao docker
Apresentacao dockerApresentacao docker
Apresentacao docker
 
Consegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + PuppetConsegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + Puppet
 
Utilizando Docker para escalonar aplicações Node.Js
Utilizando Docker para escalonar aplicações Node.JsUtilizando Docker para escalonar aplicações Node.Js
Utilizando Docker para escalonar aplicações Node.Js
 
Evitando a fadiga com Laravel Homestead
Evitando a fadiga com Laravel HomesteadEvitando a fadiga com Laravel Homestead
Evitando a fadiga com Laravel Homestead
 
Mrtg
MrtgMrtg
Mrtg
 
Devshare - Automatizando tarefas de javascript com GruntJS
Devshare  - Automatizando tarefas de javascript com GruntJSDevshare  - Automatizando tarefas de javascript com GruntJS
Devshare - Automatizando tarefas de javascript com GruntJS
 
Trabalhando de forma profissional com silex
Trabalhando de forma profissional com silexTrabalhando de forma profissional com silex
Trabalhando de forma profissional com silex
 

En vedette

Detecting Unknown Attacks Using Big Data Analysis
Detecting Unknown Attacks Using Big Data AnalysisDetecting Unknown Attacks Using Big Data Analysis
Detecting Unknown Attacks Using Big Data AnalysisEditor IJMTER
 
IBM ridefinisce la strategia e l'approccio verso gli Avanced Persistent Threa...
IBM ridefinisce la strategia e l'approccio verso gli Avanced Persistent Threa...IBM ridefinisce la strategia e l'approccio verso gli Avanced Persistent Threa...
IBM ridefinisce la strategia e l'approccio verso gli Avanced Persistent Threa...Luigi Delgrosso
 
Jaime Blasco - Fighting Advanced Persistent Threat (APT) with Open Source Too...
Jaime Blasco - Fighting Advanced Persistent Threat (APT) with Open Source Too...Jaime Blasco - Fighting Advanced Persistent Threat (APT) with Open Source Too...
Jaime Blasco - Fighting Advanced Persistent Threat (APT) with Open Source Too...RootedCON
 
PRADS presentation (English) @ University of Oslo by Ebf0 and kwy
PRADS presentation (English) @ University of Oslo by Ebf0 and kwyPRADS presentation (English) @ University of Oslo by Ebf0 and kwy
PRADS presentation (English) @ University of Oslo by Ebf0 and kwyRubén Romero
 
NTXISSACSC2 - Advanced Persistent Threat (APT) Life Cycle Management Monty Mc...
NTXISSACSC2 - Advanced Persistent Threat (APT) Life Cycle Management Monty Mc...NTXISSACSC2 - Advanced Persistent Threat (APT) Life Cycle Management Monty Mc...
NTXISSACSC2 - Advanced Persistent Threat (APT) Life Cycle Management Monty Mc...North Texas Chapter of the ISSA
 
Advanced persistent threat (apt)
Advanced persistent threat (apt)Advanced persistent threat (apt)
Advanced persistent threat (apt)mmubashirkhan
 
Common Techniques To Identify Advanced Persistent Threat (APT)
Common Techniques To Identify Advanced Persistent Threat (APT)Common Techniques To Identify Advanced Persistent Threat (APT)
Common Techniques To Identify Advanced Persistent Threat (APT)Yuval Sinay, CISSP, C|CISO
 

En vedette (7)

Detecting Unknown Attacks Using Big Data Analysis
Detecting Unknown Attacks Using Big Data AnalysisDetecting Unknown Attacks Using Big Data Analysis
Detecting Unknown Attacks Using Big Data Analysis
 
IBM ridefinisce la strategia e l'approccio verso gli Avanced Persistent Threa...
IBM ridefinisce la strategia e l'approccio verso gli Avanced Persistent Threa...IBM ridefinisce la strategia e l'approccio verso gli Avanced Persistent Threa...
IBM ridefinisce la strategia e l'approccio verso gli Avanced Persistent Threa...
 
Jaime Blasco - Fighting Advanced Persistent Threat (APT) with Open Source Too...
Jaime Blasco - Fighting Advanced Persistent Threat (APT) with Open Source Too...Jaime Blasco - Fighting Advanced Persistent Threat (APT) with Open Source Too...
Jaime Blasco - Fighting Advanced Persistent Threat (APT) with Open Source Too...
 
PRADS presentation (English) @ University of Oslo by Ebf0 and kwy
PRADS presentation (English) @ University of Oslo by Ebf0 and kwyPRADS presentation (English) @ University of Oslo by Ebf0 and kwy
PRADS presentation (English) @ University of Oslo by Ebf0 and kwy
 
NTXISSACSC2 - Advanced Persistent Threat (APT) Life Cycle Management Monty Mc...
NTXISSACSC2 - Advanced Persistent Threat (APT) Life Cycle Management Monty Mc...NTXISSACSC2 - Advanced Persistent Threat (APT) Life Cycle Management Monty Mc...
NTXISSACSC2 - Advanced Persistent Threat (APT) Life Cycle Management Monty Mc...
 
Advanced persistent threat (apt)
Advanced persistent threat (apt)Advanced persistent threat (apt)
Advanced persistent threat (apt)
 
Common Techniques To Identify Advanced Persistent Threat (APT)
Common Techniques To Identify Advanced Persistent Threat (APT)Common Techniques To Identify Advanced Persistent Threat (APT)
Common Techniques To Identify Advanced Persistent Threat (APT)
 

Similaire à Gerenciando ambientes virtualizados com Vagrant e Chef

UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)Wagner Bianchi
 
Vagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVinícius Krolow
 
Desenvolvimento PHP com Vagrant - 7Masters PHP
Desenvolvimento PHP com Vagrant - 7Masters PHPDesenvolvimento PHP com Vagrant - 7Masters PHP
Desenvolvimento PHP com Vagrant - 7Masters PHPRogerio Prado de Jesus
 
Lab python django - parte 1 - windows e vagrant
Lab python django - parte 1 - windows e vagrantLab python django - parte 1 - windows e vagrant
Lab python django - parte 1 - windows e vagrantPedro Fernandes Vieira
 
Vagrant uma ferramenta realmente útil e versátil
Vagrant   uma ferramenta realmente útil e versátilVagrant   uma ferramenta realmente útil e versátil
Vagrant uma ferramenta realmente útil e versátilWanderlei Silva do Carmo
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Wellington Silva
 
Vagrant: Na sua máquina também funciona!
Vagrant: Na sua máquina também funciona!Vagrant: Na sua máquina também funciona!
Vagrant: Na sua máquina também funciona!Glauton Vieira
 
Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012
Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012
Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012Rogerio Prado de Jesus
 
From Development to Production: Vagrant and Ansible, por Erika Heidi
From Development to Production: Vagrant and Ansible, por Erika HeidiFrom Development to Production: Vagrant and Ansible, por Erika Heidi
From Development to Production: Vagrant and Ansible, por Erika HeidiiMasters
 
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...iMasters
 
Docker e outras ferramentas Devops
Docker e outras ferramentas DevopsDocker e outras ferramentas Devops
Docker e outras ferramentas DevopsCristian Trucco
 
Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)
Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)
Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)Wellington Silva
 
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...iMasters
 
Foreman como provisionador TDC floripa 2017
Foreman como provisionador TDC floripa 2017Foreman como provisionador TDC floripa 2017
Foreman como provisionador TDC floripa 2017Andre "Ramoni" Guimaraes
 
Vagrant + chef cookbooks ambiente de desenvolvimento como o de produção em ...
Vagrant + chef cookbooks   ambiente de desenvolvimento como o de produção em ...Vagrant + chef cookbooks   ambiente de desenvolvimento como o de produção em ...
Vagrant + chef cookbooks ambiente de desenvolvimento como o de produção em ...Tiago Butzke
 
VMFIT - Virtual Machine-based Fault and Intrusion Tolerance
VMFIT - Virtual Machine-based Fault and Intrusion ToleranceVMFIT - Virtual Machine-based Fault and Intrusion Tolerance
VMFIT - Virtual Machine-based Fault and Intrusion ToleranceLeandro Magnabosco
 

Similaire à Gerenciando ambientes virtualizados com Vagrant e Chef (20)

UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
 
Vagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizado
 
Vagrant + Puppet
Vagrant + PuppetVagrant + Puppet
Vagrant + Puppet
 
Desenvolvimento PHP com Vagrant - 7Masters PHP
Desenvolvimento PHP com Vagrant - 7Masters PHPDesenvolvimento PHP com Vagrant - 7Masters PHP
Desenvolvimento PHP com Vagrant - 7Masters PHP
 
Lab python django - parte 1 - windows e vagrant
Lab python django - parte 1 - windows e vagrantLab python django - parte 1 - windows e vagrant
Lab python django - parte 1 - windows e vagrant
 
Vagrant uma ferramenta realmente útil e versátil
Vagrant   uma ferramenta realmente útil e versátilVagrant   uma ferramenta realmente útil e versátil
Vagrant uma ferramenta realmente útil e versátil
 
Vagrant
VagrantVagrant
Vagrant
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3
 
Vagrant: Na sua máquina também funciona!
Vagrant: Na sua máquina também funciona!Vagrant: Na sua máquina também funciona!
Vagrant: Na sua máquina também funciona!
 
Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012
Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012
Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012
 
From Development to Production: Vagrant and Ansible, por Erika Heidi
From Development to Production: Vagrant and Ansible, por Erika HeidiFrom Development to Production: Vagrant and Ansible, por Erika Heidi
From Development to Production: Vagrant and Ansible, por Erika Heidi
 
DevOps Primeiros Passos
DevOps Primeiros PassosDevOps Primeiros Passos
DevOps Primeiros Passos
 
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
 
Virtualiza%e7%e3o(3)
Virtualiza%e7%e3o(3)Virtualiza%e7%e3o(3)
Virtualiza%e7%e3o(3)
 
Docker e outras ferramentas Devops
Docker e outras ferramentas DevopsDocker e outras ferramentas Devops
Docker e outras ferramentas Devops
 
Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)
Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)
Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)
 
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
 
Foreman como provisionador TDC floripa 2017
Foreman como provisionador TDC floripa 2017Foreman como provisionador TDC floripa 2017
Foreman como provisionador TDC floripa 2017
 
Vagrant + chef cookbooks ambiente de desenvolvimento como o de produção em ...
Vagrant + chef cookbooks   ambiente de desenvolvimento como o de produção em ...Vagrant + chef cookbooks   ambiente de desenvolvimento como o de produção em ...
Vagrant + chef cookbooks ambiente de desenvolvimento como o de produção em ...
 
VMFIT - Virtual Machine-based Fault and Intrusion Tolerance
VMFIT - Virtual Machine-based Fault and Intrusion ToleranceVMFIT - Virtual Machine-based Fault and Intrusion Tolerance
VMFIT - Virtual Machine-based Fault and Intrusion Tolerance
 

Gerenciando ambientes virtualizados com Vagrant e Chef

  • 1.
  • 2.
  • 3. +
  • 5. Olavo Queiroz Guimarães about.me/olavoqueirozg olavo.guimaraes@dextra-sw.com
  • 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?!.
  • 11. Começando a utilizar… Baixe o aplicativo direto no site do vagrant
  • 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.
  • 16. Vamos á pratica…. ?! Vagrant Command Line Interface
  • 17. Iniciando um arquivo de configuração…
  • 18. Iniciando um arquivo de configuração… Algumas configurações básicas para virtualbox…
  • 20. Have created?! …. Starting ….
  • 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
  • 28. Vagrant provider=amazon... Configurando uma conta AWS no Vagrantfile:
  • 29. Vagrant provider=amazon... Configurando uma conta AWS no Vagrantfile:
  • 30. ?! Em que parte o chef entra?! Como ele pode nos ajudar?!
  • 31. ● O chef a ferramenta que vai nos ajudar na construção do ambiente.
  • 32. ● Podemos escrever receitas de automação que ele configure tudo automaticamente.
  • 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...
  • 41. + Testes + Testes - RollBack
  • 42. + Testes + Testes - RollBack = Ambientes Padronizados
  • 43. + Testes + Testes - RollBack = Ambientes Padronizados + Testes Eficientes
  • 44. + Testes + Testes - RollBack = Ambientes Padronizados + Testes Eficientes
  • 45. Dúvidas Links de apoio https://github.com/bila-olavo https://github.com/mitchellh https://www.vagrantup.com/