Top Banner
Vagrant Team development made easy
23

Vagrant - Team Development made easy

May 06, 2015

Download

Technology

Marco da Silva

Development environments with Vagrant. Presentation at Codebits 2012
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Vagrant - Team Development made easy

VagrantTeam development made easy

Page 2: Vagrant - Team Development made easy

Me

Technical Leader @Centralway

Before? Intraneia

● Open-Source, UbuntuDeloitte

● IT Audits, Security & Privacy

Page 3: Vagrant - Team Development made easy

How do we develop..

Page 4: Vagrant - Team Development made easy

MySQL Apache2 Python PEAR RVM npm nginx PostgreSQL PHP Ruby

RoR MongoDB ....

???

Local development environment

Page 5: Vagrant - Team Development made easy

Local development environment

No IsolationNot ShareableNot Repeatable

Page 6: Vagrant - Team Development made easy

Alternative?Virtual Machines

Page 7: Vagrant - Team Development made easy

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

Page 8: Vagrant - Team Development made easy

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.

Page 9: Vagrant - Team Development made easy

Vagrant

~12000 lines of Ruby~3500 : test code~5500 : "plugins" ~3300 : core

Thats a lot of code!!!

Page 10: Vagrant - Team Development made easy
Page 11: Vagrant - Team Development made easy

Script must...

Import a virtual machinesetup host only networkingsetup shared foldersboots the machineprovision the machinesupport Mac, Linux, and Windowsguest additionsNFS

Page 12: Vagrant - Team Development made easy

and how do we use it?

Page 13: Vagrant - Team Development made easy

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

Page 14: Vagrant - Team Development made easy

with various projects...

Page 15: Vagrant - Team Development made easy
Page 16: Vagrant - Team Development made easy

VagrantfileVagrant::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

Page 17: Vagrant - Team Development made easy

VagrantfileVagrant::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

Page 18: Vagrant - Team Development made easy

VagrantfileVagrant::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

Page 19: Vagrant - Team Development made easy

Demo time....

Page 20: Vagrant - Team Development made easy

important vagrant commands

vagrant up

vagrant provision

vagrant suspend

vagrant halt

vagrant destroy

Page 21: Vagrant - Team Development made easy

tips

shared folders vs NFS

golden box vs clean box

similar environments -> helps deployments

Multi-VM Environments http://vagrantup.com/v1/docs/multivm.html

Page 22: Vagrant - Team Development made easy

tips

veewee ● github.com/jedi4ever/veewee

puppet / chef

Page 23: Vagrant - Team Development made easy

Thank You

vagrantup.comvagrantbox.esgithub.com/igama/wp-vagrant-demo