I'm looking for good ways to handle config generation. I have been rolling my own for a few years now, but I'm wondering if there is a better way and would like to get some advice from anyone who has any ideas or experience in doing this.
Here are some things I want to achieve in generating separate config files per host/service:
1. Common options shared across all configs and changed from a single place
2. Host/service specific options
3. Replace generic options with host/service specific ones
4. Some generic options may be set as non override-able
Daemon features are welcome although I'm primarily looking at a daemon independent way of creating unix config files...
Have you taken a look at cfengine (www.cfengine.org)? The research computing group where I work uses it to manage the configuration on several thousand hosts.
I've used cfengine but it's not that good... it tends to do things like append this line to a config file is this line doesn't exist in the file...
I prefer to generate configs and then have those complete configuration files pushed/pulled to a my servers.
One problem is that you cannot just generate a stand alone configuration to vet or revision control using cfengine. It's tied inside cfengine itself.