Stand 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...
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 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 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...
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 certain tools 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...
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 ArticleSimple Puppet module grepper (prototype)
<tl;dr> Search for puppet resources values using puppet, not just plain text</tl;dr> One of the ideas that has been sitting on my todo list is having a command that lets me grep a puppet...
View ArticlePrettier Puppet with Pocco
Back in October Nan Liu announced "pocco - a puppet manifest documentation experiment" as a way of generating much nicer looking documentation for puppet classes (you can see an example and reducing...
View ArticlePuppet Camp - Ghent 2013
It's been a while since I've attended a Puppet Camp but considering the quality of the last one (organised by Patrick Debois) and the fact it was being held in the lovely city of Ghent again I thought...
View ArticleDeprecation Warnings From Puppet Resources
Over time parts of your puppet manifests will become unneeded. You might move a cronjob or a users in to a package or no longer need a service to be enabled after a given release. I've recently had...
View ArticleFacter 1.7+ and External facts
While Puppet may get all the glory, Facter, the hard working information gathering library that can, seldom gets much exciting new functionality. However with the release of Facter 1.7 Puppetlabs have...
View ArticlePuppet Augeas Shells Provider
I've recently had the need to create a handful of small file based providers in puppet and while trundling uphill against the ParsedFile provider I decided to have a look at how custom providers are...
View ArticleStop People Calling Private Puppet Classes
When writing puppet modules sometimes you need to ensure that certain classes are only used within your module itself. For example a class that implements functionality based on the local operating...
View ArticleAsserting the Existence of External Facts
Facter 1.7 introduced support for external facts, and I gave some external fact examples, but it left a couple of small issues unresolved. One of the larger ones is the subject of syncing the external...
View ArticleValidating Config Files in Puppet and Ansible
While doing some experiments with Ansible I came across a little snippet of code that I really liked - - name: manage /etc/sudoers template: src=sudoers.j2 dest=/etc/sudoers validate='visudo -cf %s'...
View Article