Zsolt Haraszti | 3d16353 | 2016-09-08 15:57:32 -0700 | [diff] [blame] | 1 | # -*- mode: ruby -*- |
| 2 | # vi: set ft=ruby : |
| 3 | |
Sergio Slobodrian | bf77c86 | 2017-06-08 13:24:27 -0400 | [diff] [blame] | 4 | require 'yaml' |
| 5 | |
David K. Bainbridge | a2a46ae | 2017-10-24 14:05:33 -0700 | [diff] [blame] | 6 | if ENV['VAGRANT_SETTINGS'] and ENV['VAGRANT_SETTINGS'] != '' |
| 7 | settings_file = ENV['VAGRANT_SETTINGS'] |
| 8 | else |
| 9 | settings_file = 'settings.vagrant.yaml' |
| 10 | end |
| 11 | puts("Loading vagrant settings from " + settings_file) |
| 12 | settings = YAML.load_file settings_file |
Sergio Slobodrian | bf77c86 | 2017-06-08 13:24:27 -0400 | [diff] [blame] | 13 | |
Zsolt Haraszti | 3d16353 | 2016-09-08 15:57:32 -0700 | [diff] [blame] | 14 | Vagrant.configure(2) do |config| |
| 15 | |
Sergio Slobodrian | 2f1a3f8 | 2017-05-31 10:35:00 -0400 | [diff] [blame] | 16 | if /cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM |
| 17 | puts("Configuring for windows") |
alshabib | eef9b13 | 2017-02-02 17:46:51 -0800 | [diff] [blame] | 18 | config.vm.synced_folder "../..", "/cord", mount_options: ["dmode=700,fmode=600"] |
Sergio Slobodrian | 2f1a3f8 | 2017-05-31 10:35:00 -0400 | [diff] [blame] | 19 | Box = "ubuntu/xenial64" |
| 20 | Provider = "virtualbox" |
| 21 | elsif RUBY_PLATFORM =~ /linux/ |
| 22 | puts("Configuring for linux") |
Sergio Slobodrian | bf77c86 | 2017-06-08 13:24:27 -0400 | [diff] [blame] | 23 | if settings['vProvider'] == "virtualbox" |
| 24 | puts("Using the virtualbox configuration"); |
| 25 | config.vm.synced_folder "../..", "/cord" |
| 26 | Box = "ubuntu/xenial64" |
| 27 | Provider = "virtualbox" |
khenaidoo | 079a776 | 2017-10-26 21:42:05 -0400 | [diff] [blame^] | 28 | config.disksize.size = '50GB' |
Sergio Slobodrian | bf77c86 | 2017-06-08 13:24:27 -0400 | [diff] [blame] | 29 | else |
| 30 | puts("Using the QEMU/KVM configuration"); |
David K. Bainbridge | a2a46ae | 2017-10-24 14:05:33 -0700 | [diff] [blame] | 31 | Box = "elastic/ubuntu-16.04-x86_64" |
Sergio Slobodrian | bf77c86 | 2017-06-08 13:24:27 -0400 | [diff] [blame] | 32 | Provider = "libvirt" |
Sergio Slobodrian | 36e1655 | 2017-06-19 11:00:45 -0400 | [diff] [blame] | 33 | if settings['testMode'] == "true" or settings['installMode'] == "true" |
Sergio Slobodrian | 7c48362 | 2017-06-13 15:51:34 -0400 | [diff] [blame] | 34 | config.vm.synced_folder ".", "/vagrant", disabled: true |
Sergio Slobodrian | 36e1655 | 2017-06-19 11:00:45 -0400 | [diff] [blame] | 35 | config.vm.synced_folder "../..", "/cord", type: "rsync", rsync__exclude: [".git", "venv-linux", "install/volthaInstaller", "install/volthaInstaller-2"], rsync__args: ["--verbose", "--archive", "--delete", "-z", "--links"] |
Sergio Slobodrian | 7c48362 | 2017-06-13 15:51:34 -0400 | [diff] [blame] | 36 | else |
David K. Bainbridge | a2a46ae | 2017-10-24 14:05:33 -0700 | [diff] [blame] | 37 | config.vm.synced_folder ".", "/vagrant", rsync__exclude: [".git", "venv-linux", "install/volthaInstaller", "install/volthaInstaller-2"], rsync__args: ["--verbose", "--archive", "--delete", "-z", "--links"] |
| 38 | config.vm.synced_folder "../..", "/cord", type: "nfs", rsync__exclude: [".git", "venv-linux", "install/volthaInstaller", "install/volthaInstaller-2"], rsync__args: ["--verbose", "--archive", "--delete", "-z", "--links"] |
Sergio Slobodrian | 7c48362 | 2017-06-13 15:51:34 -0400 | [diff] [blame] | 39 | end |
Sergio Slobodrian | bf77c86 | 2017-06-08 13:24:27 -0400 | [diff] [blame] | 40 | end |
Zsolt Haraszti | 3d16353 | 2016-09-08 15:57:32 -0700 | [diff] [blame] | 41 | else |
Sergio Slobodrian | 2f1a3f8 | 2017-05-31 10:35:00 -0400 | [diff] [blame] | 42 | puts("Configuring for other") |
alshabib | eef9b13 | 2017-02-02 17:46:51 -0800 | [diff] [blame] | 43 | config.vm.synced_folder "../..", "/cord" |
Sergio Slobodrian | 2f1a3f8 | 2017-05-31 10:35:00 -0400 | [diff] [blame] | 44 | Box = "ubuntu/xenial64" |
| 45 | Provider = "virtualbox" |
khenaidoo | 079a776 | 2017-10-26 21:42:05 -0400 | [diff] [blame^] | 46 | config.disksize.size = '50GB' |
Zsolt Haraszti | 3d16353 | 2016-09-08 15:57:32 -0700 | [diff] [blame] | 47 | end |
| 48 | |
Sergio Slobodrian | 7c48362 | 2017-06-13 15:51:34 -0400 | [diff] [blame] | 49 | config.vm.define "#{settings['server_name']}" do |d| |
Zsolt Haraszti | 3d16353 | 2016-09-08 15:57:32 -0700 | [diff] [blame] | 50 | d.ssh.forward_agent = true |
Sergio Slobodrian | 2f1a3f8 | 2017-05-31 10:35:00 -0400 | [diff] [blame] | 51 | d.vm.box = Box |
khenaidoo | 3a7a4e5 | 2017-07-14 15:31:46 -0400 | [diff] [blame] | 52 | if Box == "ubuntu/xenial64" |
| 53 | d.vm.box_version = "20170207.0.0" |
| 54 | end |
Sergio Slobodrian | 7c48362 | 2017-06-13 15:51:34 -0400 | [diff] [blame] | 55 | d.vm.hostname = "#{settings['server_name']}" |
Zsolt Haraszti | 3d16353 | 2016-09-08 15:57:32 -0700 | [diff] [blame] | 56 | d.vm.network "private_network", ip: "10.100.198.220" |
| 57 | d.vm.provision :shell, path: "ansible/scripts/bootstrap_ansible.sh" |
alshabib | eef9b13 | 2017-02-02 17:46:51 -0800 | [diff] [blame] | 58 | d.vm.provision :shell, inline: "PYTHONUNBUFFERED=1 ansible-playbook /cord/incubator/voltha/ansible/voltha.yml -c local" |
| 59 | d.vm.provision :shell, inline: "cd /cord/incubator/voltha && source env.sh && make install-protoc && chmod 777 /tmp/fluentd" |
Sergio Slobodrian | 2f1a3f8 | 2017-05-31 10:35:00 -0400 | [diff] [blame] | 60 | d.vm.provider Provider do |v| |
Zsolt Haraszti | 9b485fb | 2016-12-26 23:11:15 -0800 | [diff] [blame] | 61 | v.memory = 6144 |
Sergio Slobodrian | cab0a39 | 2017-07-13 08:42:10 -0400 | [diff] [blame] | 62 | v.cpus = 4 |
Sergio Slobodrian | fb89efa | 2017-08-02 14:16:14 -0400 | [diff] [blame] | 63 | if settings['vProvider'] == "KVM" |
| 64 | v.cpu_mode = 'host-passthrough' |
| 65 | v.cpu_fallback = 'allow' |
| 66 | end |
Zsolt Haraszti | 3d16353 | 2016-09-08 15:57:32 -0700 | [diff] [blame] | 67 | end |
| 68 | end |
| 69 | |
| 70 | if Vagrant.has_plugin?("vagrant-cachier") |
| 71 | config.cache.scope = :box |
| 72 | end |
| 73 | |
| 74 | end |