ThorneLabs

Advanced Vagrantfile Configuration

• Updated May 13, 2017


Vagrantfile’s are written in Ruby, so you have the full power of Ruby at your fingertips when creating a Vagrantfile.

This post will be an ever growing list of advanced Vagrantfile configurations.

Any changes made to a Vagrantfile can be applied to a running Vagrant Box by running vagrant reload $BOX.

Disable Shared Folders

config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", disabled: true

Change the Number of CPUs Allocated

VirtualBox Provider

config.vm.provider "virtualbox" do |v|
  v.customize ["modifyvm", :id, "--cpus", "2"]
end

VMware Fusion Provider

config.vm.provider "vmware_fusion" do |v|
  v.vmx["numvcpus"] = "2"
end

Change the Amount of Memory Allocated

VirtualBox Provider

config.vm.provider "virtualbox" do |v|
  v.customize ["modifyvm", :id, "--memory", "2048"]
end

VMware Fusion Provider

config.vm.provider "vmware_fusion" do |v|
  v.vmx["memsize"] = "2048"
end

Add a Host Only Unconfigured NIC

VirtualBox Provider

config.vm.provider "virtualbox" do |v|
  v.customize ["modifyvm", :id, "--nic2", "intnet"]
end

VMware Fusion Provider

config.vm.provider "vmware_fusion" do |v|
  v.vmx["ethernet1.present"] = "TRUE"
  v.vmx["ethernet1.connectionType"] = "hostonly"
  v.vmx["ethernet1.addressType"] = "generated"
  v.vmx["ethernet1.virtualDev"] = "e1000"
end