Slinging Puppet code on Windows

(My) Tools of the Trade If you spend any significant amount of time writing Puppet modules or manifests and adding YAML config data for Hiera, you're going to want some linting and validation tools in your arsenal. Here's mine: The Base Software Atom - A great editor from the people at Github. Very similar to Sublime in terms of look and feel and supports most of the same features out of the box. Highly extensible with a great community behind it. Ruby for Windows, which includes support for RubyGems. Node.js for Windows. Atom Packages The atom-alignment package for Atom. Good for getting all…

Read more »

When is a Fact not a Fact?

When it's sorta wrong. That's when. The :ipaddress fact is one of a bunch of core facts that Facter provides by default. The Facter documentation states that, for a Windows host, this fact is populated according to the following: On Windows, it attempts to use the socket library and resolve the machine’s hostname via DNS. On LDAP based hosts it tries to use either the win32/resolv library to resolve the hostname to an IP address, or on Unix, it uses the resolv library. As a fall back for undefined systems, it tries to run the “host” command to resolve the machine’s hostname using the …

Read more »

Azure PaaS Endpoint ACLs Part 1 - Overview

Azure PaaS endpoint ACLs were recently announced to make securing Cloud Services containing Web and Worker Roles easier; prior to this you had to use firewall rules on the Windows VMs themselves, which needed to be created using a startup task and a bit of scripting to invoke netsh or similar. This mixing of config and code meant that if you needed to change your firewall rules, you had to change the config scripts in your source repo and re-deploy. The management of the endpoints has now been hoisted out of the VM world and can be configured on the Cloud Service itself, so the traffic is filt…

Read more »

Backing up Site Content from an Azure WebJob

Being from an Ops background, I am generally predisposed to worry about keeping regular backups of stuff. So, before I even started writing this blog, I wanted to make sure I wouldn't lose any of the blog posts through a failure of the site - or more likely an error on my part. The site itself, I wasn't too bothered about; I have it in my Git repo - I can just re-deploy it. However, the SQLite database that sits behind the site is explicitly excluded from source control so that it doesn't get overwritten with every deploy. I wanted some way of taking a regular backup of the ghost.db file and p…

Read more »

Hello, World.

So I started a blog. This may not last. You might not read it anyway. Actually, if you're not reading this right now, let me know why and I'll try to fix it. DevOps. Some people hate the word. Personally I find it encapsulates what I've been trying to do with my career for a long time - bridge that gap between writing software and deploying software (and keeping it running). And that in turn, requires sufficient coding knowhow to troubleshoot issues after deployment, automate tasks, monitor production systems and so on - and do it elegantly. Make it maintainable. Use version control. Write reu…

Read more »