An example Puppet module for Boxen.
Ruby Shell Puppet
Latest commit ea874de Jan 5, 2015 @tarebyte tarebyte Merge pull request #23 from jen20/lint-failure-note
Add note to README about lint failing on first run without having changed module name
Permalink
Failed to load latest commit information.
manifests Use anchor instead of notify Apr 4, 2013
script Simplify execution, just use `bundle exec` Feb 13, 2013
spec
.gitignore updated deps and added spec/stdlib to gitignore Apr 29, 2014
.travis.yml Be explicit about the language (make travis-lint happy) Dec 26, 2014
CONTRIBUTING.md I hate widows Feb 13, 2013
Gemfile Update cardboard version to 2.1 in Gemfile Dec 26, 2013
Gemfile.lock
LICENSE Bump dat copyright date Feb 13, 2013
README.md Add note to README about lint failing on first run Dec 1, 2014

README.md

Using this Template

Bootstrap it:

mkdir -p ~/src/boxen/puppet-mynewmodule
cd ~/src/boxen/puppet-mynewmodule
git init .
git remote add template https://github.com/boxen/puppet-template.git
git fetch template
git checkout -b master template/master

Now edit the class name in manifests/init.pp and spec/classes/template_spec.rb to match the name of the module, without forgetting to rename template_spec.rb accordingly.

Now we're ready to make it our own and run a build!

script/cibuild
.bundle/binstubs/rspec-puppet-init

Note that unless you have edited the class name and then run the above scripts, puppet-lint will fail during the cibuild with an error message similar to:

--> Checking lint:
manifests/init.pp - ERROR: template not in autoload module layout on line 2

If your module has other dependencies, be sure to update spec/fixtures/Puppetfile. From then on, you can use script/cibuild to run the tests.

When you're ready to push:

git create githubusername/puppet-mynewmodule
git push origin master

The rest of the README as follows can be used as a template for your module's README.

Template Puppet Module for Boxen

An example of how we write Puppet modules for Boxen. Replace this paragraph with a short explanation of what the heck makes your module useful.

A great module has a working travis build

Build Status

Usage

boxen::example { 'best example ever':
  salutation => 'fam'
}

Required Puppet Modules

  • boxen
  • anything-else

Development

Set GITHUB_API_TOKEN in your shell with a Github oAuth Token to raise your API rate limit. You can get some work done without it, but you're less likely to encounter errors like Unable to find module 'boxen/puppet-boxen' on https://github.com. You can also set this environment variable securely on Travis to ensure your CI builds don't run into the same issue - check out Travis's docs on repository settings.

Then write some code. Run script/cibuild to test it. Check the script directory for other useful tools.