- Vagrant version 1.2.0 or greater.
vagrant plugin install vagrant-librarian-puppet
Vagrant will automatically run Librarian-Puppet before any provisioning step, so simply set up your Puppetfile as you normally would.
You may specify the subdirectory within which to run
librarian_puppet.puppetfile_dir config key. Please keep in mind
that you will need to explicitly set the
modules path in the
:puppet provisioner and this path must exist before running vagrant commands.
librarian_puppet.puppetfile_dir supports both,
a simple String or an Array of Strings. Librarian Puppet will look for Puppetfiles
in each Directory and manage each modules directory.
NOTE: Since the puppet provisioner will fail if the path provided to "puppet.modules" doesn't exist and librarian-puppet will destroy and recreate the modules directory on each run, this plugin supports a placeholder file within the modules directory that can be checked into version control and will persist between provisions.
Vagrant.configure("2") do |config| config.librarian_puppet.puppetfile_dir = "puppet" # placeholder_filename defaults to .PLACEHOLDER config.librarian_puppet.placeholder_filename = ".MYPLACEHOLDER" config.librarian_puppet.use_v1_api = '1' # Check https://github.com/voxpupuli/librarian-puppet#how-to-use config.librarian_puppet.destructive = false # Check https://github.com/voxpupuli/librarian-puppet#how-to-use config.vm.provision :puppet do |puppet| puppet.module_path = "puppet/modules" ... end end
bundle bundle exec vagrant up
Thanks to @jimmycuadra and other contributors for their work on vagrant-librarian-chef. This plugin made some slight changes to work with puppet, but largely just used their code.