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 actually become a portability nightmare once you consider the number of different systems in the wild - rpm, yum, dpkg, pkgsrc etc. - and the varied commands needed to use them. You end up either hard coding commands, and sacrificing portability, or writing your own detection, lookup and invocation logic. Read on →

It might be a sign that I spend too much time online but the quicker a system gives me feedback the more useful I find it. While I love knowing my Nagios safety net has me covered when making changes sometimes waiting for that cgi to refresh can take too long, especially if I’m taking a iterative / test driven approach to the changes I’m making. For those use cases I wrote nrpe-runner. Read on →

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 at all the little niceties you continuously discover. One recent small win we had recently was bringing some apache configs files under Puppet command. When we started we had the following block of config: RewriteCond %{REMOTE_ADDR} ! RewriteCond %{REMOTE_ADDR} ! RewriteCond %{REMOTE_ADDR} ! It’s not hard to read and roughly understand what it does, but you have no real context; magic numbers keep things terse but are rarely the most helpful when in the land of a strange system. Read on →

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 introduced Puppet to quite a few companies, sysadmins and development teams over the years and a lot of the same issues, concepts and needs repeatedly crop up. By explaining how puppet works in terms of tasks and desired outcomes rather than in raw feature descriptions I hope to show some of its power and flexibility in easy to use examples in a different way to most of the existing documentation. Read on →

Hadoop is one of those technologies that seems to have forever changed the way parts of the industry work but has had no effect on my actual job. In an attempt to keep myself current for the after techtalk conversations I decided to buy Hadoop: The Definitive Guide, Second Edition by Tom White - and I’m very happy with the choice. While there are massive amounts of information online about Hadoop and the ecosystem emerging around it I still found HadoopTDG to be a useful book and worth the money (especially on the iPad as it’s a bit big for comfortable tube reading). Read on →

Over the years I’ve had the opportunity to attend a lot of different events focused on quite a few different programming languages, but none of them match the sheer enthusiasm and love of the language that you get from London PM. While there is always a contingent of LPMers at Perl conferences held further abroad the London Perl Workshop is my yearly chance to see lots of old friends, what they’ve been up to and discuss what’s coming next in our field. Read on →

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 larger scale (just over a hundred small VM nodes - you have to love EC2) and I’m still impressed. I can see how it’s going to make parts of my work flow easier, and in an attempt to learn a little more about how the plugin system works under the hood I decided to write a small agent, FileMD5er. Read on →

After working my way through JavaScript: The Good Parts I decided to put away all my misconceptions and give PHP a try. While I’m not actually looking to write any projects in the language at the moment I was interested to see how much of the PHP bashing was still based in fact and to learn what an expert in the language could show me. So I bought PHP: The Good Parts, which is a completely different book from the previous title in the series. Read on →

In the T-DOSE Zabbix talk, which I’m happy to say was both well presented and showed some interesting features, I got called out for a quote I made on Twitter (which just goes to show - you never know where what you said is going to show up and haunt you) about the relevance, and I’d say overemphasis, of the GUI to the zabbix monitoring system - and other monitoring systems in general. Read on →

Cronjobs are one of those necessary evils of any decent sized Unix setup, they provide often essential pieces of a sites data flows but are often treated as second class citizens. While I’ve already mentioned my Cron commandments I’m always looking for improvements in the rest of my cron tool set and, with Vladimir Vuksan’s cronologger, I may have found another piece of the puzzle. The concept is simple, you add a command to the front of your crontabs and it invokes your actual cron command. Read on →