We're currently using Puppet (with the manifests and related files in SVN) to manage configuration of our *nix hosts. However, I've hit a bit of a perplexing issue.
Many of our hosts have scripts specific to the host - cron jobs, data mining scripts, scripts that dynamically generate config files, etc. I'm looking for a way to manage these scripts, specifically version them and allow a relatively simple restore solution if a host is rebuilt, while not changing the existing layout.
I can't seem to find a solution that "works" for our environment.
- We've got scripts in arbitrary locations on the filesystem. Especially given the age of some of these apps, moving locations isn't an option.
- Most of the developers have an edit-in-place workflow. It's unlikely that this can be changed.
- SVN doesn't have a way to dereference symlinks, so I can't just create one directory with links to the scripts and version that.
- The developers don't have access to Puppet repos. This needs to work within existing filesystem permissions - i.e. a user should only be able to modify the scripts they have access to, nothing else.
I guess the easiest way to explain what I'm looking for is what I wanted but doesn't exist:
- SVN that handles symlinks (i.e. symlink all configs into a directory, then work as normal and have them versioned)
- An easy way for SVN to manage a given list of paths or directories on a host, but leave everything else untouched.
Any suggestions?