blob: 9799a91005b5bb8afc5ba0623b6a73b52c66722a [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
Zack Williams82f24ca2017-12-30 13:53:46 -070016 d.vm.box = settings["vagrant_box"]
Zack Williamsce63eb02017-02-28 10:46:22 -070017 d.vm.hostname = "corddev"
18 d.vm.network "private_network", ip: "10.100.198.200"
Zack Williamsb44e9b72017-10-17 15:22:55 -070019 d.vm.synced_folder $cordpath, settings['build_cord_dir']
Gopinath Taget40d57b32017-08-16 17:05:09 -070020 d.vm.synced_folder settings['host_cord_profile_dir'], settings['build_cord_profile_dir'], create: true
21 d.vm.provision :hosts do |provisioner|
22 provisioner.autoconfigure = true
23 provisioner.sync_hosts = true
24 provisioner.add_host '10.100.198.201', ['docker-registry']
25 end
Andy Bavierb0b5a142017-07-17 17:32:55 -070026 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']
Zack Williams75a1df32017-11-14 14:48:45 -070033 override.vm.synced_folder $cordpath, settings['build_cord_dir'], type: "nfs", nfs_udp: false, nfs_version: 4
34 override.vm.synced_folder settings['host_cord_profile_dir'], settings['build_cord_profile_dir'], type: "nfs", nfs_udp: false, nfs_version: 4
Zack Williamsce63eb02017-02-28 10:46:22 -070035 end
36 end
37
Andy Bavier35d238e2017-07-24 16:47:22 -070038 config.vm.define "head1" do |d|
Zack Williams82f24ca2017-12-30 13:53:46 -070039 d.vm.box = settings["vagrant_box"]
Andy Bavier35d238e2017-07-24 16:47:22 -070040 d.vm.hostname = "head1"
Zack Williamsccf0bb12018-01-02 14:33:57 -070041 d.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: '0.0.0.0'
Zack Williamsce63eb02017-02-28 10:46:22 -070042 d.vm.network "private_network", ip: "10.100.198.201"
Andy Bavierb0b5a142017-07-17 17:32:55 -070043 d.vm.synced_folder $cordpath, $ciab_dir
Zack Williamsce63eb02017-02-28 10:46:22 -070044 d.vm.network "private_network",
Andy Bavierb0b5a142017-07-17 17:32:55 -070045 ip: "0.0.0.0", # not used, ignore
Zack Williamsce63eb02017-02-28 10:46:22 -070046 auto_config: false,
Zack Williams0a7ef162017-07-18 18:15:26 -070047 virtualbox__intnet: settings['vm_management_network_name'],
48 libvirt__network_name: settings['vm_management_network_name'],
Zack Williamsce63eb02017-02-28 10:46:22 -070049 libvirt__forward_mode: "none",
50 libvirt__dhcp_enabled: false
Andy Bavierb36b84e2017-08-10 14:46:32 -070051 d.vm.network "public_network",
Zack Williamsce63eb02017-02-28 10:46:22 -070052 mac: "02420a060101",
53 auto_config: false,
Andy Bavierb36b84e2017-08-10 14:46:32 -070054 type: "bridge",
55 dev: "leaf1",
56 ovs: true
Andy Bavierb0b5a142017-07-17 17:32:55 -070057 d.vm.provider :virtualbox do |v|
Andy Bavier35d238e2017-07-24 16:47:22 -070058 v.memory = settings['head_vm_mem']
59 v.cpus = settings['head_vm_cpu']
60 end
Zack Williamsce63eb02017-02-28 10:46:22 -070061 d.vm.provider :libvirt do |v, override|
Andy Bavier35d238e2017-07-24 16:47:22 -070062 v.memory = settings['head_vm_mem']
63 v.cpus = settings['head_vm_cpu']
Zack Williamsce63eb02017-02-28 10:46:22 -070064 v.storage :file, :size => '100G', :type => 'qcow2'
Zack Williams75a1df32017-11-14 14:48:45 -070065 override.vm.synced_folder $cordpath, $ciab_dir, type: "nfs", nfs_udp: false, nfs_version: 4
Andy Bavierb0b5a142017-07-17 17:32:55 -070066 override.vm.provision :ansible do |ansible|
67 ansible.playbook = $cordpath + "/build/ansible/add-extra-drive.yml" # Needs testing
68 end
Zack Williamsce63eb02017-02-28 10:46:22 -070069 end
70 end
71
Andy Bavier35d238e2017-07-24 16:47:22 -070072 config.vm.define "compute1" do |c|
Zack Williamsce63eb02017-02-28 10:46:22 -070073 c.vm.communicator = "none"
Andy Bavier35d238e2017-07-24 16:47:22 -070074 c.vm.hostname = "compute1"
Zack Williamsce63eb02017-02-28 10:46:22 -070075 c.vm.network "private_network",
76 adapter: 1,
77 ip: "0.0.0.0",
78 auto_config: false,
Zack Williams0a7ef162017-07-18 18:15:26 -070079 virtualbox__intnet: settings['vm_management_network_name'],
80 libvirt__network_name: settings['vm_management_network_name']
Andy Bavierb36b84e2017-08-10 14:46:32 -070081 c.vm.network "public_network",
Zack Williamsce63eb02017-02-28 10:46:22 -070082 adapter: 2, # The fabric interface for each node
Zack Williamsce63eb02017-02-28 10:46:22 -070083 auto_config: false,
Andy Bavierb36b84e2017-08-10 14:46:32 -070084 type: "bridge",
85 dev: "leaf1",
86 ovs: true
Zack Williamsce63eb02017-02-28 10:46:22 -070087 c.vm.provider :libvirt do |v|
Andy Bavierb0b5a142017-07-17 17:32:55 -070088 v.memory = settings['compute_vm_mem']
89 v.cpus = settings['compute_vm_cpu']
Zack Williamsce63eb02017-02-28 10:46:22 -070090 v.machine_virtual_size = 100
91 v.storage :file, :size => '100G', :type => 'qcow2'
92 v.boot 'network'
93 v.boot 'hd'
94 v.nested = true
95 end
Andy Bavierb0b5a142017-07-17 17:32:55 -070096 c.vm.provider :virtualbox do |v, override|
Zack Williamsce63eb02017-02-28 10:46:22 -070097 override.vm.box = "clink15/pxe"
Andy Bavierb0b5a142017-07-17 17:32:55 -070098 v.memory = settings['compute_vm_mem']
99 v.cpus = settings['compute_vm_cpu']
Zack Williamsce63eb02017-02-28 10:46:22 -0700100 v.gui = "true"
101 end
102 end
103
Andy Bavier35d238e2017-07-24 16:47:22 -0700104 config.vm.define "compute2" do |c|
Zack Williamsce63eb02017-02-28 10:46:22 -0700105 c.vm.communicator = "none"
Andy Bavier35d238e2017-07-24 16:47:22 -0700106 c.vm.hostname = "compute2"
Zack Williamsce63eb02017-02-28 10:46:22 -0700107 c.vm.network "private_network",
108 adapter: 1,
109 ip: "0.0.0.0",
110 auto_config: false,
Zack Williams0a7ef162017-07-18 18:15:26 -0700111 virtualbox__intnet: settings['vm_management_network_name'],
112 libvirt__network_name: settings['vm_management_network_name']
Andy Bavierb36b84e2017-08-10 14:46:32 -0700113 c.vm.network "public_network",
Zack Williamsce63eb02017-02-28 10:46:22 -0700114 adapter: 2, # The fabric interface for each node
Zack Williamsce63eb02017-02-28 10:46:22 -0700115 auto_config: false,
Andy Bavierb36b84e2017-08-10 14:46:32 -0700116 type: "bridge",
117 dev: "leaf2",
118 ovs: true
Zack Williamsce63eb02017-02-28 10:46:22 -0700119 c.vm.provider :libvirt do |v|
Andy Bavierb0b5a142017-07-17 17:32:55 -0700120 v.memory = settings['compute_vm_mem']
121 v.cpus = settings['compute_vm_cpu']
Zack Williamsce63eb02017-02-28 10:46:22 -0700122 v.machine_virtual_size = 100
123 v.storage :file, :size => '100G', :type => 'qcow2'
124 v.boot 'network'
125 v.boot 'hd'
126 v.nested = true
127 end
Andy Bavierb0b5a142017-07-17 17:32:55 -0700128 c.vm.provider :virtualbox do |v, override|
Zack Williamsce63eb02017-02-28 10:46:22 -0700129 override.vm.box = "clink15/pxe"
Andy Bavierb0b5a142017-07-17 17:32:55 -0700130 v.memory = settings['compute_vm_mem']
131 v.cpus = settings['compute_vm_cpu']
Zack Williamsce63eb02017-02-28 10:46:22 -0700132 v.gui = "true"
133 end
134 end
135
Andy Bavier35d238e2017-07-24 16:47:22 -0700136 config.vm.define "compute3" do |c|
Zack Williamsce63eb02017-02-28 10:46:22 -0700137 c.vm.communicator = "none"
Andy Bavier35d238e2017-07-24 16:47:22 -0700138 c.vm.hostname = "compute3"
Zack Williamsce63eb02017-02-28 10:46:22 -0700139 c.vm.network "private_network",
140 adapter: 1,
141 ip: "0.0.0.0",
142 auto_config: false,
Zack Williams0a7ef162017-07-18 18:15:26 -0700143 virtualbox__intnet: settings['vm_management_network_name'],
144 libvirt__network_name: settings['vm_management_network_name']
Andy Bavierb36b84e2017-08-10 14:46:32 -0700145 c.vm.network "public_network",
Zack Williamsce63eb02017-02-28 10:46:22 -0700146 adapter: 2, # The fabric interface for each node
Zack Williamsce63eb02017-02-28 10:46:22 -0700147 auto_config: false,
Andy Bavierb36b84e2017-08-10 14:46:32 -0700148 type: "bridge",
149 dev: "leaf2",
150 ovs: true
Zack Williamsce63eb02017-02-28 10:46:22 -0700151 c.vm.provider :libvirt do |v|
Andy Bavierb0b5a142017-07-17 17:32:55 -0700152 v.memory = settings['compute_vm_mem']
153 v.cpus = settings['compute_vm_cpu']
Zack Williamsce63eb02017-02-28 10:46:22 -0700154 v.machine_virtual_size = 100
155 v.storage :file, :size => '100G', :type => 'qcow2'
156 v.boot 'network'
157 v.boot 'hd'
158 v.nested = true
159 end
Andy Bavierb0b5a142017-07-17 17:32:55 -0700160 c.vm.provider :virtualbox do |v, override|
Zack Williamsce63eb02017-02-28 10:46:22 -0700161 override.vm.box = "clink15/pxe"
Andy Bavierb0b5a142017-07-17 17:32:55 -0700162 v.memory = settings['compute_vm_mem']
163 v.cpus = settings['compute_vm_cpu']
Zack Williamsce63eb02017-02-28 10:46:22 -0700164 v.gui = "true"
165 end
166 end
167
168end
169