templates/environment/virtualbox/_virtualbox_config.erb
config.vm.provider :virtualbox do |vb, override|
<% if params[:autoconf] -%>
host = RbConfig::CONFIG["host_os"]
if host =~ /darwin/ # OS X
# sysctl returns bytes, convert to MB
vb.memory = `sysctl -n hw.memsize`.to_i / 1024 / 1024 / 3
vb.cpus = `sysctl -n hw.ncpu`.to_i
elsif host =~ /linux/ # Linux
# meminfo returns kilobytes, convert to MB
vb.memory = `grep 'MemTotal' /proc/meminfo | sed -e 's/MemTotal://' -e 's/ kB//'`.to_i / 1024 / 2
vb.cpus = `nproc`.to_i
end
<% else %>
vb.memory = <%= params[:vm_memory] %>
vb.cpus = <%= params[:vm_cores] %>
<% end %>
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
end
config.vm.define '<%= params[:vm_name] %>' do |machine|
machine.vm.hostname = '<%= params[:server_name] %>'
<% params[:vm_ports].each_value do |port| -%>
machine.vm.network 'forwarded_port', :guest => <%= port[:guest] %>, :host => <%= port[:host] %>, :auto_correct => true
<% end %>
machine.vm.box = '<%= params[:vm_os] %>'
machine.vm.network 'private_network', ip: '<%= params[:vm_ip] %>'
machine.vm.synced_folder '../../', '<%= params[:path] %>'<%= vm_share_type_param %>
machine.vm.synced_folder '../ansible', '/ansible'<%= vm_share_type_param %>
<% if params[:vm_share_type] == 'nfs' -%>
machine.bindfs.bind_folder '/<%= params[:path] %>', '/<%= params[:path] %>'
machine.bindfs.bind_folder '/ansible', '/ansible'
<% end %>
end