Example(42) complete set of Puppet Modules
Puppet Ruby Other
Switch branches/tags
Nothing to show
Pull request Compare This branch is 577 commits ahead, 381 commits behind example42:production.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
DOCS @ acd7842
Example42-tools @ 7485154
activemq
apache @ 9b36b54
apt
autofs
backup
bind
clamav
cobbler
collectd
common
concat
controltier
cron
dashboard
dhcpd
dovecot
drupal
example42
exim
firewall @ 9a78b76
foo @ d4e6818
foreman
git
haproxy @ 8d13735
hardening
hosts
iptables @ 5812a21
jboss @ f5a9f55
jenkins @ 2223c1f
lighttpd
link/manifests
logrotate
lsb
mailscanner
mailx
mcollective
monit
monitor @ ebac0b5
munin
mysql @ 069f6ef
nagios
network
nfs
nginx @ 591d3aa
nrpe @ af334fa
ntp
openldap
openntpd @ 058d303
openssh @ 511ebe2
openvpn
oracle
pam
php
phpsyslogng
portmap
postfix
postgresql
powerdns
psad
psick
puppet @ 5e7b9b4
puppi @ 4952813
rails/manifests
redis @ 319b2b7
repo
resolver @ fe28994
rootmail
rpmbuild
rsync
rsyslog
samba
sarg
selinux
sendmail
snmpd
spamassassin
splunk @ c9d9e37
sqlgrey
squid
squirrelmail
ssh
ssmtp
stdlib42 @ f0bae5d
synbak
sysctl
sysklogd
syslog-ng
tftp @ c98a5e4
timezone
tomcat @ 3331400
trac
users
vagrant
varnish
virtualbox
vmware
vsftpd
wordpress @ 087d461
xinetd @ 7592b36
yum
zip
.gitignore
.gitmodules
LICENSE
README.rdoc
Rakefile

README.rdoc

EXAMPLE42 PUPPET MODULES

Released under the terms of Apache2 licence. Copyright Alessandro Franceschi / Lab42

Official website: www.example42.com

Autogenerated PuppetDocs are available at: www.example42.com/puppetdoc/modules/

Check the [DOCS] directory for more documentation.

IMPORTANT NOTICE:

The Example42 modules set is going to have some heavy modifications:

  • The “old” modules are kept on this repository under the branch 1.0. You will find only bug-fixed for the old style modules there.

  • The “nextgen” modules, still under development and research are placed in the dedicated repository: github.com/example42/puppet-modules-nextgen

    Read www.example42.com/?q=NextGen for more info about them

  • In the master branch of this repository I'm going to merge old and new modules: all the new modules are git submodules, the old ones are not submodules

The reason for this choice is that I need to test the new modules in a live environment and that, in the mid-term, this repository is going to be converted totally to the next-gen module set.

Usage of old and new modules is rather different so I reccommend extreme attention if you want to update your current local repository from the upstream master (stick to 1.0 branch to avoid surprises).

If you don't intend to keep your local copy aligned to the upstream version you won't have problems, though I reccommend to migrate to the new modules sooner or later.

INSTALLATION

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

git clone --recursive -b 1.0 git://github.com/example42/puppet-modules.git

You can get the current module set, which is in a transition phase with both 1.0 and NextGen modules with:

git clone --recursive git://github.com/example42/puppet-modules.git

UPDATE

When you want to update the modules with the upstream version (don't do this directory in a production environment!) 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:

Example42-tools/sync.sh

CONTINUOUS TESTING

NextGen modules are tested via Rspec, puppet-lint and puppet doc.

Example42 Jenkins: www.example42.com/jenkins/

Travis (NextGen only set)

DIFFERENCES BETWEEN OLD AND NEW MODULES

The new modules are compatible only with Puppet versions > 2.6 They are also compliant with the next Puppet version (Etsy), when dynamic variables scoping is going to be be discontinued.

The new modules can be used as the old ones, “set variables and include the class” 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).

The new 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.

The new modules use an alternative approach to Puppi integration.

The Puppi module is going to remain unique and compatible for both the old and the new modules, at least until the migration has been completed.

This transition is going to last some months and will hopefully be completed by the release of Puppet Etsy (somewhen in 2012?)

For any question contact me via GitHub or on www.example42.com

Alessandro Franceschi Lab42