Data driven Vagrant Infrastructure - hitch up your vagrant!
Ruby Shell
Latest commit ba06a91 Apr 12, 2013 @azizshamim azizshamim Merge branch 'network'
Permalink
Failed to load latest commit information.
example
lib
spec
.gitignore
.rspec
.travis.yml
Gemfile
Gemfile.lock
LICENSE
README.mkd
Rakefile
vagrant-hitch.gemspec

README.mkd

#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 File
    • inline
    • args
    • path
  • puppet - Puppet Manifest Configuration
    • modules
    • manifests_path
    • options
  • puppet_server Puppet Server Configuration
    • server
    • options
  • chef - Chef Configuration
    • log_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