Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Example(42) complete set of Puppet Modules
branch: master
Failed to load latest commit information.
Example42-documentation @ fc40709 Submodules updates
Example42-templates @ 28c6bee Updates
Example42-tools @ cad56dc Updated Example42 complementary repos
Example42-tutorials @ 8cfbacf Updated Example42 complementary repos
activemq @ b6e0726 Updated activemq v2.0.14
apache @ 023bea7 Updated apache v2.1.9
apt @ 863fa40 Updated apt v2.0.13
auth @ 5d50583 Submodules updates
autofs @ 4400fc0 Updated autofs v2.0.13
bacula @ fff9797 Major submodules sync
bind @ 9994273 Submodules updates
bluepill @ a847aec Updated submodules
bundler @ 8b30e27 Updated bundler v2.0.13
ceilometer @ 6ffdf6c Minor updates to some submodules
ceph @ f04a903 Major submodules sync
cinder @ c0948ad Minor updates to some submodules
clvm @ 9afe62f Updated clvm v2.0.13
collectd @ 1da11fc Updated collectd v3.0.6
concat @ b2c4145 Updated 3rd party modules
corosync @ 8098d70 Submodules updates
ddclient @ 4263d5c Submodules updates
dhcpd @ 73a05c7 Updated dhcpd v2.0.14
django @ 20207a4 Submodules updates
dnsmasq @ cff07e9 Major submodules sync
dovecot @ 123adae Updated dovecot v2.0.15
elasticsearch @ 59277af Updated elasticsearch v2.0.18
example42 @ f85e1b1 Updated submodules
exim @ d0b82aa Updated exim v2.0.15
exported_vars @ bfc9f36 Updated 3rd party modules
extlib @ c6f530c Updated 3rd party modules
firewall @ acbf2ee Updated firewall v2.1.3
foreman @ 2a8accb Updated foreman v2.0.13
freeradius @ 972d6b7 Updated freeradius v2.0.11
git @ 92ae180 Updated git v2.0.17
glance @ 4a4bc22 Minor updates to some submodules
graylog2 @ f94f1ad Updated graylog2 v2.0.15
haproxy @ 3cce231 Updated haproxy v2.0.16
heartbeat @ e9d2ff3 Updated heartbeat v2.0.11
hosts @ 6b4e4c7 Updated hosts v2.0.16
icinga @ 8aa6c7e Updated icinga v2.1.5
icinga2 @ 8350ac6 Updated submodules
iptables @ 0b1ec54 Updated iptables v2.1.10
java @ 21e1692 Updated submodules
jboss @ 2d713b7 Updated jboss v2.0.11
jenkins @ f8c011e Submodules updates
keystone @ ffde47a Minor updates to some submodules
kibana @ 19113d7 Major submodules sync
libvirt @ 0b1ccf4 Updated libvirt v2.0.9
lighttpd @ 770f3d5 Updated lighttpd v2.0.10
limits @ 262a9c4 Updated limits v2.0.2
logrotate @ 5b75e47 Updated logrotate v2.0.15
logstash @ 36ac444 Updated logstash v2.0.15
lsb @ 3a39d2a Submodules updates
mailx @ 5651dfc Updated mailx v2.0.13
mariadb @ 3edc32b Updated mariadb v2.0.16
maven @ 8a3a2e4 Submodules updates
mcollective @ af89c37 Updated mcollective v2.0.14
memcached @ fc4d7af Minor updates to some submodules
module_data @ 0eead7f Updated 3rd party modules
mongodb @ c67dcc4 Updated mongodb v2.0.15
monit @ cbef155 Updated monit v2.0.15
monitor @ 9486a83 Updated monitor v2.0.3
msmtp @ 75b4b42 Updated external submodules
multipath @ b696524 Updated submodules not published on the Forge
munin @ 836e936 Updated munin v2.0.12
mysql @ ea0dda8 Updated mysql v2.1.5
nagios @ 96c1afc Updated nagios v2.0.19
network @ 5c2858a Updated network v3.1.22
newrelic @ 498f367 Updated newrelic v2.0.12
nfs @ f1ed718 Updated nfs v2.0.14
nginx @ 359cece Major submodules sync
nova @ 77cad43 Minor updates to some submodules
nrpe @ 2a5e58b Updated nrpe v2.0.13
ntp @ b281529 Updated ntp v2.0.13
nut @ 58df4d3 Submodules updates
openntpd @ f06011f Updated openntpd v2.0.8
openssh @ 4bfa4b9 Updated openssh v2.0.10
openvpn @ 8fd4ca8 Updated openvpn v2.0.11
openvswitch @ 9c3e2b0 Minor updates to some submodules
orientdb @ ec6e976 Updated orientdb v2.0.8
pacemaker @ 18de882 Minor updates to some submodules
pam @ 1ff86da Updated pam v2.0.14
pentaho @ 27a7a04 Submodules updates
perl @ bdfc746 Updated perl v2.0.18
php @ aa2cfd9 Updated php v2.0.20
postfix @ 55319b8 Updated postfix v2.0.19
postgresql @ 1dbce57 Updated postgresql v2.0.13
profile @ c3b40a7 Major submodules sync
proftpd @ 8f101c9 Major submodules sync
pupmod-concat @ cd9a5b0 Submodules updates
puppet @ 06346ec Updated puppet v2.0.22
puppet-skeleton-standard42 @ 79f7189 Removed mac non printing chars
puppetdashboard @ 74ec0fe Updated puppetdashboard v2.0.13
puppetdb @ a28b5e0 Updated puppetdb v2.0.14
puppi @ ce39625 Update submodules
quagga @ 0635c92 Major submodules sync
quantum @ 0dcbbda Updated submodules not published on the Forge
rabbitmq @ db7d924 Update submodules
rclocal @ db446d9 Updated rclocal v2.0.6
redis @ 6add9e9 Updated redis v2.0.8
resolver @ d95fe58 Major submodules sync
rhcs @ c4c9259 Major submodules sync
rsync @ 4e67201 Updated rsync v2.0.12
rsyncssh @ 2c7e10b Submodules updates
rsyslog @ 87e9cb9 Updated rsyslog v2.0.13
ruby @ 8b80829 Updated ruby v2.0.15
rvm @ 886dd57 Major submodules sync
samba @ f1d714c Updated samba v2.0.14
scmserver @ eba9e8d Submodules updates
sendmail @ 0546e2f Submodules updates
snmpd @ e7d3aba Updated snmpd v2.0.14
solr @ c8e1072 Updated solr v2.0.7
splunk @ d6e9b0e Updated splunk v2.0.13
ssmtp @ 8e11519 Updated external submodules
stdlib @ c7a23b2 Updated 3rd party modules
stdmod @ 929ba74 Updated 3rd party modules
sudo @ 529784f Updated sudo v2.0.14
svn @ 2fc2453 Submodules updates
sysctl @ a4ba1d3 Updated sysctl v2.0.15
sysklogd @ 51b8547 Updated sysklogd v2.0.13
syslogng @ c9daef6 Major submodules sync
sysstat @ 861cb8f Added sysstat submodule from…
tartarus @ 5d47e48 Submodules updates
tcpwrappers @ 64d8daf Added Netmanagers tcpwrappers module
tftp @ 425734b Updated submodules
timezone @ 64d7111 Update submodules
tinc @ 7bf8d16 Updated tinc v2.0.14
tomcat @ e07e344 Updated tomcat v2.1.7
tp @ 95054ff Updated tp v0.2.1
unicorn @ 798af93 Submodules updates
user @ 1591a42 Use module
vagrant @ 77e43a6 Updated vagrant v2.0.12
varnish @ 646c4a7 Updated external submodules
vcsrepo @ b02a409 Updated 3rd party modules
vim @ cc1bda3 Updated vim v2.0.13
vsftpd @ 3df546f Updated vsftpd v2.0.14
wget @ 20348cf Submodules updates
wordpress @ 83142aa Updated wordpress v2.0.7
xinetd @ 5f177fa Updated xinetd v2.0.8
yum @ ae1fee3 Updated yum v2.0.21
zabbix_agent @ 8cc9b4a Added submodules
zip @ a9d7651 Updated zip v2.0.13
.gitignore Major submodules sync
.gitmodules Added submodules
LICENSE Updated Example42 license to Apache2 (we follow Puppet licensing) Add a Bitdeli badge to README
Rakefile No rspec tests on stdlib. For real
example42only_list.txt Major submodules sync


