Vagrant

336 views

Published on

  • Be the first to comment

  • Be the first to like this

Vagrant

  1. 1. VagrantSeu ambiente de desenvolvimento “descolado”
  2. 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 daGendoc• Cansei de perder tempo configurando ambiente.
  3. 3. Agenda• Visão Geral do Problema• Vagrant• O que é?• Porque utilizar?• “Hello World” Vagrant• VagrantFile• Boxes• Provisioners• Dicas Rápidas• Dúvidas?
  4. 4. Num mundo ideal seria assim:$git clone https://git.gendoc.com.br/Projeto$RUNO QuickTime™ e umGIF descompressorsão necessários para ver esta imagem.Os problemas!Codar!
  5. 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$RUNO QuickTime™ e umGIF descompressorsão necessários para ver esta imagem.Os problemas!Como Realmente acontece:E, finalmente, Codar!
  6. 6. 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 umGIF descompressorsão necessários para ver esta imagem.Publica a funcionalidade em produção:
  7. 7. Vagrant significa:•Indivíduo sem Residenciafixa ou trabalho regularque vaga de lugar emlugar e Vive de esmolas.•Mendigo•Programador?!Vagrant
  8. 8. •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 AWSatravés de Plugins•Aceita PluginsE o que é o Vagrant?Vagrant é uma ferramenta degerenciamento de Máquinas Virtuais
  9. 9. •Não gasta tempo do desenvolvedor configurandoambiente de desenvolvimento, a box com o projeto jávem pronta!•Maximiza a paridade entre o ambiente deDesenvolvimento e de Produção•Acaba com o “Mas na minha máquina funciona”Porque Vagrant?
  10. 10. O QuickTime™ e umGIF descompressorsão necessários para ver esta imagem.
  11. 11. •Descreve a VM através de códigos•Pode existir um VagrantFile por Projeto e nele podemexistir mutiplas VM’s•Pode ser versionadoVagrantFile
  12. 12. •VM’s encapsuladas junto com um VagrantFile e umJson com informações do Provider (VirtualBox, Vmware,AWS, etc.)•http://www.vagrantbox.es/Boxes
  13. 13. •Centralização das Configurações, Instalações debibliotecas e pacotes, Controle das versões dessasbibliotecas e pacotes instalados.•Pode ser a garantia de que o ambiente local de todosos desenvolvedores estão iguais entre eles e com oservidor de produção•Pode ser feita através do Puppet, do Chef, do Ansible,ou até mesmo através de scripts personalizados eversionados junto com o VagrantFileProvisioners
  14. 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+ temum truque, é necessário inserir o Metadata.json nas vm’s existentes. Aquiestá a solução: http://www.wizonesolutions.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 existeum plugin vagrant-vbguest, mas ainda não é compativel com o Vagrant1.1+.•Alterar o tamanho da memória ram da VM: config.vm.customize["modifyvm", :id, "--memory", 1024]Dicas Rápidas
  15. 15. Duvidas?O QuickTime™ e umGIF descompressorsão necessários para ver esta imagem.
  16. 16. •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!

×