github.com/rsyabuta/packer@v1.1.4-0.20180119234903-5ef0c2280f0b/Vagrantfile (about) 1 # -*- mode: ruby -*- 2 # vi: set ft=ruby : 3 4 LINUX_BASE_BOX = "bento/ubuntu-16.04" 5 FREEBSD_BASE_BOX = "jen20/FreeBSD-12.0-CURRENT" 6 7 Vagrant.configure(2) do |config| 8 # Compilation and development boxes 9 config.vm.define "linux", autostart: true, primary: true do |vmCfg| 10 vmCfg.vm.box = LINUX_BASE_BOX 11 vmCfg.vm.hostname = "linux" 12 vmCfg = configureProviders vmCfg, 13 cpus: suggestedCPUCores() 14 15 vmCfg.vm.synced_folder ".", "/vagrant", disabled: true 16 vmCfg.vm.synced_folder '.', 17 '/opt/gopath/src/github.com/hashicorp/packer' 18 19 vmCfg.vm.provision "shell", 20 privileged: true, 21 inline: 'rm -f /home/vagrant/linux.iso' 22 23 vmCfg.vm.provision "shell", 24 privileged: true, 25 path: './scripts/vagrant-linux-priv-go.sh' 26 27 vmCfg.vm.provision "shell", 28 privileged: true, 29 path: './scripts/vagrant-linux-priv-config.sh' 30 31 vmCfg.vm.provision "shell", 32 privileged: false, 33 path: './scripts/vagrant-linux-unpriv-bootstrap.sh' 34 end 35 36 config.vm.define "freebsd", autostart: false, primary: false do |vmCfg| 37 vmCfg.vm.box = FREEBSD_BASE_BOX 38 vmCfg.vm.hostname = "freebsd" 39 vmCfg = configureProviders vmCfg, 40 cpus: suggestedCPUCores() 41 42 vmCfg.vm.synced_folder ".", "/vagrant", disabled: true 43 vmCfg.vm.synced_folder '.', 44 '/opt/gopath/src/github.com/hashicorp/packer', 45 type: "nfs", 46 bsd__nfs_options: ['noatime'] 47 48 vmCfg.vm.provision "shell", 49 privileged: true, 50 path: './scripts/vagrant-freebsd-priv-config.sh' 51 52 vmCfg.vm.provision "shell", 53 privileged: false, 54 path: './scripts/vagrant-freebsd-unpriv-bootstrap.sh' 55 end 56 end 57 58 def configureProviders(vmCfg, cpus: "2", memory: "2048") 59 vmCfg.vm.provider "virtualbox" do |v| 60 v.memory = memory 61 v.cpus = cpus 62 end 63 64 ["vmware_fusion", "vmware_workstation"].each do |p| 65 vmCfg.vm.provider p do |v| 66 v.enable_vmrun_ip_lookup = false 67 v.vmx["memsize"] = memory 68 v.vmx["numvcpus"] = cpus 69 end 70 end 71 72 vmCfg.vm.provider "virtualbox" do |v| 73 v.memory = memory 74 v.cpus = cpus 75 end 76 77 return vmCfg 78 end 79 80 def suggestedCPUCores() 81 case RbConfig::CONFIG['host_os'] 82 when /darwin/ 83 Integer(`sysctl -n hw.ncpu`) / 2 84 when /linux/ 85 Integer(`cat /proc/cpuinfo | grep processor | wc -l`) / 2 86 else 87 2 88 end 89 end