The header comments to a shell script after spending an afternoon with Chef…
# Why did I write this as a bash script, # ... instead of using chef, puppet or even cfengine? # # Because my requirements are small and well-understood, # and because, frankly, as the fable goes: # # Everything that humans do can be replaced with a shell script. # # Chef, at first glance, seems to be an exercise in metaphors: # "cookbooks", "recipes" which are simply collections of # macros for shell commands, which are already well-understood. # # The simple act of creating a user in Chef # requires a plugin; the plugin requires a librarian, # etc. I can invoke "adduser" in a single shell script line, # just like a human admin would at a command prompt. # # System administrators and their machines # are the "audience" of system automation, and both understand "shell": # Shell is the lingua-franca of sys-adminstery. # # Chef, on the other hand, is not readable those who are not # Chef literate. # # I find it terribly annoying when a blog post: # "How to setup XYZ", turns out to be a long narrative # with punctuated shell commands -- The whole thing could # have been a shell script with the *narrative* as comments, # so.... # # Read the comments like a blog or read the code as if you were typing it. # # ... or use this as an executable specification. # # -- kurt 2012/12/20