Skip to content
A Vagrant plugin to install Puppet modules using Librarian-Puppet.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
environments
lib
puppet
puppet_custom
.gitignore
CHANGELOG.md
Gemfile
LICENSE.txt
README.md
Rakefile
Vagrantfile
vagrant-librarian-puppet.gemspec

README.md

vagrant-librarian-puppet

A Vagrant plugin to install Puppet modules using Librarian-Puppet.

Requirements

  • Vagrant version 1.2.0 or greater.

Installation

vagrant plugin install vagrant-librarian-puppet

Usage

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 using the 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.

Like the puppet.module_path, 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

Development

bundle
bundle exec vagrant up

Acknowledgements

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.

You can’t perform that action at this time.