Vagrant.configure("2") do |c| c.vm.box = "<%= config[:box] %>" c.vm.box_url = "<%= config[:box_url] %>" <% if config[:vm_hostname] %> c.vm.hostname = "<%= config[:vm_hostname] %>" <% end %> <% if config[:guest] %> c.vm.guest = <%= config[:guest] %> <% end %> <% if config[:username] %> c.ssh.username = "<%= config[:username] %>" <% end %> <% if config[:ssh_key] %> c.ssh.private_key_path = "<%= config[:ssh_key] %>" <% end %> <% Array(config[:network]).each do |opts| %> c.vm.network(:<%= opts[0] %>, <%= opts[1..-1].join(", ") %>) <% end %> c.vm.synced_folder ".", "/vagrant", disabled: true <% config[:synced_folders].each do |source, destination, options| l_source = source.gsub("%{instance_name}", instance.name) l_destination = destination.gsub("%{instance_name}", instance.name) opt = (options.nil? ? '' : ", #{options}") %> c.vm.synced_folder "<%= l_source %>", "<%= l_destination %>"<%= opt %> <% end %> c.vm.provider :<%= config[:provider] %> do |p| <% config[:customize].each do |key, value| %> <% case config[:provider] when "virtualbox" %> p.customize ["modifyvm", :id, "--<%= key %>", "<%= value %>"] <% when "rackspace" %> p.<%= key %> = "<%= value%>" <% when /^vmware_/ %> <% if key == :memory %> <% unless config[:customize].include?(:memsize) %> p.vmx["memsize"] = "<%= value %>" <% end %> <% else %> p.vmx["<%= key %>"] = "<%= value %>" <% end %> <% end %> <% end %> end end