Vundler

Dead easy Vagrant plugins management (not to be confused with vim's Vundle), think of it as soon-to-be "Bundler for Vagrant".

WARNING

This is highly experimental and things might go wrong. It basically does some heavy monkey patching on Vagrant's core and should not be considered "production-ready". Please keep that in mind and be ready to revert Vundler's installation in case things go crazy.

Installation

Make sure you have Vagrant 1.2+ and run:

vagrant plugin install vundler
vagrant vundler setup

Usage

Add a plugins.json file to your project root like the following:

[
  "vagrant-lxc",
  {"vagrant-cachier": "0.2.0"}
]

And run vagrant plugin bundle to install missing dependencies:

$ vagrant plugin bundle

Installing plugins...
  -> vagrant-lxc already installed
  -> vagrant-cachier (0.2.0)

List installed plugins with vagrant plugin list:

$ vagrant plugin list

vagrant-lxc (0.4.0)
vundler (0.0.4)

Project dependencies:
  -> vagrant-lxc
  -> vagrant-cachier 0.2.0

Help! Things are falling apart!

First bring back Vagrant's default plugins.json file:

mv $HOME/.vagrant.d/{global-,}plugins.json

And then remove the require 'vundler' from your $HOME/.vagrant.d/Vagrantfile.

How does it work?

Have a look at this blog post.

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