One of the reasons I don’t like puppet

I spend a good 30 minutes today wondering why my ‘file’ clause wasn’t working.

Here’s what it looked like:

# Pull in rules which are GIT managed
 file { "/usr/local/zeus/zxtm/conf/rules":
 source => "puppet:///zeus/files/rules",
 owner => "root",
 group => "root",
 mode => 600,
 sourceselect => all,
 recurse => true,
 }

Now it just maybe me, but I expect to be able to use ‘zeus/files/rules’ as, you know, that’s where the files live. However as this is Puppet DSL and the ‘file’ type expects all files to live in a ‘files’ directory off the top of the module, the clause should look like:

# Pull in rules which are GIT managed
 file { "/usr/local/zeus/zxtm/conf/rules":
 source => "puppet:///zeus/rules",
 owner => "root",
 group => "root",
 mode => 600,
 sourceselect => all,
 recurse => true,
 }

It’s a small point of order but it’s things like this that really get under my skin about Puppet. Also – who the hell writes something like this in Ruby? 😉