#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 Fileinlineargspath
-
puppet- Puppet Manifest Configurationmodulesmanifests_pathoptions
-
puppet_serverPuppet Server Configurationserveroptions
-
chef- Chef Configurationlog_levelcookbooks_pathroles_pathdata_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