Skip to content

voxpupuli/vagrant-librarian-puppet

Repository files navigation

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.

About

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

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published