Puppet-lint world writable files check
On a *nix system a world writable file is one that anyone can write to. This is often undesirable, especially in production, where who can write to certain files should be limited and enabled with...
View ArticlePuppet integration tests in (about) seven minutes
While puppet-lint and rspec-puppet (thanks to Tim Sharpe) will help ensure your Puppet code is both clean and produces what you’d expect in the compiled catalog there are times when you’ll want to go...
View ArticleSpecialising validate_re with wrapper functions in Puppet
Once your puppet code base reaches a certain size you’ll often have a number of validate_ functions testing parameters and configuration values for compliance with local rules and requirements. These...
View ArticlePuppet Lint 2.0 Upgrade
With the recentpuppet-lint 2.0 release it seemed a good time to bump the version we use at $WORK and see what’d changed. In theory it was as simple as changing the version in ourGemfile and ideally...
View ArticlePuppet Lint Plugins - 2.0 Upgrade and new repo
After the recentpuppet-lint 2.0 release and the success of our puppet-lint 2.0 upgrade at work it felt like the right moment to claw some time back and update my own (11!) puppet-lint plugins to allow...
View ArticleRemoving 'magic numbers' and times from your Puppet manifests
In a large Puppet code base you’ll eventually end up with a scattering of time based ‘magic numbers‘ such as cache expiry numbers, zone file ttls and recurring job schedules. You’ll typically find...
View ArticleAnnouncing multi_epp - Puppet function
As part of refreshing my old puppet modules I’ve started to convert some of my Puppet templates from the older ERB format to the newer, and hopefully safer,Embedded Puppet (EPP).While it’s been a...
View ArticleTesting multiple Puppet versions with TravicCI (and allowing failures)
When it comes to running automated tests of my public Puppet codeTravisCI has long been my favourite solution. It’s essentially a zero infrastructure, second pair of eyes, on all my changes. It also...
View ArticleManaging multiple puppet modules with modulesync
With the exception of children, puppies and medical compliance frameworks managing one of something is normally much easier than managing a lot of them. If you have a lot of puppet modules, and you’ll...
View ArticleStand Alone Puppet
While Puppet can be used to manage large, complex environments it’s also a useful tool at the lower end of the spectrum. Using just the puppet executable and a small inline class or two you can write...
View ArticleSimplifying File Permissions in Puppet Manifests
I’ve been a user of Puppet for about three years now and while on a recent dig in to some of my older classes it was a little embarrassing to see lots of file types used like this: file {...
View ArticleMCollective Plugin - FileMD5er
I’ve been watching the Marionette Collective for a while, and even gave it a small trial in a couple of testing environments, but this weekend was the first time I’ve experimented with it at a slightly...
View ArticlePuppet CookBook is live
Between Xmas and New Year I had some spare time to invest on a side project I’ve been looking forward to working on for quite a while. I’m pleased to announce the opening of the Puppet CookBook. I’ve...
View ArticleClarifying With Facter
While adopting a configuration management tool like Chef and Puppet will have a large, nearly immediate, effect on your work flow even after using the tools for a while you’ll still get a little smile...
View ArticleReusing Puppets Package providers
One of puppets more under-appreciated features is its ability to abstract and smooth the edges of certain operating system tasks and behaviours. Even something as trivial as installing a package can...
View ArticleFind Unpuppeted SSH Keys
It all started with one of those annoying little items on the todo list find all the unpuppeted ssh authorized_keys files on a machine and alert on them. On first impressions it was going to be quite...
View ArticlePuppet Cucumber Providers
At work we try, and sometimes even succeed, in using Test Driven Deployment so as one of my background projects I’ve been wrapping certaintools in to cucumber friendly forms. Over the last couple of...
View ArticleNagios Wrapped Puppet Runs
<tl;dr>Log nrpe-runner state changes when puppet runs to see what broke or was fixed.</tl;dr> While people most often use puppet to configure and repair their infrastructures sometimes they...
View ArticleListing Puppet Managed Files
Sometimes it’s the little niggles that annoy people the most. As my team progress in to puppet they have an annoying habit of asking very good questions; which can sometimes be a struggle to answer....
View ArticleSmarter Service Status in Puppet
While most people know you can use puppet to ensure a service is running the mechanism it uses to determine if a service is actually running is often unexplored. By default (at least up to Puppet 2.6)...
View Article