|
| 1 | +# -*- mode: ruby -*- |
| 2 | +# vi: set ft=ruby : |
| 3 | +# |
| 4 | + |
| 5 | +LINUX_BASE_BOX = "bento/ubuntu-16.04" |
| 6 | + |
| 7 | +Vagrant.configure(2) do |config| |
| 8 | + config.vm.define "linux", autostart: true, primary: true do |vmCfg| |
| 9 | + vmCfg.vm.box = LINUX_BASE_BOX |
| 10 | + vmCfg.vm.hostname = "linux" |
| 11 | + vmCfg = configureProviders vmCfg, |
| 12 | + cpus: suggestedCPUCores() |
| 13 | + |
| 14 | + vmCfg = configureLinuxProvisioners(vmCfg) |
| 15 | + |
| 16 | + vmCfg.vm.synced_folder '.', |
| 17 | + '/opt/gopath/src/github.com/hashicorp/consul' |
| 18 | + |
| 19 | + vmCfg.vm.network "forwarded_port", guest: 8500, host: 8500, auto_correct: true |
| 20 | + end |
| 21 | +end |
| 22 | + |
| 23 | +def configureLinuxProvisioners(vmCfg) |
| 24 | + vmCfg.vm.provision "shell", |
| 25 | + privileged: true, |
| 26 | + inline: 'rm -f /home/vagrant/linux.iso' |
| 27 | + |
| 28 | + vmCfg.vm.provision "shell", |
| 29 | + privileged: true, |
| 30 | + path: './scripts/vagrant-linux-priv-go.sh' |
| 31 | + |
| 32 | + return vmCfg |
| 33 | +end |
| 34 | + |
| 35 | +def configureProviders(vmCfg, cpus: "2", memory: "2048") |
| 36 | + vmCfg.vm.provider "virtualbox" do |v| |
| 37 | + v.memory = memory |
| 38 | + v.cpus = cpus |
| 39 | + end |
| 40 | + |
| 41 | + ["vmware_fusion", "vmware_workstation"].each do |p| |
| 42 | + vmCfg.vm.provider p do |v| |
| 43 | + v.enable_vmrun_ip_lookup = false |
| 44 | + v.vmx["memsize"] = memory |
| 45 | + v.vmx["numvcpus"] = cpus |
| 46 | + end |
| 47 | + end |
| 48 | + |
| 49 | + vmCfg.vm.provider "virtualbox" do |v| |
| 50 | + v.memory = memory |
| 51 | + v.cpus = cpus |
| 52 | + end |
| 53 | + |
| 54 | + return vmCfg |
| 55 | +end |
| 56 | + |
| 57 | +def suggestedCPUCores() |
| 58 | + case RbConfig::CONFIG['host_os'] |
| 59 | + when /darwin/ |
| 60 | + Integer(`sysctl -n hw.ncpu`) / 2 |
| 61 | + when /linux/ |
| 62 | + Integer(`cat /proc/cpuinfo | grep processor | wc -l`) / 2 |
| 63 | + else |
| 64 | + 2 |
| 65 | + end |
| 66 | +end |
0 commit comments