Use version control.
If there is a current version control system in place for development use that.
If there isn't one already in place, think about using git.
Why git? There's as much or as little administrative overhead as you need. You can run a central server, or not. It's up to you. SVN is a good alternative (and widely deployed) but it can be more trouble to maintain.
Regardless of your VCS, you should build a basic directory structure like this:
OPS
|
+ -- Systems
| |
| + -- Server2
| |
| + -- etc
| |
| + -- httpd
| |
| + httpd.conf
|
+ -- Services
|
+ -- httpd
|
+ -- mods
|
+ -- patches
I built something like this for tracking all of my nagios configurations. It worked perfectly.
Here's a simple example in git, let's say you just installed a web server and want to backup the config.
cd /etc/httpd/
git init
git add .
git commit -a -m "Initial baseline"
Now each time you've changed the file (EVERYTIME you change the file, no matter how trivial). Run this command:
git commit -a -m "Enabled mod_cgi and debugging for ticket 17789"
You are now keeping multiple versions of the /etc/httpd files in the /etc/httpd directory (specifically in the /etc/http/.git directory). This can get out of hand with > 10 git repos, so I'd look into starting a git server.
As an added benefit (of setting up a server), your configuration changes can now be pushed and pulled from any location. You no would no longer have to ssh into a machine to hand edit configuration files, and you can easily run diffs from anywhere. If you work in a large team, you can also track and merge changes.
Here's a few articles to get you started with git:
Git is simpler than you think.
Gitting into git
git main site