BOX = "generic/alpine310" HOME = File.dirname(__FILE__) PROJECT = File.basename(HOME) MOUNT_TYPE = ENV['MOUNT_TYPE'] || "nfs" NUM_NODES = (ENV['NUM_NODES'] || 0).to_i NODE_CPUS = (ENV['NODE_CPUS'] || 4).to_i NODE_MEMORY = (ENV['NODE_MEMORY'] || 8192).to_i NETWORK_PREFIX = ENV['NETWORK_PREFIX'] || "10.135.135" VAGRANT_PROVISION = ENV['VAGRANT_PROVISION'] || "./scripts/vagrant-provision" # --- Rules for /etc/sudoers to avoid password entry configuring NFS: # %admin ALL = (root) NOPASSWD: /usr/bin/sed -E -e * -ibak /etc/exports # %admin ALL = (root) NOPASSWD: /usr/bin/tee -a /etc/exports # %admin ALL = (root) NOPASSWD: /sbin/nfsd restart # --- May need to add terminal to System Preferences -> Security & Privacy -> Privacy -> Full Disk Access # --- Check for missing plugins required_plugins = %w( vagrant-alpine vagrant-timezone ) plugin_installed = false required_plugins.each do |plugin| unless Vagrant.has_plugin?(plugin) system "vagrant plugin install #{plugin}" plugin_installed = true end end # --- If new plugins installed, restart Vagrant process if plugin_installed === true exec "vagrant #{ARGV.join' '}" end provision = <