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

Virtualizando o ambiente de desenvolvimento com Vagrant

Virtualizando o ambiente de desenvolvimento com Vagrant

"Mas funciona na minha máquina!" Quem nunca ouviu esta frase? Nesta apresentação demonstrarei como utilizar o vagrant para aumentar a paridade entre os ambientes de desenvolvimento e produção.

Jonhnny Weslley

April 27, 2013
Tweet

Other Decks in Programming

Transcript

  1. Virtualizando o ambiente de desenvolvimento com Vagrant Jonhnny Weslley @jweslley

    Gurupi Grupo de Usu´ arios de Ruby do Piau´ ı 27/Abril/2013
  2. Mundo real $ git clone git://mycompany.com/dominacao-global.git Ler README... $ mkdir,

    make, apt-get, install, vim, .... Google, stackoverflow, ... Consulta guru, oraculo, amigo, av´ o, ... ... $ run 6 / 31
  3. Vagrant • Mitchell Hashimoto & John Bender • http://vagrantup.com •

    Utiliza Virtualbox e Ruby • Funciona em Linux, Mac OS, Windows 13 / 31
  4. Vagrant - Utiliza¸ c˜ ao $ vagrant box add precise64

    http://files.vagrantup.com/preci $ vagrant init precise64 $ vagrant up $ vagrant ssh 15 / 31
  5. Beneficios - Virtualiza¸ c˜ ao/Vagrant • Simplicidade • Agilidade •

    Consistˆ encia • Reproducibilidade • Possibilita criar ambiente semelhante ao ambiente de produ¸ c˜ ao • Aumenta produtividade • Descart´ avel 17 / 31
  6. Funcionalidades • Boxes • Compartilhamento de arquivos • Port fowarding

    • Multi-VM • Provisioning/Automatiza¸ c˜ ao • Packaging 18 / 31
  7. Boxes • Boxes oficiais ◦ lucid32, lucid64, precise32, precise64 ◦

    http://files.vagrantup.com/NOME.box • Vagrantbox.es ◦ http://www.vagrantbox.es/ 19 / 31
  8. Compartilhamento de arquivos • Por padr˜ ao o diret´ orio

    que cont´ em o Vagrantfile ´ e compartilhado em /vagrant • Por´ em ´ e possivel compartilhar outros diret´ orios: config.vm.synced_folder ’path/host’, ’path/guest’ 20 / 31
  9. Port fowarding # http config.vm.network :forwarded_port, guest: 80, host: 8080

    # redis config.vm.network :forwarded_port, guest: 6379, host: 6379 # mysql config.vm.network :forwarded_port, guest: 3306, host: 3306 21 / 31
  10. Multi-VM config.vm.define :web do |web_config| web_config.vm.box = "ubuntu" web_config.vm.network :forwarded_port,

    guest: 80, host: 8080 ... end config.vm.define :db do |db_config| db_config.vm.box = "centos-mysql" db_config.vm.network :forwarded_port, guest: 3306, host: 3306 ... end 22 / 31
  11. Provisioning: Chef • Tarefas s˜ ao organizadas em receitas (recipes)

    • Existem v´ arios livros de receitas (cookbooks) ◦ http://community.opscode.com/cookbooks • Automatiza¸ c˜ ao • Reproducibilidade 25 / 31
  12. Packaging • Cria¸ c˜ ao de boxes customizadas • Diminui

    tempo de configura¸ c˜ ao • vagrant package 28 / 31