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