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, 2013 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, 2013 at 23:46

3 Answers 3


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.


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.


As for now, Vagrant has vagrant-librarian-puppet module.


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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.