Provisioners

Vagrant supports provisioning a project’s VM through the use of provisioners, since spinning up a blank virtual machine is not very useful! The provisioners supported out-of-the-box with a Vagrant installation are: Chef Solo and Chef Server. These provisioners allow you to easily setup your virtual machine with everything it needs to run as a proper server (whether it be a web server, database server, utility server, or all those things combined).

By default, Vagrant disables provisioning. Provisioning can be enabled by selecting the provisioner using the config.vm.provisioner configuration key. The value of this key is either a symbol to use a built-in provisioner, a class which inherits from Vagrant::Provisioners::Base for a custom solution, or nil to disable it.

Which Provisioner Should I Use?

Ah, with the freedom of choice comes the complication of choosing what is right for you.