#VagrantHitch
This vagrant module adds data driven infrastructure to your vagrant environment.
Installation
In order to install it with Vagrant 1.1+, please use the vagrant plugin
command.
NOTE: you will experience warnings, they are ignorable and will be cleared in a future update
vagrant plugin install vagrant-hitch
If you installed it as a ruby gem, or a vagrant plugin: Just add the following line to your Vagrantfile.
Vagrant::Config.run &VagrantHitch.up!(path_to_config_directory)
for example:
Vagrant::Config.run &VagrantHitch.up!(File.join(File.dirname(__FILE__),'config'))
If not installed as a gem, you'll have to source vagrant-hitch appropriately and add to your Vagrantfile:
require 'vagrant-hitch'
Usage
Example files are in the /example directory
Parameters
The following vagrant paramters are available in the hitch configuration:
-
vbox
- <any valid vagrant box> -
vbox-url
- <valid box URL> -
boot_mode
- [:headless | :gui] -
orgname
- <organization name> -
cpu_count
- CPU Count -
memory_size
- RAM Amount -
ip
- <valid IP address> -
netmask
- <valid netmask> -
dns
- <hostname> -
tld
- <domain name> -
patterns
- [/^.*mysite.dev$/, /^.*myothersite.dev$/] -
guest
- Custom Guest Implementation -
ports
- Custom Port Forwards -
winrm
- WinRM configuration -
mounts
- Custom Mounts -
shell
- Shell Provision Fileinline
args
path
-
puppet
- Puppet Manifest Configurationmodules
manifests_path
options
-
puppet_server
Puppet Server Configurationserver
options
-
chef
- Chef Configurationlog_level
cookbooks_path
roles_path
data_bags_path
Vagrant 1.1.x Required
-
network_mode
- [:hostonly | :private_network | :public_network] (defaults to :hostonly)
Directory structure
The directory structure assumes:
. # Project directory
├── manifests
│ └── site.pp
├── modules
│ ├── dist
│ └── site
└── vagrant
├── Vagrantfile # Project vagrantfile
└── config # The data driven infrastructure directory
├── graph
│ ├── test1.vagrant.test
│ └── test2.vagrant.test
├── nodes.yml
└── provisioner_puppet.yml