Why I gave up on Chef.

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

Leave a Reply

Your email address will not be published. Required fields are marked *

*