add code.org to intro and fix typo
[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 - https://github.com/berekuk/play-perl
34 - https://github.com/discourse/discourse
35
36 ## Vagrant snapshots (with Sahara)
37
38 - `vagrant sandbox on`
39 - `vagrant sandbox commit` or `vagrant sandbox rollback`
40 - `vagrant sandbox off`
41
42 After installing https://github.com/jedi4ever/sahara
43
44 ## Vagrant base boxes
45
46 https://github.com/englishm/betterboxes/wiki