Is it possible to automatically install or include puppet modules in your puppet config? I'm having to manually run puppet module install
before running puppet apply
.
-
What's in your configuration? And why are you running the commands yourself? Are you not using a puppet master server? – Izzy Jun 28 '13 at 23:43
-
No master server. I'm running a vagrant development server. It seems like I'm forced to run `puppet module install` before including a module in my config file. Can't you just use puppet config to install modules? – Mike Jun 28 '13 at 23:46
3 Answers
I'm downloading modules and storing them in a directory above my Vagrantfile
in which I've specified the path to find modules using config.vm.provision :puppet, :module_path => "modules"
and then including them in my puppet manifest.

- 146
- 2
AFAIK it's not possible with 'vanilla' Puppet, but with librarian-puppet it's possible:
Librarian-puppet is a bundler for your puppet infrastructure. You can use librarian-puppet to manage the puppet modules your infrastructure depends on. It is based on Librarian, a framework for writing bundlers, which are tools that resolve, fetch, install, and isolate a project's dependencies.
Librarian-puppet manages your modules/ directory for you based on your Puppetfile. Your Puppetfile becomes the authoritative source for what modules you require and at what version, tag or branch.
Once using Librarian-puppet you should not modify the contents of your modules directory. The individual modules' repos should be updated, tagged with a new release and the version bumped in your Puppetfile.

- 249
- 3
- 10
As for now, Vagrant
has vagrant-librarian-puppet module.
Installation:
vagrant plugin install vagrant-librarian-puppet
From readme:
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.

- 1,244
- 2
- 10
- 13