fgrehm/vagrant-boxen

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# Vagrant::Boxen

[![Build Status](https://travis-ci.org/fgrehm/vagrant-boxen.png)](https://travis-ci.org/fgrehm/vagrant-boxen)
[![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/fgrehm/vagrant-boxen)

Inspired by [Rails Wizard](http://railswizard.org/) and GitHub's
[Boxen](http://boxen.github.com/), this gem attempts to lower the "entry barrier"
of getting a manageable Vagrant machine targetted for development up and
running without the need to learn [Puppet](https://puppetlabs.com/puppet/what-is-puppet/)
or [Chef](http://www.opscode.com/chef/).

**DEPRECATED: The idea I had for this plugin has evolved into a Vagrant + Docker 
combo called [Ventriloquist](https://github.com/fgrehm/ventriloquist) and I'm no
longer planning to maintain this plugin, feel free to contact me in case you want
the gem name or continue to work on it.**


## Installation

If you use the gem version of Vagrant, use:

```terminal
$ gem install vagrant-boxen
```

otherwise, use:

```terminal
$ vagrant gem install vagrant-boxen
```


## Usage

Just add a `Vagrant::Boxen::Provisioner` to your Vagrantfile:

```ruby
require 'vagrant-boxen'
Vagrant::Config.run do |config|
  # ... other settings ...
  config.vm.provision Vagrant::Boxen::Provisioner do |boxen|
    # Install redis and memcached with defaults
    boxen.install :redis, :memcached

    # or specify configuration options for the module
    boxen.redis {
      port   '1234'
      memory '1gb'
    }
  end
end
```

For now, please refer to the sample [Vagrantfile](Vagrantfile) on this repo for
the most up to date documentation.

While the modules provided might work on most linux distributions, [I'm developing
against](Vagrantfile) an Ubuntu 12.10 64bits box based on https://github.com/downloads/roderik/VagrantQuantal64Box/quantal64.box

To find out more about the planned functionality, check out the
[project's issues](https://github.com/fgrehm/vagrant-boxen/issues).


## How does it work?

Under the hood, [`Vagrant::Boxen::Provisioner`](https://github.com/fgrehm/vagrant-boxen/blob/master/lib/vagrant-boxen/provisioner.rb)
will generate a puppet manifest based on the configured modules that will get
passed to a [`Vagrant::Provisioners::Puppet`](https://github.com/mitchellh/vagrant/blob/1-0-stable/lib/vagrant/provisioners/puppet.rb)
configured to use the bundled puppet modules.


## Contributing

1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request