Vagrant



Virtualize your development environments

who am I?


fzerorubigd@gmail


WEB Developer

Bita's Dad

WHy??????




Think about something like .......


Multiple project
+
Multiple dependencies for each project 

=

Oh :/ not good 


Multiple project
+
Multiple dependencies for each project
+
One software with different version 

=

Oh :/ Not good at all!! 


An old project with a lot of dependencies
+
New developer with new machine :)

=

A lot of time and hard work for 
creating another junk storage :))


Test environment

<>

Development environment


MORE REASON??


THE IDEA


git clone

cd myapp

magic command

run my app

Goals

Isolate development resources
Less time to setup
Reuse your env. on many machine
Same env. for any *nix base system
Keep development machine small and fast!

The solution


git clone

cd myapp

vagrant up

run my app

VAGRANT


A provider (Virtualbox, docker , VMWare)
+
Provision with Shell, Puppet, Chef, ...

 

WORKFLOW

  • vagrant init hashicorp/ubuntu
  • vagrant up  #provision for first time
  • vagrant ssh 
  • DO YOUR WORK
  • vagrant halt
  • vagrant destroy

VIRTUALBOX

Advantage : 

Cross platform
Very simple to setup

Problems:
Resource hungry
VERY!! slow share (must use nfs!)

DOCKER

Advantage : 
Very fast!
No extra resource!

Problems :
Very young (its here after vagrant 1.6)
Only on linux 


BASEBOX


The vagrant list, just google it :)

packer


Another project to create base box for all types
packer.io

build it from scratch


Just install a linux on a virtualbox

or 

build an image for docker :)

QUESTIONS???