4. Provisioning
Create bootstrap.sh with all the configuration
Modify Vagrantfile
config.vm.provision :shell, path: "bootstrap.sh"
Provision
vagrant provision
5. Bootstrap as a regular user
By default script is run as root, to run as a different user do the following.
case $(id -u) in
0) # doing root tasks
sudo -u vagrant -i $0
;;
*) # doing user tasks
;;
esac
6. Configure CPU and RAM
Modify Vagrantfile
config.vm.provider "virtualbox" do |vb|
vb.customize ["modifyvm", :id, "--memory", "1024"]
vb.customize ["modifyvm", :id, "--cpuexecutioncap", "50"]
vb.customize ["modifyvm", :id, "--ioapic", "on"]
vb.customize ["modifyvm", :id, "--cpus", "4"]
end
8. Copy files to VM
Vagrant.configure("2") do |config|
# ... other configuration
config.vm.provision "file", source: "~/.gitconfig", destination: ".gitconfig"
end