Vagrant Config Builder
Configure and manage your Vagrant environments with data.
Synopsis
This plugin provides an interface to the Vagrant configuration constructs in a
logic free manner. You can format your input data to fit your needs and use
vagrant-config_builder
to transform that into the needed Vagrant config.
Example
This example loads all yaml files in the config directory and generates a Vagrant config based on that information. File names are arbitrary and chosen for clarity.
Directory structure
.
├── config
│ ├── roles.yaml
│ └── vms.yaml
└── Vagrantfile
Vagrantfile
require 'config_builder'
Vagrant.configure('2', &ConfigBuilder.load(
:yaml,
:yamldir,
File.('config', __DIR__)
))
config/roles.yaml
---
roles:
bigvm:
provider:
type: virtualbox
customize: [[modifyvm, !ruby/sym id, '--memory', 1024]]
config/vms.yaml
---
vms:
-
name: db
private_networks: [ {ip: '10.20.1.2'} ]
box: centos-5-i386
hostname: db.puppetlabs.vm
roles: bigvm
-
name: web
private_networks: [ {ip: '10.20.1.3'} ]
box: centos-5-i386
Installation
Installation into the Vagrant internal gems:
vagrant plugin install vagrant-config_builder
Installation from source
Build the gem:
gem build vagrant-config_builder.gemspec
Install the gem:
gem install vagrant-config_builder-<version>.gem