vagrant-mongodb is a Vagrant 1.1 plugin that supports the configuration
and initiation of a MongoDb replica set. The longer-term goal is to support
various MongoDb administrative tasks.
The current implementation is a proof-of-concept supporting the larger objective of using Vagrant as a cloud management interface for development and production environments.
The plugin communicates with the replica set members over SSH using the
The plugin has been tested with Vagrant 1.1.5 and a Ubuntu 12.04 guest.
Install the plugin following the typical Vagrant 1.1 procedure:
$ vagrant plugin install vagrant-mongodb
The MongoDb replica set must be configured within the project's
config.mongodb.auto_initiate = false config.mongodb.replset :rs0 do |rs| rs.ignore_private_ip = false rs.member :server1, :priority => 1 rs.member :server2, :priority => 2 rs.member :server3, :priority => 1 end
The first argument to
rs.member is the machine name defined within the
configuration. The second argument is optional accepting a hash of options
for the replica set member. These options are defined within MongoDb's
[replica set configuration reference].
By default, the plugin will lookup and use a static IP address for a
member machine if a private network is specified. To disable this, set
the replica set attribute,
ignore_private_ip, to false.
To disable the plugin hooks and initiate a replica set manually, set the
auto_initiate attribute to false.
NOTE: The plugin does not support configuration defined within a
By default, the plugin hooks into the
vagrant up and
commands. It will detect when a replica set's members are available and
and call initiate.
To manually initiate a replica set, invoke the following sub-command:
$ vagrant mongodb initiate db0 --provider <provider>
db0 is a machine defined within the
Vagrantfile belonging to a
replica set that will be initiated. The provider may be specified to
initiate a replica set not backed by VirtualBox.
Contributions are welcome.
- Fork the project
- Clone the forked repository
- Install project dependencies (
- Confirm tests pass (
bundle exec rake test)
- Create your feature branch (
git checkout -b my-new-feature)
- Commit your changes (
git commit -am 'Add some feature')
- Push to the branch (
git push origin my-new-feature)
- Create new Pull Request