Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

whoami ● Brasileira, morando em Amsterdam desde 2012 ● Desenvolvedora Web/PHP independente ● Autora do livro Vagrant Cookbook

Slide 3

Slide 3 text

O que esperar desta palestra ● Introdução ao Vagrant – Terminologia, utilização básica ● Provisionamento – Escolhendo um provisionador – Exemplo prático com Ansible ● ProTips ● Recursos úteis

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Por que usar Vagrant?

Slide 6

Slide 6 text

“Funciona na minha máquina”

Slide 7

Slide 7 text

1.1 Por que usar Vagrant ● Ambiente de desenvolvimento reproduzível e portátil ● Torna mais fácil contribuições em um projeto ● Testar diferentes configurações de backend ● Aprender e testar ferramentas de automação

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

1.2 Terminologia ● Boxes ● Máquinas Host e Guest ● Provedor (Provider) ● Provisionador (Provisioner) ● Diretórios Sincronizados ● Vagrantfile

Slide 10

Slide 10 text

1.3 Primeiros Passos Vagrant.configure("2") do |config| config.vm.box = "hashicorp/precise64" config.vm.provision "shell", inline: "echo Hello PHPPB!" end

Slide 11

Slide 11 text

Output

Slide 12

Slide 12 text

1.4 Comandos ● up ● reload ● provision ● suspend ● resume ● destroy [ --provision ] [ --provision ]

Slide 13

Slide 13 text

1.5 Um exemplo mais completo Vagrant.configure("2") do |config| config.vm.box = "hashicorp/precise64" config.vm.network :private_network, ip: "192.168.33.101" config.vm.provision "ansible" do |ansible| ansible.playbook = "playbook.yml" end config.vm.synced_folder "./", "/vagrant", :nfs => true end

Slide 14

Slide 14 text

O que há de novo

Slide 15

Slide 15 text

1.6 Novas Funcionalidades Vagrant 1.5 ● Vagrant Cloud / boxes 2.0 ● Vagrant Share ● Rsync ● SMB Vagrant 1.6 ● Status e Controle Global ● Windows como Guest ● Provedor Docker ● Mensagem Pós-up

Slide 16

Slide 16 text

Vagrant Cloud (1.5)

Slide 17

Slide 17 text

Vagrant Share (1.5)

Slide 18

Slide 18 text

Post-up message (1.6)

Slide 19

Slide 19 text

Global status and control (1.6)

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

2.1 Ferramentas de Automação ● Funcionalidades nativas em ferramentas de automação: – Linguagem clara – Gerência de estado idempotente – Sistema de Templates – Modularização

Slide 22

Slide 22 text

2.1 Ferramentas de Automação PUPPET CHEF ANSIBLE Sintaxe Custom baseada em Ruby Ruby YAML Terminologia Manifests / Modules Recipes / CookBooks Playbooks / Roles Ordem de Exec. Não sequencial Sequencial Sequencial Documentação Confusa Caótica Clara e Objetiva Popularidade Primeiro Segundo Terceiro Dependências - - ansible Curva de Aprendizado Geral Moderada Alta Baixa

Slide 23

Slide 23 text

Exemplo Prático Nginx + PHP5: Ansible

Slide 24

Slide 24 text

Vagrantfile Vagrant.configure("2") do |config| config.vm.box = "hashicorp/precise64" config.vm.provision "ansible" do |ansible| ansible.playbook = "playbook.yml" end end

Slide 25

Slide 25 text

Playbook # playbook.yml --- - hosts: all sudo: true tasks: - name: Update apt-cache apt: update_cache=yes - name: Install Nginx and php5-fpm apt: pkg={{ item }} state=latest with_items: - nginx - php5-fpm

Slide 26

Slide 26 text

Output

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

3.1 Debugging ● Erro desconhecido no Vagrant – Use a GUI do VirtualBox / Vmware ● Erro desconhecido do provisionador – Aumentar verbosidade no Vagrantfile ● Não funciona como esperado – Faça login, resolva, automatize

Slide 29

Slide 29 text

3.2 Performance ● Diretórios sincronizados podem se tornar um gargalo ● Diretórios de cache/logs – Muitas operações de escrita no disco – Não precisam estar sincronizados

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

Comparando Provisionadores ● Nginx + PhP5-FPM com Ansible, Puppet e Chef – https://github.com/erikaheidi/nomad-vagrant

Slide 35

Slide 35 text

puphpet.com

Slide 36

Slide 36 text

phansible.com

Slide 37

Slide 37 text

Vagrant Cookbook (PT-BR) Preço especial de lançamento! https://leanpub.com/vagrantcookbook-ptbr

Slide 38

Slide 38 text

Perguntas?

Slide 39

Slide 39 text

erikaheidi.com/vagrant https://joind.in/11410 Mais conteúdo sobre Vagrant: