Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ambientes Portáteis com o Vagrant

Ambientes Portáteis com o Vagrant

Apresentado no meetup Vagrant SP

719435d98d452de7ac367c828266cf01?s=128

Erika Heidi

April 23, 2015
Tweet

More Decks by Erika Heidi

Other Decks in Programming

Transcript

  1. None
  2. whoami

  3. POR QUE VAGRANT?

  4. None
  5. Por que Vagrant? • Ambiente de desenvolvimento portátil, descartável e

    reproduzível • Facilita colaboração de código • Testes e benchmark com ambientes diferentes • Aprender e testar ferramentas de configuração / automação
  6. None
  7. Terminologia • Host / Guest • Provider / Provisioner •

    Boxes • Vagrantfile • Synced Folder
  8. Vagrantfile Vagrant.configure("2") do |config| config.vm.box = "hashicorp/precise64" config.vm.provision "shell", inline:

    "echo Hello World!" end
  9. Principais Comandos • up • reload • provision • suspend

    • resume • destroy [ --provision ] [ --provision ]
  10. DEMO 1 Vagrant up

  11. None
  12. None
  13. Ansible – visão geral • Usa uma linguagem simples –

    YAML • Bastante “developer-friendly” • Grande quantidade de módulos built- in • Arquitetura “agentless” - usa apenas SSH • Usado por grandes nomes como Twitter, Atlassian, até NASA
  14. Ansible como provisionador Vagrant.configure("2") do |config| config.vm.box = "hashicorp/precise64" config.vm.provision

    "ansible" do |ansible| ansible.playbook = "playbook.yml" end end
  15. Playbook – exemplo # playbook.yml --- - hosts: all sudo:

    true tasks: - name: Atualizar apt-cache apt: update_cache=yes - name: Instalar Nginx apt: pkg=nginx state=latest
  16. Variáveis --- - hosts: all sudo: yes vars: web_server: nginx

    tasks: - name: Install {{ web_server }} apt: pkg={{ web_server }} state=latest
  17. Arrays / Loops tasks: - name: Install Packages apt: pkg={{

    item }} state=latest with_items: - nginx - php5-fpm - git
  18. Arrays / Loops --- - hosts: all sudo: yes vars:

    sys_packages: [ 'nginx', 'php5-fpm', 'git' ] tasks: - name: Install Packages apt: pkg={{ item }} state=latest with_items: sys_packages
  19. DEMO 2 Basic Playbook

  20. None
  21. None
  22. None
  23. Vagrant Cookbook (pt-BR) http://do.co/vcb-br

  24. PERGUNTAS?

  25. Posts sobre Vagrant http://erikaheidi.com/vagrant Feedback Meetup https://joind.in/event /view/3719