Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 1 | # -*- mode: ruby -*- |
| 2 | # vi: set ft=ruby : |
| 3 | |
Andy Bavier | b0b5a14 | 2017-07-17 17:32:55 -0700 | [diff] [blame] | 4 | require 'yaml' |
| 5 | settings = YAML.load_file('genconfig/config.yml') |
| 6 | |
| 7 | $cordpath = "../../.." |
| 8 | $ciab_dir = "/opt/ciab" |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 9 | |
| 10 | Vagrant.configure(2) do |config| |
| 11 | |
Andy Bavier | b0b5a14 | 2017-07-17 17:32:55 -0700 | [diff] [blame] | 12 | config.vm.synced_folder '.', '/vagrant', disabled: true |
| 13 | |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 14 | config.vm.define "corddev" do |d| |
| 15 | d.ssh.forward_agent = true |
Zack Williams | 82f24ca | 2017-12-30 13:53:46 -0700 | [diff] [blame] | 16 | d.vm.box = settings["vagrant_box"] |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 17 | d.vm.hostname = "corddev" |
| 18 | d.vm.network "private_network", ip: "10.100.198.200" |
Zack Williams | b44e9b7 | 2017-10-17 15:22:55 -0700 | [diff] [blame] | 19 | d.vm.synced_folder $cordpath, settings['build_cord_dir'] |
Gopinath Taget | 40d57b3 | 2017-08-16 17:05:09 -0700 | [diff] [blame] | 20 | 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 Bavier | b0b5a14 | 2017-07-17 17:32:55 -0700 | [diff] [blame] | 26 | d.vm.provider :virtualbox do |v| |
| 27 | v.memory = settings['dev_vm_mem'] |
| 28 | v.cpus = settings['dev_vm_cpu'] |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 29 | end |
| 30 | d.vm.provider :libvirt do |v, override| |
Andy Bavier | b0b5a14 | 2017-07-17 17:32:55 -0700 | [diff] [blame] | 31 | v.memory = settings['dev_vm_mem'] |
| 32 | v.cpus = settings['dev_vm_cpu'] |
Zack Williams | 75a1df3 | 2017-11-14 14:48:45 -0700 | [diff] [blame] | 33 | 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 Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 35 | end |
| 36 | end |
| 37 | |
Andy Bavier | 35d238e | 2017-07-24 16:47:22 -0700 | [diff] [blame] | 38 | config.vm.define "head1" do |d| |
Zack Williams | 82f24ca | 2017-12-30 13:53:46 -0700 | [diff] [blame] | 39 | d.vm.box = settings["vagrant_box"] |
Andy Bavier | 35d238e | 2017-07-24 16:47:22 -0700 | [diff] [blame] | 40 | d.vm.hostname = "head1" |
Zack Williams | ccf0bb1 | 2018-01-02 14:33:57 -0700 | [diff] [blame] | 41 | d.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: '0.0.0.0' |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 42 | d.vm.network "private_network", ip: "10.100.198.201" |
Andy Bavier | b0b5a14 | 2017-07-17 17:32:55 -0700 | [diff] [blame] | 43 | d.vm.synced_folder $cordpath, $ciab_dir |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 44 | d.vm.network "private_network", |
Andy Bavier | b0b5a14 | 2017-07-17 17:32:55 -0700 | [diff] [blame] | 45 | ip: "0.0.0.0", # not used, ignore |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 46 | auto_config: false, |
Zack Williams | 0a7ef16 | 2017-07-18 18:15:26 -0700 | [diff] [blame] | 47 | virtualbox__intnet: settings['vm_management_network_name'], |
| 48 | libvirt__network_name: settings['vm_management_network_name'], |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 49 | libvirt__forward_mode: "none", |
| 50 | libvirt__dhcp_enabled: false |
Andy Bavier | b36b84e | 2017-08-10 14:46:32 -0700 | [diff] [blame] | 51 | d.vm.network "public_network", |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 52 | mac: "02420a060101", |
| 53 | auto_config: false, |
Andy Bavier | b36b84e | 2017-08-10 14:46:32 -0700 | [diff] [blame] | 54 | type: "bridge", |
| 55 | dev: "leaf1", |
| 56 | ovs: true |
Andy Bavier | b0b5a14 | 2017-07-17 17:32:55 -0700 | [diff] [blame] | 57 | d.vm.provider :virtualbox do |v| |
Andy Bavier | 35d238e | 2017-07-24 16:47:22 -0700 | [diff] [blame] | 58 | v.memory = settings['head_vm_mem'] |
| 59 | v.cpus = settings['head_vm_cpu'] |
| 60 | end |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 61 | d.vm.provider :libvirt do |v, override| |
Andy Bavier | 35d238e | 2017-07-24 16:47:22 -0700 | [diff] [blame] | 62 | v.memory = settings['head_vm_mem'] |
| 63 | v.cpus = settings['head_vm_cpu'] |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 64 | v.storage :file, :size => '100G', :type => 'qcow2' |
Zack Williams | 75a1df3 | 2017-11-14 14:48:45 -0700 | [diff] [blame] | 65 | override.vm.synced_folder $cordpath, $ciab_dir, type: "nfs", nfs_udp: false, nfs_version: 4 |
Andy Bavier | b0b5a14 | 2017-07-17 17:32:55 -0700 | [diff] [blame] | 66 | override.vm.provision :ansible do |ansible| |
| 67 | ansible.playbook = $cordpath + "/build/ansible/add-extra-drive.yml" # Needs testing |
| 68 | end |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 69 | end |
| 70 | end |
| 71 | |
Andy Bavier | 35d238e | 2017-07-24 16:47:22 -0700 | [diff] [blame] | 72 | config.vm.define "compute1" do |c| |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 73 | c.vm.communicator = "none" |
Andy Bavier | 35d238e | 2017-07-24 16:47:22 -0700 | [diff] [blame] | 74 | c.vm.hostname = "compute1" |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 75 | c.vm.network "private_network", |
| 76 | adapter: 1, |
| 77 | ip: "0.0.0.0", |
| 78 | auto_config: false, |
Zack Williams | 0a7ef16 | 2017-07-18 18:15:26 -0700 | [diff] [blame] | 79 | virtualbox__intnet: settings['vm_management_network_name'], |
| 80 | libvirt__network_name: settings['vm_management_network_name'] |
Andy Bavier | b36b84e | 2017-08-10 14:46:32 -0700 | [diff] [blame] | 81 | c.vm.network "public_network", |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 82 | adapter: 2, # The fabric interface for each node |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 83 | auto_config: false, |
Andy Bavier | b36b84e | 2017-08-10 14:46:32 -0700 | [diff] [blame] | 84 | type: "bridge", |
| 85 | dev: "leaf1", |
| 86 | ovs: true |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 87 | c.vm.provider :libvirt do |v| |
Andy Bavier | b0b5a14 | 2017-07-17 17:32:55 -0700 | [diff] [blame] | 88 | v.memory = settings['compute_vm_mem'] |
| 89 | v.cpus = settings['compute_vm_cpu'] |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 90 | 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 Bavier | b0b5a14 | 2017-07-17 17:32:55 -0700 | [diff] [blame] | 96 | c.vm.provider :virtualbox do |v, override| |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 97 | override.vm.box = "clink15/pxe" |
Andy Bavier | b0b5a14 | 2017-07-17 17:32:55 -0700 | [diff] [blame] | 98 | v.memory = settings['compute_vm_mem'] |
| 99 | v.cpus = settings['compute_vm_cpu'] |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 100 | v.gui = "true" |
| 101 | end |
| 102 | end |
| 103 | |
Andy Bavier | 35d238e | 2017-07-24 16:47:22 -0700 | [diff] [blame] | 104 | config.vm.define "compute2" do |c| |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 105 | c.vm.communicator = "none" |
Andy Bavier | 35d238e | 2017-07-24 16:47:22 -0700 | [diff] [blame] | 106 | c.vm.hostname = "compute2" |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 107 | c.vm.network "private_network", |
| 108 | adapter: 1, |
| 109 | ip: "0.0.0.0", |
| 110 | auto_config: false, |
Zack Williams | 0a7ef16 | 2017-07-18 18:15:26 -0700 | [diff] [blame] | 111 | virtualbox__intnet: settings['vm_management_network_name'], |
| 112 | libvirt__network_name: settings['vm_management_network_name'] |
Andy Bavier | b36b84e | 2017-08-10 14:46:32 -0700 | [diff] [blame] | 113 | c.vm.network "public_network", |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 114 | adapter: 2, # The fabric interface for each node |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 115 | auto_config: false, |
Andy Bavier | b36b84e | 2017-08-10 14:46:32 -0700 | [diff] [blame] | 116 | type: "bridge", |
| 117 | dev: "leaf2", |
| 118 | ovs: true |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 119 | c.vm.provider :libvirt do |v| |
Andy Bavier | b0b5a14 | 2017-07-17 17:32:55 -0700 | [diff] [blame] | 120 | v.memory = settings['compute_vm_mem'] |
| 121 | v.cpus = settings['compute_vm_cpu'] |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 122 | 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 Bavier | b0b5a14 | 2017-07-17 17:32:55 -0700 | [diff] [blame] | 128 | c.vm.provider :virtualbox do |v, override| |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 129 | override.vm.box = "clink15/pxe" |
Andy Bavier | b0b5a14 | 2017-07-17 17:32:55 -0700 | [diff] [blame] | 130 | v.memory = settings['compute_vm_mem'] |
| 131 | v.cpus = settings['compute_vm_cpu'] |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 132 | v.gui = "true" |
| 133 | end |
| 134 | end |
| 135 | |
Andy Bavier | 35d238e | 2017-07-24 16:47:22 -0700 | [diff] [blame] | 136 | config.vm.define "compute3" do |c| |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 137 | c.vm.communicator = "none" |
Andy Bavier | 35d238e | 2017-07-24 16:47:22 -0700 | [diff] [blame] | 138 | c.vm.hostname = "compute3" |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 139 | c.vm.network "private_network", |
| 140 | adapter: 1, |
| 141 | ip: "0.0.0.0", |
| 142 | auto_config: false, |
Zack Williams | 0a7ef16 | 2017-07-18 18:15:26 -0700 | [diff] [blame] | 143 | virtualbox__intnet: settings['vm_management_network_name'], |
| 144 | libvirt__network_name: settings['vm_management_network_name'] |
Andy Bavier | b36b84e | 2017-08-10 14:46:32 -0700 | [diff] [blame] | 145 | c.vm.network "public_network", |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 146 | adapter: 2, # The fabric interface for each node |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 147 | auto_config: false, |
Andy Bavier | b36b84e | 2017-08-10 14:46:32 -0700 | [diff] [blame] | 148 | type: "bridge", |
| 149 | dev: "leaf2", |
| 150 | ovs: true |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 151 | c.vm.provider :libvirt do |v| |
Andy Bavier | b0b5a14 | 2017-07-17 17:32:55 -0700 | [diff] [blame] | 152 | v.memory = settings['compute_vm_mem'] |
| 153 | v.cpus = settings['compute_vm_cpu'] |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 154 | 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 Bavier | b0b5a14 | 2017-07-17 17:32:55 -0700 | [diff] [blame] | 160 | c.vm.provider :virtualbox do |v, override| |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 161 | override.vm.box = "clink15/pxe" |
Andy Bavier | b0b5a14 | 2017-07-17 17:32:55 -0700 | [diff] [blame] | 162 | v.memory = settings['compute_vm_mem'] |
| 163 | v.cpus = settings['compute_vm_cpu'] |
Zack Williams | ce63eb0 | 2017-02-28 10:46:22 -0700 | [diff] [blame] | 164 | v.gui = "true" |
| 165 | end |
| 166 | end |
| 167 | |
| 168 | end |
| 169 | |