--- /dev/null
- puppet.manifest_file = "bootstrap/vagrant.pp"
- puppet.manifests_path = "puppet/manifests"
- puppet.module_path = "puppet/modules"
- puppet.temp_dir = "/etc/puppet"
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+Vagrant::Config.run do |config|
+ # Every Vagrant virtual environment requires a box to build off of.
+ config.vm.box = "wheezy"
+
+ # Shell provisioner to setup basic environment.
+ config.vm.provision :shell, :inline => "/vagrant/puppet/bin/provision"
+
+ # Enable provisioning with Puppet stand alone.
+ config.vm.provision :puppet do |puppet|
++ puppet.manifest_file = "bootstrap/vagrant.pp"
++ puppet.manifests_path = "puppet/manifests"
++ puppet.module_path = "puppet/modules"
++ puppet.temp_dir = "/etc/puppet"
++ puppet.working_directory = "/etc/puppet"
+ end
+
+ # Define a Host VM
+ config.vm.define :host do |host_config|
+ db_config.vm.box = "host"
+ web_config.vm.network :hostonly, "192.168.50.101"
+ end
+
+ # Define a Puppetmaster VM
+ config.vm.define :master do |master_config|
+ master_config.vm.box = "master"
+ master_config.vm.forward_port 8139, 8140
+ web_config.vm.network :hostonly, "192.168.50.102"
+ end
+
+ # Define a Proxy VM
+ config.vm.define :proxy do |proxy_config|
+ proxy_config.vm.box = "proxy"
+ proxy_config.vm.forward_port 8139, 8140
+ web_config.vm.network :hostonly, "192.168.50.103"
+ end
+
+ # Define a Web VM
+ config.vm.define :web do |web_config|
+ web_config.vm.box = "web"
+ web_config.vm.forward_port 80, 8080
+ web_config.vm.network :hostonly, "192.168.50.104"
+ end
+
+ # Define a Storage VM
+ config.vm.define :storage do |storage_config|
+ storage_config.vm.box = "storage"
+ storage_config.vm.network :hostonly, "192.168.50.105"
+ end
+
+ # Define a Test VM
+ config.vm.define :test do |test_config|
+ test_config.vm.box = "test"
+ test_config.vm.network :hostonly, "192.168.50.106"
+ end
+
+ # Share hiera configuration.
+ config.vm.share_folder "hiera", "/etc/puppet/hiera", "puppet/hiera", create: true
+end