SlideShare una empresa de Scribd logo
1 de 45
Descargar para leer sin conexión
+
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/

Más contenido relacionado

La actualidad más candente

A Arte do Deployment - WebDevCamp
A Arte do Deployment - WebDevCampA Arte do Deployment - WebDevCamp
A Arte do Deployment - WebDevCamp
George Guimarães
 

La actualidad más candente (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
 

Destacado

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
 
Advanced persistent threat (apt)
Advanced persistent threat (apt)Advanced persistent threat (apt)
Advanced persistent threat (apt)
mmubashirkhan
 

Destacado (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)
 

Similar a Apt_vagrant_chef_olavo_queiroz

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 Tolerance
Leandro Magnabosco
 

Similar a Apt_vagrant_chef_olavo_queiroz (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
 
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 ...
 
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)
 
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
 

Último

Último (6)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 

Apt_vagrant_chef_olavo_queiroz

  • 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/