Released under the terms of Apache2 licence.

Copyright Alessandro Franceschi / Lab42 (and specific commits authors)

Official website:

Official Support forum: Google Groups


Example42 modules have been delevoped over the years following Puppet's evolution.

There are currently 3 generations of example42 modules:

  • "OLD" modules (Version 1.x) are no more supported or recommended. They are supposed to work also on Puppet versions before 2.6 You can give them a look using the 1.0 branch of this repo.

  • "NextGen" modules (Version 2.x) are currently the most used and recommended. They are compatible only with Puppet version 2.6 and later. You find them here as git submodules.

  • "StdMod" modules (Version 3.x) are the next evolution of Example42 modules. They are going to adhere to StdMod naming standards and be compatible with Puppet > 2.7 or 3.x They are currently under development and testing, you find them here as git submodules


You can retrieve the Example42 modules Version 1.0 ("OLD") with:

git clone --recursive -b 1.0 git://

You can get the current module set, with both NextGen and StdMod modules with:

git clone --recursive git://

You can use the Puppet Playground to test these (and other) modules on a safe Vagrant environment.

From September 2013 most of the modules are published, and regularly updated, on the Puppet Forge.

Use the Puppet module tool to query and install Example42 modules:

    puppet module search example42


When you want to update the modules with the upstream version remember that also the submodules have to be updated:

