Skip to content
a simple consumer of Puppetfiles with NO dependency resolution that only supports github references
Ruby
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
lib/librarian/puppet
spec
.gitignore
.travis.yml
Gemfile
LICENSE
README.md
Rakefile
librarian-puppet-simple.gemspec

README.md

librarian-puppet-simple

This project was created out of my frustration with dependency management in librarian-puppet, some people need external dependencies, I just need to be able to pin revisions for a collection of modules, and I found the dependency management features of librarian-puppet too heavy for my simple use case.

This project just has fewer commands, but they should be compatible with the original librarian-puppet:

Clean

Remove the directory where the modules will be installed. At the moment the supported options are:

  • --verbose display progress messages
  • --path override the default ./modules where modules will be installed
  librarian-puppet clean [--verbose] [--path]

Install

Iterates through your Puppetfile and installs git sources. At the moment the supported options are:

  • --verbose display progress messages
  • --clean remove the directory before installing modules
  • --path override the default ./modules where modules will be installed
  • --puppetfile override the default ./Puppetfile used to find the modules
  librarian-puppet install [--verbose] [--clean] [--path] [--puppetfile]

Update

Iterates through your Puppetfile and updates git sources. If a SHA-1 hash is specified in the :ref, the module will not be updated.

Supported options are:

  • `--verbose` display progress messages
  • `--path` override the default `./modules` where modules will be installed
  • `--puppetfile` override the default `./Puppetfile` used to find the modules
  •   librarian-puppet update [--verbose] [--path] [--puppetfile]
    

    Puppetfile

    The processed Puppetfile may contain two different types of modules, git and tarball. The git option accepts an optional ref parameter.

    The module names can be namespaced, but the created directory will only contain the last part of the name. For example, a module named puppetlabs/ntp will generate a directory ntp, and so will a module simply named ntp.

    Here's an example of a valid Puppetfile showcasing all valid options:

    mod "puppetlabs/ntp",
        :git => "git://github.com/puppetlabs/puppetlabs-ntp.git",
        :ref => "99bae40f225db0dd052efbf1d4078a21f0333331"
    
    mod "apache",
        :tarball => "https://forge.puppetlabs.com/puppetlabs/apache/0.6.0.tar.gz"
    

    Setting up for development and running the specs

    Just clone the repo and run the following commands:

    bundle exec install --path=vendor
    bundle exec rspec
    

    Beware that the functional tests will download files from GitHub and PuppetForge and will break if either is unavailable.

    License

    See LICENSE

    Credits

    The untar and ungzip methods came from https://gist.github.com/sinisterchipmunk/1335041

    You can’t perform that action at this time.