-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathVagrantfile
53 lines (46 loc) · 1.47 KB
/
Vagrantfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# -*- mode: ruby -*-
# vi: set ft=ruby :
nodes = {
'node0' => {:ip => '172.16.10.10', :memory => 512},
'node1' => {:ip => '172.16.10.11'},
'node2' => {:ip => '172.16.10.12'},
}
node_defaults = {
:domain => 'internal',
:memory => 384,
}
Vagrant.configure("2") do |config|
config.vm.box = "puppet-precise64"
config.vm.box_url = "http://puppet-vagrant-boxes.puppetlabs.com/ubuntu-server-1204-x64.box"
config.vm.provision :puppet do |puppet|
puppet.manifest_file = "site.pp"
puppet.manifests_path = "manifests"
puppet.module_path = [ "modules", "vendor/modules" ]
puppet.options = [
"--verbose", "--summarize",
"--reports", "store",
"--hiera_config", "/vagrant/hiera.yaml",
]
end
nodes.each do |node_name, node_opts|
config.vm.define node_name do |node|
node_opts = node_defaults.merge(node_opts)
fqdn = "#{node_name}.#{node_opts[:domain]}"
node.vm.hostname = fqdn
if node_opts[:ip]
node.vm.network(:private_network, :ip => node_opts[:ip])
end
node.vm.provider :virtualbox do |vb|
modifyvm_args = ['modifyvm', :id]
modifyvm_args << "--name" << fqdn
if node_opts[:memory]
modifyvm_args << "--memory" << node_opts[:memory]
end
# Isolate guests from host networking.
modifyvm_args << "--natdnsproxy1" << "on"
modifyvm_args << "--natdnshostresolver1" << "on"
vb.customize(modifyvm_args)
end
end
end
end