1 # Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
2 VAGRANTFILE_API_VERSION = "2"
4 Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
6 config.vm.provision "shell", path: "resources/puppet/scripts/bootstrap.sh"
8 config.vm.provision "puppet" do |puppet|
9 puppet.hiera_config_path = "resources/puppet/hiera.yaml"
10 puppet.working_directory = "/vagrant/resources/puppet"
11 puppet.manifests_path = "resources/puppet/manifests"
12 puppet.manifest_file = "base.pp"
15 num_compute_nodes = (ENV['DEVSTACK_NUM_COMPUTE_NODES'] || 1).to_i
18 control_ip = "192.168.50.20"
19 compute_ip_base = "192.168.50."
20 compute_ips = num_compute_nodes.times.collect { |n| compute_ip_base + "#{n+21}" }
22 config.vm.define "mininet" do |mininet|
23 mininet.vm.box = "trusty64"
24 mininet.vm.box_url = "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-14.04_chef-provisionerless.box"
25 mininet.vm.provider "vmware_fusion" do |v, override|
26 override.vm.box_url = "http://opscode-vm-bento.s3.amazonaws.com/vagrant/vmware/opscode_ubuntu-14.04_chef-provisionerless.box"
28 mininet.vm.hostname = "mininet"
29 mininet.vm.network "private_network", ip: "192.168.50.15"
30 mininet.vm.provider :virtualbox do |vb|
33 mininet.vm.provider "vmware_fusion" do |vf|
34 vf.vmx["memsize"] = "2048"
36 mininet.vm.provider :libvirt do |lv|
39 mininet.vm.provision "puppet" do |puppet|
40 puppet.hiera_config_path = "resources/puppet/hiera.yaml"
41 puppet.working_directory = "/vagrant/resources/puppet"
42 puppet.manifests_path = "resources/puppet/manifests"
43 puppet.manifest_file = "mininet.pp"
47 config.vm.define "devstack-control" do |control|
48 control.vm.box = "trusty64"
49 control.vm.box_url = "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-14.04_chef-provisionerless.box"
50 control.vm.provider "vmware_fusion" do |v, override|
51 override.vm.box_url = "http://opscode-vm-bento.s3.amazonaws.com/vagrant/vmware/opscode_ubuntu-14.04_chef-provisionerless.box"
53 control.vm.hostname = "devstack-control"
54 control.vm.network "private_network", ip: "#{control_ip}"
55 control.vm.network "forwarded_port", guest: 8080, host: 8081
56 control.vm.provider :virtualbox do |vb|
59 control.vm.provider "vmware_fusion" do |vf|
60 vf.vmx["memsize"] = "4096"
62 control.vm.provider :libvirt do |lv|
65 control.vm.provision "puppet" do |puppet|
66 puppet.hiera_config_path = "resources/puppet/hiera.yaml"
67 puppet.working_directory = "/vagrant/resources/puppet"
68 puppet.manifests_path = "resources/puppet/manifests"
69 puppet.manifest_file = "devstack-control.pp"
73 # Devstack Compute Nodes
74 num_compute_nodes.times do |n|
75 config.vm.define "devstack-compute-#{n+1}" do |compute|
76 compute_ip = compute_ips[n]
78 compute.vm.box = "trusty64"
79 compute.vm.box_url = "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-14.04_chef-provisionerless.box"
80 compute.vm.provider "vmware_fusion" do |v, override|
81 override.vm.box_url = "http://opscode-vm-bento.s3.amazonaws.com/vagrant/vmware/opscode_ubuntu-14.04_chef-provisionerless.box"
83 compute.vm.hostname = "devstack-compute-#{compute_index}"
84 compute.vm.network "private_network", ip: "#{compute_ip}"
85 compute.vm.provider :virtualbox do |vb|
88 compute.vm.provider "vmware_fusion" do |vf|
89 vf.vmx["memsize"] = "4096"
91 compute.vm.provider :libvirt do |lv|
94 compute.vm.provision "puppet" do |puppet|
95 puppet.hiera_config_path = "resources/puppet/hiera.yaml"
96 puppet.working_directory = "/vagrant/resources/puppet"
97 puppet.manifests_path = "resources/puppet/manifests"
98 puppet.manifest_file = "devstack-compute.pp"