Allow the definition of arbitrary scripts that will run on the host before and/or after Vagrant commands.
Ensure you have downloaded and installed Vagrant from the Vagrant downloads page.
Installation is performed in the prescribed manner for Vagrant 1.1+ plugins.
$ vagrant plugin install vagrant-triggers The following Vagrantfile configuration options are added:
config.trigger.before :command, :execute => "script" config.trigger.after :command, :execute => "script" :execute => "script": the script to execute:force => true: continue even if the script fails (exits with non-zero code):stdout => true: display script output
In the following example a VirtualBox VM (not managed by Vagrant) will be tied to the machine defined in Vagrantfile, to make so that it follows its lifecycle:
Vagrant.configure("2") do |config| { :halt => "controlvm 22aed8b3-d246-40d5-8ad4-176c17552c43 acpipowerbutton", :resume => "startvm 22aed8b3-d246-40d5-8ad4-176c17552c43 --type headless", :suspend => "controlvm 22aed8b3-d246-40d5-8ad4-176c17552c43 savestate", :up => "startvm 22aed8b3-d246-40d5-8ad4-176c17552c43 --type headless" }.each do |command, trigger| config.trigger.before command, :execute => "vboxmanage #{trigger}", :stdout => true end endTo contribute, clone the repository, and use Bundler to install dependencies:
$ bundle To run the plugin's tests:
$ bundle exec rake You can now fork this repository, make your changes and send a pull request.