When I’m duplicating a setup to another box, I tend to want to have things done with minimal interaction from me.
For Windows Systems, you have Ghost, you simply ghost an image, and viola, you can duplicate it to as many machines as you like. You can’t do that with Linux.
But, sometimes you don’t want to copy everything either, so, when you only want to copy configuration information for everything on the system, how do you go about that?
Unfortunately, it’s not easy.
You have to fish out configuration files for each application, so to name a few:
VSFTPD: /etc/vsftpd/
Dovecot: /etc/dovecot.conf & /usr/local/etc/dovecot
HTTPD: /etc/httpd/conf.d/
MySQL: /etc/my.cnf
PHP: /etc/php.ini
.. and every other select service, like Postfix, has its configuration SOMEWHERE.
Wouldn’t it be best if all those configuration files were in a place that meant duplication simply meant “yum install ” and of course, scp -r -p /server1/config-files /server2/config-files?
Thus, setting up the same system on another system would be made simple, you’d still have to move user data, like Mail, Databases, web pages, but of course, you wouldn’t have to go fishing for config files, they’d all be in the one place, and ready to go.
Further, why can’t you simply fetch applications from the other server and keep them intact? If I patch an application, I have to get the source and patch, apply the patch, compile, make, make install (and install devel packages that might not already be installed), just to get things running on another box.
It’s a royal pain, compared to what you have with Windows, generally you team a heap of installs together, install, install, install, reboot, repeat. It’s certainly more simple compared to the method of duplicating the configuration on a linux server, which sucks down a lot of time.
So, going one better than Windows, for Linux, the idea would be to have a Configuration, Data, and Settings Transfer, where anything that’s not standard, or sourced from yum is transferred, and anything from yum, simply add to the yum list, and .. yum install it.
Maybe they could instead have a rolling log of actions taken with server software, and that can be turned into a script on another server, execute it, and viola, system duplicated. That’d make things a lot easier for many people.
Think of companies like DreamHost for example, running a lot of web servers, samba servers, ftp servers, mysql servers, mail servers, and so forth.
Jobs would be made much easier with some drop in for duplicating the configuration of one to another. I’m sure there are other solutions, maybe compiling a distro which groups all configuration together, a little different to this:
/etc/sysconfig
/etc/dovecot.conf
/usr/config
.. and so forth.
Why not have /config/ ? All config files go there. That’d be a big help, but only solve half the issue, the other, larger part is compiling and making software, because the CentOS repo has older versions of Software, like RRDTool, for example, I like 1.2+, not 1.0.50.
I’m sure a change or some system could be developped, if not already to assist duplicating system configuration!