Merge "Bug 1799: Fixed broken Vagrantfile URL"
[ovsdb.git] / Vagrantfile
1 # Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
2 VAGRANTFILE_API_VERSION = "2"
3
4 Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
5
6   config.vm.provision "shell", path: "resources/puppet/scripts/bootstrap.sh"
7
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"
13   end
14
15   num_compute_nodes = (ENV['DEVSTACK_NUM_COMPUTE_NODES'] || 1).to_i
16
17   # ip configuration
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}" }
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"
27     end
28     mininet.vm.hostname = "mininet"
29     mininet.vm.network "private_network", ip: "192.168.50.15"
30     mininet.vm.provider :virtualbox do |vb|
31       vb.memory = 2048
32     end
33     mininet.vm.provider "vmware_fusion" do |vf|
34       vf.vmx["memsize"] = "2048"
35     end
36     mininet.vm.provision "puppet" do |puppet|
37       puppet.hiera_config_path = "resources/puppet/hiera.yaml"
38       puppet.working_directory = "/vagrant/resources/puppet"
39       puppet.manifests_path = "resources/puppet/manifests"
40       puppet.manifest_file  = "mininet.pp"
41     end
42   end
43
44   config.vm.define "devstack-control" do |control|
45     control.vm.box = "saucy64"
46     control.vm.box_url = "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-14.04_chef-provisionerless.box"
47     control.vm.provider "vmware_fusion" do |v, override|
48       override.vm.box_url = "http://opscode-vm-bento.s3.amazonaws.com/vagrant/vmware/opscode_ubuntu-14.04_chef-provisionerless.box"
49     end
50     control.vm.hostname = "devstack-control"
51     control.vm.network "private_network", ip: "#{control_ip}"
52     control.vm.network "forwarded_port", guest: 8080, host: 8081
53     control.vm.provider :virtualbox do |vb|
54       vb.memory = 4096
55     end
56     control.vm.provider "vmware_fusion" do |vf|
57       vf.vmx["memsize"] = "4096"
58     end
59     control.vm.provision "puppet" do |puppet|
60       puppet.hiera_config_path = "resources/puppet/hiera.yaml"
61       puppet.working_directory = "/vagrant/resources/puppet"
62       puppet.manifests_path = "resources/puppet/manifests"
63       puppet.manifest_file  = "devstack-control.pp"
64     end
65   end
66
67   # Devstack Compute Nodes
68   num_compute_nodes.times do |n|
69     config.vm.define "devstack-compute-#{n+1}" do |compute|
70       compute_ip = compute_ips[n]
71       compute_index = n+1
72       compute.vm.box = "trusty64"
73       compute.vm.box_url = "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-14.04_chef-provisionerless.box"
74       compute.vm.provider "vmware_fusion" do |v, override|
75         override.vm.box_url = "http://opscode-vm-bento.s3.amazonaws.com/vagrant/vmware/opscode_ubuntu-14.04_chef-provisionerless.box"
76       end
77       compute.vm.hostname = "devstack-compute-#{compute_index}"
78       compute.vm.network "private_network", ip: "#{compute_ip}"
79       compute.vm.provider :virtualbox do |vb|
80         vb.memory = 4096
81       end
82       compute.vm.provider "vmware_fusion" do |vf|
83         vf.vmx["memsize"] = "4096"
84       end
85       compute.vm.provision "puppet" do |puppet|
86         puppet.hiera_config_path = "resources/puppet/hiera.yaml"
87         puppet.working_directory = "/vagrant/resources/puppet"
88         puppet.manifests_path = "resources/puppet/manifests"
89         puppet.manifest_file  = "devstack-compute.pp"
90       end
91     end
92   end
93 end