Example(42) complete set of Puppet Modules
Switch branches/tags
Nothing to show
Pull request Compare This branch is 597 commits ahead, 389 commits behind example42:production.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
DOCS @ 40644eb
Example42-tools @ 7485154
activemq
apache @ 0df4fa1
apt
autofs
backup
bind
clamav
cobbler
collectd
common
concat
controltier
cron
dhcpd
dovecot
drupal
example42 @ 1b0d597
exim
firewall @ 9a78b76
foo @ d4e6818
foreman @ 7fa5a3b
git
haproxy @ 367ded1
hardening
hosts
iptables @ 9ec756b
jboss @ c6aaebf
jenkins @ b599e1d
libvirt @ df0b4d0
lighttpd
link/manifests
logrotate
lsb
mailscanner
mailx
maven @ ff8c8ca
mcollective
monit
monitor @ ebac0b5
munin @ 4645816
mysql @ 135449e
nagios
network
nfs
nginx @ 591d3aa
nrpe @ af334fa
ntp @ db293d1
openldap
openntpd @ 058d303
openssh @ b977ed6
openvpn @ db84eaa
oracle
orientdb @ 0d4d4d9
pam
php @ 1353832
phpsyslogng
portmap
postfix @ 0002ad9
postgresql @ 6bed78d
powerdns
psad
psick
puppet @ b570668
puppetdashboard @ 746f256
puppetdb @ b559c84
puppi @ 6715631
rails/manifests
redis @ 319b2b7
repo
resolver @ a033912
rootmail
rpmbuild
rsync
rsyslog
samba
sarg
selinux
sendmail
snmpd
solr @ 891f71c
spamassassin
splunk @ 27bacf4
sqlgrey
squid
squirrelmail
ssh
ssmtp
stdlib42 @ f0bae5d
sudo @ 34b7672
synbak
sysctl
sysklogd
syslog-ng
tftp @ c98a5e4
timezone
tomcat @ 3331400
trac
users
vagrant
varnish
virtualbox
vmware
vsftpd @ 7d550d1
wget @ 5e67899
wordpress @ 087d461
xinetd @ 7592b36
yum @ 4c908d9
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