cd /etc/puppet/modules # Or the dir where you have your local git repo

git pull origin master
git submodule init
git submodule update

If you want to force an update on each submodule, even if not tracked on the main repo:

git submodule foreach git pull origin master

The above commands (excluded the first cd and included the last) are done by the script:


** DO NOT UPDATE IN PRODUCTION !!! ** To preserve freedom to reorganize modules and keep them updated this repo is going to keep track of the most current versions of the various modules. This can introduce backwards incompatibilities when a module is converted to the new major version (for example when 1.x have been completely removed or 2.x modules are converted to 3.x).


All the modules have a Modulefile where dependencies are described.

All the NextGen module require the presence in the $modulepath of the 'puppi' module, but you are not required to use Puppi (the dependency is for some extra functions prresent in the puppi module, which can be used even without including puppi in your manifests).

The StdMod modules require PuppetLabs' stdlib.

Most of the modules have a limited set of dependencies and, in some cases, you can pass a specific option (install_dependencies => false) to skip the inclusion of dependent classes from the Example42 set (in these cases you are supposed to provide the same resources in other ways).

If you enable the monitor or firewall options you have to include the relevant modules: respectively, monitor + the used monitor tool and firewall + iptables.


Currently most of the modules are tested on the following Operating systems:

  • RedHat / Centos versions 5 and 6

  • Scientific Linux version 6

  • Debian 6 and 7

  • Ubuntu 10.04 and 12.04

Some of the modules have support for:

  • OpenSuse 11 and 12

  • Suse Enterprise Linux 11

  • Solaris 11

Most of the modules are expected to work on:

  • Amazon Linux 3

  • Fedora

  • Mint

If you need support or better testing for specific operating systems and versions the best thing you can do is to provide an usable Vagrant Base box for the Example42 Puppet Playground.


Pull requests via GitHub are welcomed, please review the general style and logic of the modules in order to submit consistent patches. These modules are intended to be used anywhere without any modification of their content: if you have to change them to suit your needs either they have some bugs or missing features or you're using them in the wrong way.

Please provide patches puppet-lint compliant and, where possible, provide rspec unit tests.

If you have a module not present in this set based on the Example42 templates, feel free to provide a a link to its repo url, we can add it as submodule.


2.x modules are compatible only with Puppet versions > 2.6.

They are also compliant with Puppet 3.0, when dynamic variables scoping is going to be be discontinued.

These modules can be used with the "set variables and include the class" pattern or can be used as parametrized classes.

The main difference for the first approach is that only top scope variables can be used (so either set them in a ENC or use tools like Hiera to give them the values you need according to custom conditions).

2.x modules allow much cleaner and separated customizations so that you hardly need to modify them in order to add custom resources or redefine existing ones.

Decommissioning of classes is now done via top scope variables or arguments of the main class (absent, disable, disableboot) and not including the relevant sub-class.

Monitoring and firewalling abstraction and Puppi integration are still present, while backup abstraction has been discontinued.

3.x modules have these differences:

  • params_lookup function is removed, use Puppet 3 data bindings to data input alternatives

  • some parameters names are changed, according to stdmod namings

Modules code, issue tracking and features requests are on GitHub

For questions, suggestions and general discussion use the Example42 Puppet Modules Google group

If you need a specific module, improvements or conversion to 3.x of an existing one consider the possibility to sponsor it

Alessandro Franceschi Lab42

Bitdeli Badge

Something went wrong with that request. Please try again.