A small collection of Puppet modules which I reuse alongside Vagrant when building development VM environments. I have stuck some basic annotation in the files, and I will endeavour to keep these up to date as I write more.
Feel free to fork and add your own; I'm always interested in doing less work. At the moment this is a quick and dirty set of examples that I've hacked together in preparation for a blog post.
A note on structure
Originally this was a flat repository of
.pp manifest files. However, as my experience with Puppet has grown, I've started to build up an extensive library of separated modules which allows me to parachute them in an out as I see fit.
In production, this often means using third-party modules added to your repo using git submodules (which can be a bit nasty) and then included into your base manifest. The more modern alternative is to use Librarian Puppet to handle this; giving you a better ability to include modules from PuppetLabs via git.
Summary of modules
A lightweight alternative to the heavier PuppetLabs apt module. Allows you to add PPA sources to your sources.list.
Allows you to update the hostname of your server.
Installs the basic libxml packages.
Basic class and defined type for setting up logrotate on your logs.
Parameterised class to install MySQL, set the root password, and create a vagrant user.
Install nginx, provision nginx.conf and upstream.conf, and remove the default site. Will add virtual host support soon.
Install Node from the official PPA.
A Puppet npm provider, allowing you to install packages with npm.
Install the latest PHP5 from a PPA, and use an optional parameter to define which DB bindings to install.
Installs PostGreSQL, recreates the primary cluster to use UTF-8, and adds defined types for adding roles and DBs.
Basic set up for Python. Expects you to use virtualenv and pip to provision project specific requirements.
Basic set up for Ruby and Gems. Needs to be updated to correctly depend on bundler to handle Gem provisioning.
Parameterised class to set up a user with a nice environment and profile.