blob: 8cb119de38fdac84f3bb4b75cac26f94b66226f5 [file] [log] [blame]
Zack Williamsce63eb02017-02-28 10:46:22 -07001# -*- mode: ruby -*-
2# vi: set ft=ruby :
3
Andy Bavierb0b5a142017-07-17 17:32:55 -07004require 'yaml'
5settings = YAML.load_file('genconfig/config.yml')
6
7$cordpath = "../../.."
8$ciab_dir = "/opt/ciab"
Zack Williamsce63eb02017-02-28 10:46:22 -07009
10Vagrant.configure(2) do |config|
11
Andy Bavierb0b5a142017-07-17 17:32:55 -070012 config.vm.synced_folder '.', '/vagrant', disabled: true
13
Zack Williamsce63eb02017-02-28 10:46:22 -070014 config.vm.define "corddev" do |d|
15 d.ssh.forward_agent = true
16 d.vm.box = "ubuntu/trusty64"
17 d.vm.hostname = "corddev"
18 d.vm.network "private_network", ip: "10.100.198.200"
Gopinath Taget40d57b32017-08-16 17:05:09 -070019 d.vm.synced_folder settings['host_cord_profile_dir'], settings['build_cord_profile_dir'], create: true
20 d.vm.provision :hosts do |provisioner|
21 provisioner.autoconfigure = true
22 provisioner.sync_hosts = true
23 provisioner.add_host '10.100.198.201', ['docker-registry']
24 end
Andy Bavierb0b5a142017-07-17 17:32:55 -070025 d.vm.synced_folder $cordpath, settings['build_cord_dir']
26 d.vm.provider :virtualbox do |v|
27 v.memory = settings['dev_vm_mem']
28 v.cpus = settings['dev_vm_cpu']
Zack Williamsce63eb02017-02-28 10:46:22 -070029 end
30 d.vm.provider :libvirt do |v, override|
Andy Bavierb0b5a142017-07-17 17:32:55 -070031 v.memory = settings['dev_vm_mem']
32 v.cpus = settings['dev_vm_cpu']
Andy Bavier35d238e2017-07-24 16:47:22 -070033 override.vm.synced_folder $cordpath, settings['build_cord_dir'], type: "nfs"
Zack Williamsce63eb02017-02-28 10:46:22 -070034 end
35 end
36
Andy Bavier35d238e2017-07-24 16:47:22 -070037 config.vm.define "head1" do |d|
Zack Williamsce63eb02017-02-28 10:46:22 -070038 d.vm.box = "ubuntu/trusty64"
Andy Bavier35d238e2017-07-24 16:47:22 -070039 d.vm.hostname = "head1"
Zack Williamsce63eb02017-02-28 10:46:22 -070040 d.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: '*'
41 d.vm.network "private_network", ip: "10.100.198.201"
Andy Bavierb0b5a142017-07-17 17:32:55 -070042 d.vm.synced_folder $cordpath, $ciab_dir
Zack Williamsce63eb02017-02-28 10:46:22 -070043 d.vm.network "private_network",
Andy Bavierb0b5a142017-07-17 17:32:55 -070044 ip: "0.0.0.0", # not used, ignore
Zack Williamsce63eb02017-02-28 10:46:22 -070045 auto_config: false,
Zack Williams0a7ef162017-07-18 18:15:26 -070046 virtualbox__intnet: settings['vm_management_network_name'],
47 libvirt__network_name: settings['vm_management_network_name'],
Zack Williamsce63eb02017-02-28 10:46:22 -070048 libvirt__forward_mode: "none",
49 libvirt__dhcp_enabled: false
Andy Bavierb36b84e2017-08-10 14:46:32 -070050 d.vm.network "public_network",
Zack Williamsce63eb02017-02-28 10:46:22 -070051 mac: "02420a060101",
52 auto_config: false,
Andy Bavierb36b84e2017-08-10 14:46:32 -070053 type: "bridge",
54 dev: "leaf1",
55 ovs: true
Andy Bavierb0b5a142017-07-17 17:32:55 -070056 d.vm.provider :virtualbox do |v|
Andy Bavier35d238e2017-07-24 16:47:22 -070057 v.memory = settings['head_vm_mem']
58 v.cpus = settings['head_vm_cpu']
59 end
60 d.vm.provision :ansible do |ansible|
61 ansible.playbook = $cordpath + "/build/ansible/head-net.yml"
Zack Williamsce63eb02017-02-28 10:46:22 -070062 end
63 d.vm.provider :libvirt do |v, override|
Andy Bavier35d238e2017-07-24 16:47:22 -070064 v.memory = settings['head_vm_mem']
65 v.cpus = settings['head_vm_cpu']
Zack Williamsce63eb02017-02-28 10:46:22 -070066 v.storage :file, :size => '100G', :type => 'qcow2'
Andy Bavierb0b5a142017-07-17 17:32:55 -070067 override.vm.provision :ansible do |ansible|
68 ansible.playbook = $cordpath + "/build/ansible/add-extra-drive.yml" # Needs testing
69 end
Zack Williamsce63eb02017-02-28 10:46:22 -070070 end
71 end
72
Andy Bavier35d238e2017-07-24 16:47:22 -070073 config.vm.define "compute1" do |c|
Zack Williamsce63eb02017-02-28 10:46:22 -070074 c.vm.communicator = "none"
Andy Bavier35d238e2017-07-24 16:47:22 -070075 c.vm.hostname = "compute1"
Zack Williamsce63eb02017-02-28 10:46:22 -070076 c.vm.network "private_network",
77 adapter: 1,
78 ip: "0.0.0.0",
79 auto_config: false,
Zack Williams0a7ef162017-07-18 18:15:26 -070080 virtualbox__intnet: settings['vm_management_network_name'],
81 libvirt__network_name: settings['vm_management_network_name']
Andy Bavierb36b84e2017-08-10 14:46:32 -070082 c.vm.network "public_network",
Zack Williamsce63eb02017-02-28 10:46:22 -070083 adapter: 2, # The fabric interface for each node
Zack Williamsce63eb02017-02-28 10:46:22 -070084 auto_config: false,
Andy Bavierb36b84e2017-08-10 14:46:32 -070085 type: "bridge",
86 dev: "leaf1",
87 ovs: true
Zack Williamsce63eb02017-02-28 10:46:22 -070088 c.vm.provider :libvirt do |v|
Andy Bavierb0b5a142017-07-17 17:32:55 -070089 v.memory = settings['compute_vm_mem']
90 v.cpus = settings['compute_vm_cpu']
Zack Williamsce63eb02017-02-28 10:46:22 -070091 v.machine_virtual_size = 100
92 v.storage :file, :size => '100G', :type => 'qcow2'
93 v.boot 'network'
94 v.boot 'hd'
95 v.nested = true
96 end
Andy Bavierb0b5a142017-07-17 17:32:55 -070097 c.vm.provider :virtualbox do |v, override|
Zack Williamsce63eb02017-02-28 10:46:22 -070098 override.vm.box = "clink15/pxe"
Andy Bavierb0b5a142017-07-17 17:32:55 -070099 v.memory = settings['compute_vm_mem']
100 v.cpus = settings['compute_vm_cpu']
Zack Williamsce63eb02017-02-28 10:46:22 -0700101 v.gui = "true"
102 end
103 end
104
Andy Bavier35d238e2017-07-24 16:47:22 -0700105 config.vm.define "compute2" do |c|
Zack Williamsce63eb02017-02-28 10:46:22 -0700106 c.vm.communicator = "none"
Andy Bavier35d238e2017-07-24 16:47:22 -0700107 c.vm.hostname = "compute2"
Zack Williamsce63eb02017-02-28 10:46:22 -0700108 c.vm.network "private_network",
109 adapter: 1,
110 ip: "0.0.0.0",
111 auto_config: false,
Zack Williams0a7ef162017-07-18 18:15:26 -0700112 virtualbox__intnet: settings['vm_management_network_name'],
113 libvirt__network_name: settings['vm_management_network_name']
Andy Bavierb36b84e2017-08-10 14:46:32 -0700114 c.vm.network "public_network",
Zack Williamsce63eb02017-02-28 10:46:22 -0700115 adapter: 2, # The fabric interface for each node
Zack Williamsce63eb02017-02-28 10:46:22 -0700116 auto_config: false,
Andy Bavierb36b84e2017-08-10 14:46:32 -0700117 type: "bridge",
118 dev: "leaf2",
119 ovs: true
Zack Williamsce63eb02017-02-28 10:46:22 -0700120 c.vm.provider :libvirt do |v|
Andy Bavierb0b5a142017-07-17 17:32:55 -0700121 v.memory = settings['compute_vm_mem']
122 v.cpus = settings['compute_vm_cpu']
Zack Williamsce63eb02017-02-28 10:46:22 -0700123 v.machine_virtual_size = 100
124 v.storage :file, :size => '100G', :type => 'qcow2'
125 v.boot 'network'
126 v.boot 'hd'
127 v.nested = true
128 end
Andy Bavierb0b5a142017-07-17 17:32:55 -0700129 c.vm.provider :virtualbox do |v, override|
Zack Williamsce63eb02017-02-28 10:46:22 -0700130 override.vm.box = "clink15/pxe"
Andy Bavierb0b5a142017-07-17 17:32:55 -0700131 v.memory = settings['compute_vm_mem']
132 v.cpus = settings['compute_vm_cpu']
Zack Williamsce63eb02017-02-28 10:46:22 -0700133 v.gui = "true"
134 end
135 end
136
Andy Bavier35d238e2017-07-24 16:47:22 -0700137 config.vm.define "compute3" do |c|
Zack Williamsce63eb02017-02-28 10:46:22 -0700138 c.vm.communicator = "none"
Andy Bavier35d238e2017-07-24 16:47:22 -0700139 c.vm.hostname = "compute3"
Zack Williamsce63eb02017-02-28 10:46:22 -0700140 c.vm.network "private_network",
141 adapter: 1,
142 ip: "0.0.0.0",
143 auto_config: false,
Zack Williams0a7ef162017-07-18 18:15:26 -0700144 virtualbox__intnet: settings['vm_management_network_name'],
145 libvirt__network_name: settings['vm_management_network_name']
Andy Bavierb36b84e2017-08-10 14:46:32 -0700146 c.vm.network "public_network",
Zack Williamsce63eb02017-02-28 10:46:22 -0700147 adapter: 2, # The fabric interface for each node
Zack Williamsce63eb02017-02-28 10:46:22 -0700148 auto_config: false,
Andy Bavierb36b84e2017-08-10 14:46:32 -0700149 type: "bridge",
150 dev: "leaf2",
151 ovs: true
Zack Williamsce63eb02017-02-28 10:46:22 -0700152 c.vm.provider :libvirt do |v|
Andy Bavierb0b5a142017-07-17 17:32:55 -0700153 v.memory = settings['compute_vm_mem']
154 v.cpus = settings['compute_vm_cpu']
Zack Williamsce63eb02017-02-28 10:46:22 -0700155 v.machine_virtual_size = 100
156 v.storage :file, :size => '100G', :type => 'qcow2'
157 v.boot 'network'
158 v.boot 'hd'
159 v.nested = true
160 end
Andy Bavierb0b5a142017-07-17 17:32:55 -0700161 c.vm.provider :virtualbox do |v, override|
Zack Williamsce63eb02017-02-28 10:46:22 -0700162 override.vm.box = "clink15/pxe"
Andy Bavierb0b5a142017-07-17 17:32:55 -0700163 v.memory = settings['compute_vm_mem']
164 v.cpus = settings['compute_vm_cpu']
Zack Williamsce63eb02017-02-28 10:46:22 -0700165 v.gui = "true"
166 end
167 end
168
169end
170