Keeping puppet node definitions in CouchDB


If you hadn’t guessed from the previous post I’m a fan of Puppet and mcollective. When trying to automate machine provisioning, having all the nodes defined in a manually edited nodes.pp file doesn’t quite cut it.

Fortunately, puppet allows the use of another program as an external node classifier. With an external node classifier I can use anything to configure my node definitions. For example, CouchDB.

A single node definition in CouchDB might look something like this: