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

Vagrant - Team development made easy

Marco Silva
November 16, 2012

Vagrant - Team development made easy

Development environment using Vagrant. Presented at Codebits2012

Marco Silva

November 16, 2012
Tweet

Other Decks in Technology

Transcript

  1. MySQL Apache2 Python PEAR RVM npm nginx PostgreSQL PHP Ruby

    RoR MongoDB .... ??? Local development environment
  2. Vagrant Free and open source Started on January 21, 2010

    by Mitchell Hashimoto and John Bender. The first release, 0.1.0 released on March 7, 2010. Linux, Mac OS X, and Windows
  3. Vision The vision of the project is to create a

    tool to transparently manage all the complex parts of modern development within a virtual environment without affecting the everyday workflow of the developer too much.
  4. Vagrant ~12000 lines of Ruby ~3500 : test code ~5500

    : "plugins" ~3300 : core Thats a lot of code!!!
  5. Script must... Import a virtual machine setup host only networking

    setup shared folders boots the machine provision the machine support Mac, Linux, and Windows guest additions NFS
  6. the basic way #Fetch the Box $ vagrant box add

    base http://files.vagrantup.com/precise32.box #Init Vagrant on your current folder $ vagrant init #Start it!! $ vagrant up
  7. Vagrantfile Vagrant::Config.run do |config| config.vm.box = "debian" config.vm.box_url = "http://path/to/vagrantbox.box"

    config.vm.network :hostonly, "10.10.10.10", :adapter=>4 config.vm.customize ["modifyvm", :id, "--memory", "512"] end
  8. Vagrantfile Vagrant::Config.run do |config| config.vm.box = "debian" config.vm.box_url = "http://path/to/vagrantbox.box"

    config.vm.network :hostonly, "10.10.10.10", :adapter=>4 config.vm.customize ["modifyvm", :id, "--memory", "512"] config.vm.provision :puppet do |puppet| puppet.manifests_path = "vagrant/puppet/manifests" puppet.manifest_file = "base.pp" end config.vm.provision :shell, :inline => "/bin/bash /vagrant/myscript.sh" end
  9. Vagrantfile Vagrant::Config.run do |config| config.vm.box = "debian" config.vm.box_url = "http://path/to/vagrantbox.box"

    config.vm.network :hostonly, "10.10.10.10", :adapter=>4 config.vm.customize ["modifyvm", :id, "--memory", "512"] config.vm.provision :puppet do |puppet| puppet.manifests_path = "vagrant/puppet/manifests" puppet.manifest_file = "base.pp" end config.vm.provision :shell, :inline => "/bin/bash /vagrant/myscript.sh" end
  10. tips shared folders vs NFS golden box vs clean box

    similar environments -> helps deployments Multi-VM Environments http://vagrantup.com/v1/docs/multivm.html