Vagrant
Seu ambiente de desenvolvimento “descolado”
Quem?!
• Fernando “Fernandão” Cézar
• Quase Analista de Sistemas pela UFMS
• Trabalha com TI a 10 anos
• Sócio-Desenvolvedor da Gendoc
• Responsável pela parte web dos produtos da
Gendoc
• Cansei de perder tempo configurando ambiente.
Agenda
• Visão Geral do Problema
• Vagrant
• O que é?
• Porque utilizar?
• “Hello World” Vagrant
• VagrantFile
• Boxes
• Provisioners
• Dicas Rápidas
• Dúvidas?
Num mundo ideal seria assim:
$git clone https://git.gendoc.com.br/Projeto
$RUN
O QuickTime™ e um
GIF descompressor
são necessários para ver esta imagem.
Os problemas!
Codar!
$git clone https://git.gendoc.com.br/Projeto
...Lê a documentação (Quando existe)
$mkdir, cp, install, vim...
...pergunta para o chefe
$./projeto/.pasta_oculta/bin/magia_negra --fix_rebimboca --fix_esner
--qualquer_outro_parametro_nao_documentado=CONSTANTE_MAGICA_
42
...P#t$QueOPariuFilhoDaP*tDoC$r#lh*QueNaoFunciona
...1 semana depois
$RUN
O QuickTime™ e um
GIF descompressor
são necessários para ver esta imagem.
Os problemas!
Como Realmente acontece:
E, finalmente, Codar!
E não funciona!
Seu ambiente de trabalho é diferente do Servidor!
‣S.O. Diferente...
‣Versão Diferente do Python/PHP/Rails...
‣Versões diferentes dos Pacotes...
Mas na minha maquina Funciona?!
Os problemas!
O QuickTime™ e um
GIF descompressor
são necessários para ver esta imagem.
Publica a funcionalidade em produção:
Vagrant significa:
•Indivíduo sem Residencia
fixa ou trabalho regular
que vaga de lugar em
lugar e Vive de esmolas.
•Mendigo
•Programador?!
Vagrant
•Por Linha de comando (Não tenha medo do Terminal)
•Roda diferentes sistemas operacionais
•Define maquinas virtuais por código (Ruby)
•Criado por Mitch Hashimoto and John Bender(Primeiro commit Jan/2010)
•Integra com VirtualBox nativamente e com VMWare Fusion e AWS
através de Plugins
•Aceita Plugins
E o que é o Vagrant?
Vagrant é uma ferramenta de
gerenciamento de Máquinas Virtuais
•Não gasta tempo do desenvolvedor configurando
ambiente de desenvolvimento, a box com o projeto já
vem pronta!
•Maximiza a paridade entre o ambiente de
Desenvolvimento e de Produção
•Acaba com o “Mas na minha máquina funciona”
Porque Vagrant?
O QuickTime™ e um
GIF descompressor
são necessários para ver esta imagem.
•Descreve a VM através de códigos
•Pode existir um VagrantFile por Projeto e nele podem
existir mutiplas VM’s
•Pode ser versionado
VagrantFile
•VM’s encapsuladas junto com um VagrantFile e um
Json com informações do Provider (VirtualBox, Vmware,
AWS, etc.)
•http://www.vagrantbox.es/
Boxes
•Centralização das Configurações, Instalações de
bibliotecas e pacotes, Controle das versões dessas
bibliotecas e pacotes instalados.
•Pode ser a garantia de que o ambiente local de todos
os desenvolvedores estão iguais entre eles e com o
servidor de produção
•Pode ser feita através do Puppet, do Chef, do Ansible,
ou até mesmo através de scripts personalizados e
versionados junto com o VagrantFile
Provisioners
•O Vagrant não é mais uma Gem do RubyGems
•Instale o Vagrant a partir do download do Site (http://vagrantup.com)
•Você precisa do Fornecedor das vms instalado (VirtualBox, VMWare,
AWS, etc.)
•Se você já está com a versão 1.0.x instalada, a migração para o 1.1+ tem
um truque, é necessário inserir o Metadata.json nas vm’s existentes. Aqui
está a solução: http://www.wizonesol
utions.com/2013/04/18/fixing-the-box-could-not-be-found-in-the-new-vagrant-1-1/
•Atualizar o VirtualBox Guest Adittions por ser complicado, para isso existe
um plugin vagrant-vbguest, mas ainda não é compativel com o Vagrant
1.1+.
•Alterar o tamanho da memória ram da VM: config.vm.customize
["modifyvm", :id, "--memory", 1024]
Dicas Rápidas
Duvidas?
O QuickTime™ e um
GIF descompressor
são necessários para ver esta imagem.
•fernando@gendoc.com.br
•https://twitter.com/focezar - @focezar
•https://github.com/focezar
•https://github.com/gendoc
•http://www.slideshare.net/focezar
•Procure por focezar nas Redes Sociais, menos no Facebook!
Obrigado!

Vagrant

  • 1.
    Vagrant Seu ambiente dedesenvolvimento “descolado”
  • 2.
    Quem?! • Fernando “Fernandão”Cézar • Quase Analista de Sistemas pela UFMS • Trabalha com TI a 10 anos • Sócio-Desenvolvedor da Gendoc • Responsável pela parte web dos produtos da Gendoc • Cansei de perder tempo configurando ambiente.
  • 3.
    Agenda • Visão Geraldo Problema • Vagrant • O que é? • Porque utilizar? • “Hello World” Vagrant • VagrantFile • Boxes • Provisioners • Dicas Rápidas • Dúvidas?
  • 4.
    Num mundo idealseria assim: $git clone https://git.gendoc.com.br/Projeto $RUN O QuickTime™ e um GIF descompressor são necessários para ver esta imagem. Os problemas! Codar!
  • 5.
    $git clone https://git.gendoc.com.br/Projeto ...Lêa documentação (Quando existe) $mkdir, cp, install, vim... ...pergunta para o chefe $./projeto/.pasta_oculta/bin/magia_negra --fix_rebimboca --fix_esner --qualquer_outro_parametro_nao_documentado=CONSTANTE_MAGICA_ 42 ...P#t$QueOPariuFilhoDaP*tDoC$r#lh*QueNaoFunciona ...1 semana depois $RUN O QuickTime™ e um GIF descompressor são necessários para ver esta imagem. Os problemas! Como Realmente acontece: E, finalmente, Codar!
  • 6.
    E não funciona! Seuambiente de trabalho é diferente do Servidor! ‣S.O. Diferente... ‣Versão Diferente do Python/PHP/Rails... ‣Versões diferentes dos Pacotes... Mas na minha maquina Funciona?! Os problemas! O QuickTime™ e um GIF descompressor são necessários para ver esta imagem. Publica a funcionalidade em produção:
  • 7.
    Vagrant significa: •Indivíduo semResidencia fixa ou trabalho regular que vaga de lugar em lugar e Vive de esmolas. •Mendigo •Programador?! Vagrant
  • 8.
    •Por Linha decomando (Não tenha medo do Terminal) •Roda diferentes sistemas operacionais •Define maquinas virtuais por código (Ruby) •Criado por Mitch Hashimoto and John Bender(Primeiro commit Jan/2010) •Integra com VirtualBox nativamente e com VMWare Fusion e AWS através de Plugins •Aceita Plugins E o que é o Vagrant? Vagrant é uma ferramenta de gerenciamento de Máquinas Virtuais
  • 9.
    •Não gasta tempodo desenvolvedor configurando ambiente de desenvolvimento, a box com o projeto já vem pronta! •Maximiza a paridade entre o ambiente de Desenvolvimento e de Produção •Acaba com o “Mas na minha máquina funciona” Porque Vagrant?
  • 10.
    O QuickTime™ eum GIF descompressor são necessários para ver esta imagem.
  • 11.
    •Descreve a VMatravés de códigos •Pode existir um VagrantFile por Projeto e nele podem existir mutiplas VM’s •Pode ser versionado VagrantFile
  • 12.
    •VM’s encapsuladas juntocom um VagrantFile e um Json com informações do Provider (VirtualBox, Vmware, AWS, etc.) •http://www.vagrantbox.es/ Boxes
  • 13.
    •Centralização das Configurações,Instalações de bibliotecas e pacotes, Controle das versões dessas bibliotecas e pacotes instalados. •Pode ser a garantia de que o ambiente local de todos os desenvolvedores estão iguais entre eles e com o servidor de produção •Pode ser feita através do Puppet, do Chef, do Ansible, ou até mesmo através de scripts personalizados e versionados junto com o VagrantFile Provisioners
  • 14.
    •O Vagrant nãoé mais uma Gem do RubyGems •Instale o Vagrant a partir do download do Site (http://vagrantup.com) •Você precisa do Fornecedor das vms instalado (VirtualBox, VMWare, AWS, etc.) •Se você já está com a versão 1.0.x instalada, a migração para o 1.1+ tem um truque, é necessário inserir o Metadata.json nas vm’s existentes. Aqui está a solução: http://www.wizonesol utions.com/2013/04/18/fixing-the-box-could-not-be-found-in-the-new-vagrant-1-1/ •Atualizar o VirtualBox Guest Adittions por ser complicado, para isso existe um plugin vagrant-vbguest, mas ainda não é compativel com o Vagrant 1.1+. •Alterar o tamanho da memória ram da VM: config.vm.customize ["modifyvm", :id, "--memory", 1024] Dicas Rápidas
  • 15.
    Duvidas? O QuickTime™ eum GIF descompressor são necessários para ver esta imagem.
  • 16.

Notas do Editor

  • #13 http://files.vagrantup.com/lucid64.box