Puppet Is Awesome Sauce

June 22nd, 2010 by kartar 5 comments »

I always think a good presentation complimented by appropriate diagrams. This diagram from Canllaith displaying her architecture a truly excellent example of a diagram.

Dear America, I am not from insertcountryhere

June 14th, 2010 by kartar 7 comments »

“IThat’s an awfully thick accent.”
“That’s an interesting/cute/incomprehensible accent. Where are you from?”
“We get a lot of English people here.”
“Do you know that short English comedian? No … but that guy English he might.”
“Let me guess you’re from England/Scotland/Ireland/New Zealand/South Africa/Denmark?”

So Americans are shite at accents. Totally shite. Ask yourself who can’t tell an American accent? Hands up – yes you at the back – okay I’ll grant the exception of occasional Canadian mix-ups. But seriously? It’s not hard – hear accent – brain clicks “American”.

Generally speaking I can tell citizens of other English-speaking countries pretty easily – I mean I sometimes can’t understand a word they are saying, hello Scotland, but I know where they are from. I’m even pretty good at picking South African from Rhodesian/Zimbabwean (white Rhodesian ex-girlfriend).

So why can’t Americans work it out? it because they are so insular and refuse to believe that anyone speaks English outside in that strange place called “not-America”? it because they are ignorant and not exposed to the same accents we are? I just don’t know but surely you can at least tell the difference between and Aussie and a Kiwi?!? /hint We’re the ones not shagging sheep…. :P

P.S. And I am not kidding about Denmark. Huh? Denmark?

P.P.S This somewhat of a sweeping generalisation I know but seriously 80% of people I meet can’t work out where I am from. It’s not isolated.

Neat Git Reference

June 14th, 2010 by kartar No comments »

Rather than you having to wade through the Git documentation the nice people at GitHub have produced a neat reference for Git.

Dear America, what happened to G?

June 8th, 2010 by kartar 5 comments »

First in a series of “America where things are different” posts. This one brought to you by the letter G.

So … in normal countries the bottom floor of any building called Ground or G. You press that button in a lift and you know when the doors open that you’re going to be at the bottom of the building, press 1 for the 1st Floor, 2 for the 2nd Floor, etc. Seems reasonable eh? Well not in America. Get in a lift here and there no G button. None. So yours truly standing in the lift in Macy’s looking at the buttons and wondering how to get to the Ground Floor. In a somewhat tentative experiment I pressed the lowest possible number, 1, and waited to see what happened. A cautious poke of my head out of the lift revealed I was the Ground Floor. Okay… So why 1? Well it seems the Ground Floor in American the 1st Floor. Weird.

Status of Puppet on Windows

June 6th, 2010 by kartar No comments »

Lots of people are aware that we’re porting to Windows. David Schmitt and Markus are doing all the hard work for it and David has just provided an update on his status.

If you’re interested in helping out checkout his repository on GitHub to see the current efforts and do some testing.

Puppet Module Repository isn’t just for modules

June 1st, 2010 by kartar No comments »

You can store more than just your modules at the Forge. :)   I just added my types and providers to my collection of modules at the new Puppet Module Forge.  I’d love to all those people maintaining types and providers, functions, and facts add theirs to the Forge also.  It’s a cool way to share your (and the site allows you to provide links back to your and ticketing system so user’s can report bugs).  In time I hope most people’s environments will consist of the core types and providers bundled with and a selection of cool generated by the community and sourced from the Forge.

Puppet Forge in beta!

May 27th, 2010 by kartar 1 comment »

The Forge AKA the Puppet Module Repository live and operational.  It’s a store of modules (and types and providers) that allows you to share your awesome and modules with others.

It also comes with the -module tool that allows you to build modules for, manage and install modules from the forge.  You can install -module via a gem:

$ sudo gem install -module

Both the site and tool are in public right now so hammer away at it and tell us what you think!

DevOpsDownUnder – What the Fuck is DevOps?

May 12th, 2010 by kartar No comments »

I’ve put my slides from DevOps DownUnder to Slideshare – What the Fuck is DevOps?.  I think the video got messed up but will post it there if it didn’t.

Introducing Scaffold

May 4th, 2010 by kartar 1 comment »

I’ve just written and released Scaffold – a very simple scaffolding templating tool. It integrates with to create a variety of configuration and objects.

You can install it via a gem currently:

$ sudo gem install scaffold

It requires and will install the templater gem as a dependency.

You can then use it like so:

* Basic configuration (creates site.pp, fileserver.conf and supporting material in the configuration directory):

$ scaffold

* Modules (it checks the module path and creates the module in the first module path it finds):

$ scaffold module module_name

* Nodes (assumes you’ve created the basic configuration and creates nodes in configuration directory):

$ scaffold node node_name

* Classes and Definitions:

$ scaffold class module_name class_name

$ scaffold define module_name define_name

* Functions:

$ scaffold function module_name function_name function_type

The function can be statement or rvalue and defaults to statement if omitted.

* Types and providers:

$ scaffold module_name type_name

I’d welcome feedback and ideas (and !) how to extend it. The idea that once we’ve got a strong working tool we’ll look to integrate the result into mainline as a provisioning and templating system.

Puppet type for HTTP Authentication

April 25th, 2010 by kartar No comments »

I have recently found myself writing a lot of HTTP Authentication password files. After looking around at the various solutions for managing these files, I wasn’t overly happy with any of them. So I sat down to try to puzzle out how hard it’d be to manage HTTP password files using a custom .

After exploring the htpasswd and htdigest commands it was clear that it wasn’t going to provide a solution: you can add and delete users from files but you can’t query a HTTP password file to determine if a user already exists in the file. This a bit of a show-stopper with . To determine what state the resource in and hence what action to take needs to be able query whether a configuration item exists or not.

I then had a quick look at some bindings/API for htpasswd provided by the htauth gem but again wasn’t happy with how it was implemented. I also tend to be unhappy with having to install a gem to allow what should be simple to function.

By chance I remembered that WEBrick supports HTTP Basic and Digest Authentication. I knew the support for authentication actions was there but was pleasantly surprised when I discovered that WEBrick could also manage HTTP password files, including adding and deleting users and importantly for writing a querying them. The guts of this functionality provided with WEBrick::HTTPAuth::Htpasswd and WEBrick::HTTPAuth::Htdigest. Naturally, like much of the rest of WEBrick, there limited documentation and no good examples but it thankfully a very simple interface. So with some trial and error I have come up with a very basic and provider that performs some of the same actions as the htpasswd and htdigest commands. You can find the resulting Puppet-httpauth code at GitHub or it’s available as a ready to download module at the Forge. It’s pretty basic thus far, for example it only creates and deletes users – it can’t check if you only want to change a password rather than create an entirely new user. I’ll perhaps have time to look at that at a later date.