sourceforge -> github
[wiki.git] / vagrant.mdwn
1 In late 2012 I got [religion][] about Vagrant ( http://vagrantup.com ) after [hearing][] about it all year.
2
3 [religion]: http://irclog.perlgeek.de/crimsonfu/2012-10-29#i_6108381
4
5 [hearing]: http://irclog.perlgeek.de/crimsonfu/2012-03-28#i_5363244
6
7 [[!toc levels=3]]
8
9 ## What is Vagrant?
10
11 Using virtual machines running locally on your workstation, Vagrant lets you define the environment your application will run in and quickly iterate on both your application and its environment.
12
13 Your Vagrant environment can consist of a single VM or multiple VMs running a wide variety of operating systems listed at http://www.vagrantbox.es (most are unofficial, except those from files.vagrantup.com).
14
15 ## Vagrant quickstart
16
17 Vagrant operates on the file named `Vagrantfile` in your current working directory. Here's an example `Vagrantfile` that sets up an Ubuntu 12.04 (Precise Pangolin) environment:
18
19     Vagrant::Config.run do |config|
20       config.vm.box     = "precise64"
21       config.vm.box_url = "http://files.vagrantup.com/precise64.box"
22     end
23
24 Once you have Vagrant installed, you can run `vagrant init` to create a `Vagrantfile` in your current working directory. Try replacing its content with the lines above and running `vagrant up`. After the VM has booted try `vagrant ssh` and sudo to root. Then log out and run `vagrant destroy`.
25
26 ## Vagrantfile examples
27
28 To see more complicated environments, look at the `Vagrantfile` for these projects:
29
30 - https://github.com/pdurbin/greptilian-vagrant
31 - https://github.com/puppetlabs/puppetlabs-openstack_dev_env
32 - https://github.com/agoddard/the-super-mini-one-click-chef-solo-apache-demo-that-just-uses-vagrant-up-
33
34 ## Vagrant snapshots (with Sahara)
35
36 - `vagrant sandbox on`
37 - `vagrant sandbox commit` or `vagrant sandbox rollback`
38 - `vagrant sandbox off`
39
40 After installing https://github.com/jedi4ever/sahara