2010-02-10 07:10:16 +00:00
|
|
|
# Vagrant
|
2010-01-22 03:13:53 +00:00
|
|
|
|
2015-11-16 17:15:58 +00:00
|
|
|
* Website: [https://www.vagrantup.com/](https://www.vagrantup.com/)
|
2011-11-03 04:19:06 +00:00
|
|
|
* Source: [https://github.com/mitchellh/vagrant](https://github.com/mitchellh/vagrant)
|
2010-03-07 20:07:07 +00:00
|
|
|
* IRC: `#vagrant` on Freenode
|
2010-09-09 05:28:30 +00:00
|
|
|
* Mailing list: [Google Groups](http://groups.google.com/group/vagrant-up)
|
2010-03-07 20:05:53 +00:00
|
|
|
|
2013-01-14 01:44:08 +00:00
|
|
|
Vagrant is a tool for building and distributing development environments.
|
2010-03-07 20:05:53 +00:00
|
|
|
|
2014-04-30 16:58:05 +00:00
|
|
|
Development environments managed by Vagrant can run on local virtualized
|
|
|
|
platforms such as VirtualBox or VMware, in the cloud via AWS or OpenStack,
|
|
|
|
or in containers such as with Docker or raw LXC.
|
|
|
|
|
2013-01-14 01:44:08 +00:00
|
|
|
Vagrant provides the framework and configuration format to create and
|
|
|
|
manage complete portable development environments. These development
|
|
|
|
environments can live on your computer or in the cloud, and are portable
|
|
|
|
between Windows, Mac OS X, and Linux.
|
2010-03-07 20:05:53 +00:00
|
|
|
|
|
|
|
## Quick Start
|
|
|
|
|
2014-04-30 16:58:05 +00:00
|
|
|
For the quick-start, we'll bring up a development machine on
|
2015-11-16 17:15:58 +00:00
|
|
|
[VirtualBox](https://www.virtualbox.org/) because it is free and works
|
2014-04-30 16:58:05 +00:00
|
|
|
on all major platforms. Vagrant can, however, work with almost any
|
|
|
|
system such as OpenStack, VMware, Docker, etc.
|
|
|
|
|
|
|
|
First, make sure your development machine has
|
2015-11-16 17:15:58 +00:00
|
|
|
[VirtualBox](https://www.virtualbox.org/)
|
2014-04-30 16:58:05 +00:00
|
|
|
installed. After this,
|
|
|
|
[download and install the appropriate Vagrant package for your OS](http://www.vagrantup.com/downloads).
|
2010-03-07 20:05:53 +00:00
|
|
|
|
|
|
|
To build your first virtual environment:
|
|
|
|
|
2014-03-10 04:46:01 +00:00
|
|
|
vagrant init hashicorp/precise32
|
2010-03-07 20:05:53 +00:00
|
|
|
vagrant up
|
|
|
|
|
2010-08-02 00:28:44 +00:00
|
|
|
Note: The above `vagrant up` command will also trigger Vagrant to download the
|
2013-01-14 01:44:08 +00:00
|
|
|
`precise32` box via the specified URL. Vagrant only does this if it detects that
|
2010-08-02 00:28:44 +00:00
|
|
|
the box doesn't already exist on your system.
|
|
|
|
|
2011-11-24 23:05:51 +00:00
|
|
|
## Getting Started Guide
|
2010-03-07 20:05:53 +00:00
|
|
|
|
2014-03-10 04:46:01 +00:00
|
|
|
To learn how to build a fully functional development environment, follow the
|
2013-04-14 13:19:23 +00:00
|
|
|
[getting started guide](http://docs.vagrantup.com/v2/getting-started/index.html).
|
2010-03-07 20:05:53 +00:00
|
|
|
|
2010-03-09 17:01:20 +00:00
|
|
|
## Installing the Gem from Git
|
|
|
|
|
|
|
|
If you want the bleeding edge version of Vagrant, we try to keep master pretty stable
|
|
|
|
and you're welcome to give it a shot. The following is an example showing how to do this:
|
|
|
|
|
2010-08-01 00:39:54 +00:00
|
|
|
rake install
|
2014-01-07 22:22:59 +00:00
|
|
|
|
2013-12-15 16:11:57 +00:00
|
|
|
Ruby 2.0 is needed.
|
2010-03-09 17:01:20 +00:00
|
|
|
|
2010-02-10 07:10:16 +00:00
|
|
|
## Contributing to Vagrant
|
2010-01-22 03:13:53 +00:00
|
|
|
|
2011-11-03 04:27:32 +00:00
|
|
|
### Dependencies and Unit Tests
|
|
|
|
|
2015-11-16 17:15:58 +00:00
|
|
|
To hack on Vagrant, you'll need [bundler](https://github.com/bundler/bundler) which can
|
2014-04-03 19:37:24 +00:00
|
|
|
be installed with a simple `gem install bundler`. Afterwards, do the following:
|
2010-01-22 03:13:53 +00:00
|
|
|
|
2010-02-10 07:10:16 +00:00
|
|
|
bundle install
|
2010-08-14 06:26:48 +00:00
|
|
|
rake
|
2010-01-22 03:13:53 +00:00
|
|
|
|
2011-11-03 04:27:32 +00:00
|
|
|
This will run the unit test suite, which should come back all green! Then you're good to go!
|
2010-12-24 00:35:41 +00:00
|
|
|
|
|
|
|
If you want to run Vagrant without having to install the gem, you may use `bundle exec`,
|
|
|
|
like so:
|
|
|
|
|
2013-12-05 22:31:25 +00:00
|
|
|
bundle exec vagrant help
|
2014-01-07 22:22:59 +00:00
|
|
|
|
2015-01-09 10:17:09 +00:00
|
|
|
**NOTE:** By default running Vagrant via `bundle` will disable plugins.
|
2014-01-07 22:22:59 +00:00
|
|
|
This is necessary because Vagrant creates its own private Bundler context
|
|
|
|
(it does not respect your Gemfile), because it uses Bundler to manage plugin
|
|
|
|
dependencies.
|
2011-11-03 04:27:32 +00:00
|
|
|
|
|
|
|
### Acceptance Tests
|
|
|
|
|
2013-12-05 22:31:25 +00:00
|
|
|
Vagrant also comes with an acceptance test suite that does black-box
|
|
|
|
tests of various Vagrant components. Note that these tests are **extremely
|
|
|
|
slow** because actual VMs are spun up and down. The full test suite can
|
|
|
|
take hours. Instead, try to run focused component tests.
|
2011-11-03 04:27:32 +00:00
|
|
|
|
2013-12-05 22:31:25 +00:00
|
|
|
To run the acceptance test suite, first copy `vagrant-spec.config.example.rb`
|
|
|
|
to `vagrant-spec.config.rb` and modify it to valid values. The places you
|
|
|
|
should fill in are clearly marked.
|
2011-11-03 04:27:32 +00:00
|
|
|
|
2013-12-05 22:31:25 +00:00
|
|
|
Next, see the components that can be tested:
|
2011-11-03 04:27:32 +00:00
|
|
|
|
2013-12-05 22:31:25 +00:00
|
|
|
```
|
|
|
|
$ rake acceptance:components
|
|
|
|
cli
|
|
|
|
provider/virtualbox/basic
|
|
|
|
...
|
|
|
|
```
|
2011-11-03 04:27:32 +00:00
|
|
|
|
2013-12-05 22:31:25 +00:00
|
|
|
Then, run one of those components:
|
2011-11-03 04:27:32 +00:00
|
|
|
|
2013-12-05 22:31:25 +00:00
|
|
|
```
|
|
|
|
$ rake acceptance:run COMPONENTS="cli"
|
|
|
|
...
|
|
|
|
```
|