A Puppet pattern for version specific config settings

Day 29 in the #vDM30in30 Image from https://flic.kr/p/sqiJKP Let’s talk about the lifecycle of a Puppet run. The Puppet agent process collects information about the host it is running on including facts, which it passes to the server. The parser uses that system information and Puppet modules on local disk to compile a configuration for that particular host and returns it to the agent. The agent applies that configuration locally, thus affecting the local state of the host, and files the resulting report with the server, including the facts from the system Essentially, Puppet runs in an atomic fashion: Information it has is locked at the start of the run, and is not changed. At the end of the run, facts might be different, but the catalog stays the same. ...

November 29, 2016 · 3 min · Peter Souter

Dealing with /var/run in systemd unit files

Day 28 in the #vDM30in30 Image source: https://flic.kr/p/y1DUPj So previously I blogged about about how to ensure a /var/run directory exists before a systemd service starts, using the ExecStartPre steps to ensure the directory exists. ExecStartPre=-/usr/bin/mkdir /run/jmxtrans/ ExecStartPre=/usr/bin/chown -R jmxtrans:jmxtrans /run/jmxtrans/ I took the idea from a blog by Jari Turkia. However, I made the rookie mistake of not checking the comments to see if things had changed and there was a better way, since the original post was written in 2013. ...

November 28, 2016 · 2 min · Peter Souter

Sublime Plugins

Day 27 in the #vDM30in30 I started off as a Java developer, so I was used to Eclipse and Intelij, quite heavy IDE’s with lots of assistance. After moving away from Java and into Ruby, I noticed one of the other developers was using TextMate, and it seemed much nimbler and easier to get things done. However, there were a few annoying things that about Textmate at the time (circa 2012~), such as Textmate crashing when you looked at large files. At the time we had a few larger JSON fixtures (not massive, 50-100kb or so) we were using for testing. A bit of a pain. ...

November 27, 2016 · 3 min · Peter Souter

FOSDEM Survival Guide

Day 21 in the #vDM30in30 I’ve written about my trips to FOSDEM, but I thought it’d be good to have a general survival guide, as it’s a massive event and I encourage everyone to come to it at least once. So here’s my breakdown of tips: It’s super, super busy FOSDEM has no entry-free or registration process, you simply turn up. This, combined with the fact it’s the largest open-source event in Europe means that things get a little crowded sometimes. I’ve heard estimates are about 40-50k people over the two days. ...

November 21, 2016 · 5 min · Peter Souter

GUI's for a Puppet estate

Day 16 in the #vDM30in30 I actually wrote a Stack Overflow answer to this, but I thought I’d formalise and update it a bit. How do the GUI’s work? So, most Puppet GUI’s and Dashboards use reporting from PuppetDB, so as long as you have PuppetDB in your infra they will work, regardless of your Puppet version. It simply takes reports from PuppetDB and performs queries again PuppetDB for searches about information. ...

November 16, 2016 · 2 min · Peter Souter