-*- mode: markdown; mode: visual-line; -*- # <%= config[:shortname].capitalize %> Puppet Module [![Puppet Forge](http://img.shields.io/puppetforge/v/<%= config[:name].gsub(/-/,"/") %>.svg)](<%= config[:forge_url] %>) [![License](http://img.shields.io/:license-<%= config[:license].gsub(/-/, '') %>-blue.svg)](LICENSE) ![Supported Platforms](http://img.shields.io/badge/platform-<%= config[:platforms].join('|') %>-lightgrey.svg) <%= config[:summary] %> Copyright (c) <%= Time.now.year %> <%= config[:author] %> <<%= config[:mail] %>> * [Online Project Page](<%= config[:project_page] %>) -- [Sources](<%= config[:source] %>) -- [Issues](<%= config[:issues_url] %>) ## Synopsis <%= config[:description] %>. This module implements the following elements: * __Puppet classes__: <% unless config[:classes].nil? %> <% config[:classes].each do |cl| %> - `<%= cl %>` <% end %> <% end %> * __Puppet definitions__: <% unless config[:definitions].nil? %> <% config[:definitions].each do |de| %> - `<%= de %>` <% end %> <% end %> All these components are configured through a set of variables you will find in [`manifests/params.pp`](manifests/params.pp). _Note_: the various operations that can be conducted from this repository are piloted from a [`Rakefile`](https://github.com/ruby/rake) and assumes you have a running [Ruby](https://www.ruby-lang.org/en/) installation. See [`doc/contributing.md`](doc/contributing.md) for more details on the steps you shall follow to have this `Rakefile` working properly. ## Dependencies See [`metadata.json`](metadata.json). In particular, this module depends on <% config[:dependencies].each do |dep| %> * [<%= dep["name"].gsub(/-/,"/") %>](https://forge.puppetlabs.com/<%= dep["name"].gsub(/-/,"/") %>) <% end %> ## Overview and Usage ### Class `<%= config[:shortname] %>` This is the main class defined in this module. It accepts the following parameters: * `$ensure`: default to 'present', can be 'absent' Use is as follows: include ' <%= config[:shortname] %>' See also [`tests/init.pp`](tests/init.pp) <% unless config[:classes].nil? %> <% config[:classes].each do |cl| %> <% next if cl == config[:shortname] %> ### Class `<%= cl %>` See [`tests/<%= cl.gsub("#{config[:shortname]}::", "").gsub(/::/, '/') %>.pp`](tests/<%= cl.gsub("#{config[:shortname]}::", "").gsub(/::/, '/') %>.pp) <% end %> <% end %> <% unless config[:definitions].nil? %> <% config[:definitions].each do |de| %> ### Definition `<%= de %>` The definition `<%= de %>` provides ... This definition accepts the following parameters: * `$ensure`: default to 'present', can be 'absent' * `$content`: specify the contents of the directive as a string * `$source`: copy a file as the content of the directive. Example: <%= de %> { 'toto': ensure => 'present', } See also [`tests/<%= de.gsub("#{config[:shortname]}::", "").gsub("#{config[:shortname]}::", "").gsub(/::/, '/') %>.pp`](tests/<%= de.gsub("#{config[:shortname]}::", "").gsub("#{config[:shortname]}::", "").gsub(/::/, '/') %>.pp) <% end %> <% end %> ## Librarian-Puppet / R10K Setup You can of course configure the <%= config[:shortname] %> module in your `Puppetfile` to make it available with [Librarian puppet](http://librarian-puppet.com/) or [r10k](https://github.com/adrienthebo/r10k) by adding the following entry: # Modules from the Puppet Forge mod "<%= config[:name] %>" or, if you prefer to work on the git version: mod "<%= config[:name] %>", :git => <%= config[:source] %>, :ref => <%= FalkorLib.config[:gitflow][:branches][:master] %> ## Issues / Feature request You can submit bug / issues / feature request using the [<%= config[:name] %> Puppet Module Tracker](<%= config[:issues_url] %>). ## Developments / Contributing to the code If you want to contribute to the code, you shall be aware of the way this module is organized. These elements are detailed on [`doc/contributing.md`](doc/contributing.md) You are more than welcome to contribute to its development by [sending a pull request](https://help.github.com/articles/using-pull-requests). ## Puppet modules tests within a Vagrant box The best way to test this module in a non-intrusive way is to rely on [Vagrant](http://www.vagrantup.com/). The `Vagrantfile` at the root of the repository pilot the provisioning various vagrant boxes available on [Vagrant cloud](https://atlas.hashicorp.com/boxes/search?utf8=%E2%9C%93&sort=&provider=virtualbox&q=svarrette) you can use to test this module. See [`doc/vagrant.md`](doc/vagrant.md) for more details.