Provisioners in Vagrant allow you to automatically install software, alter configurations, and more on the machine as part of the
vagrant up process.
This is useful since boxes typically aren't built perfectly for your use case. Of course, if you want to just use
vagrant ssh and install the software by hand, that works. But by using the provisioning systems built-in to Vagrant, it automates the process so that it is repeatable. Most importantly, it requires no human interaction, so you can
vagrant destroy and
vagrant up and have a fully ready-to-go work environment with a single command. Powerful.
Vagrant gives you multiple options for provisioning the machine, from simple shell scripts to more complex, industry-standard configuration management systems.
If you've never used a configuration management system before, it is recommended you start with basic shell scripts for provisioning.
You can find the full list of built-in provisioners and usage of these provisioners in the navigational area to the left.
When Provisioning Happens
Provisioning happens at certain points during the lifetime of your Vagrant environment:
On the first
vagrant upthat creates the environment, provisioning is run. If the environment was already created and the up is just resuming a machine or booting it up, they won't run unless the
--provisionflag is explicitly provided.
vagrant provisionis used on a running environment.
vagrant reload --provisionis called. The
--provisionflag must be present to force provisioning.
You can also bring up your environment and explicitly not run provisioners by specifying