Demand a Vagrant plugin within the Vagrantfile?

vagrant

Solution

2019 Update: Vagrant now has functionality to require plugins through the `Vagrantfile` via:

Vagrant.configure("2") do |config|
  config.vagrant.plugins = "vagrant-some-plugin"

  # or as array:
  config.vagrant.plugins = ["vagrant-some-plugin", "vagrant-some-other-plugin"]

  # or as hash
  config.vagrant.plugins = {"vagrant-some-plugin" => {"version" => "1.0.0"}}
end

If Vagrant detects there are plugins not already installed it will prompt the user to install them itself:

$ vagrant up
Vagrant has detected project local plugins configured for this
project which are not installed.

  vagrant-some-plugin
Install local plugins (Y/N) [N]: y
Installing the 'vagrant-some-plugin' plugin. This can take a few minutes...
Fetching vagrant-some-plugin-1.0.0.gem
Installed the plugin 'vagrant-some-plugin (1.0.0)'!


Vagrant has completed installing local plugins for the current Vagrant
project directory. Please run the requested command again.

See https://www.vagrantup.com/docs/vagrantfile/vagrant_settings.html

Problem

Supposed execution of a `Vagrantfile` requires a specific Vagrant plugin to be installed. So, basically what you need to do is ``` $ vagrant plugin install foobar-plugin $ vagrant up ``` If you skip the first step, `vagrant up` fails. Is there an option in Vagrant to make it install the plugin automatically? In other words: Is it possible to specify within a `Vagrantfile` which plugins to install automatically before creating and booting up the machine?

Original source

Related problems