[CentOS] howto transfer all configuration between 2 remote dedicated servers?

Sat Nov 22 18:19:53 UTC 2008
Les Mikesell <lesmikesell at gmail.com>

Dag Wieers wrote:
> 
>> But my real question is: How can I get a list of files in the whole
>> filesystem that were added or modified compared to all the files that 
>> come
>> from rpms?
>> Is there a script for doing such a thing?
> 
> You may be interested in a tool I wrote some time ago that makes a 
> hardware and software snapshot of a system, including the latent 
> configuration in memory (like routing information or firewall rules).
> 
> It creates the snapshots in single compressed text files periodically 
> (hourly, daily, weekly, monthly from cron) that can be diffed. And it 
> allows to send out diffs to one or more email-addresses if configured to 
> do so.
> 
> It was written with multiple use cases in mind:
> 
>  - compare identical systems (eg. nodes in a cluster, or when migrating
>    servers)
> 
>  - mail changes to a group of co-maintaining sysadmins (so configuration
>    changes are communicated and if needed acted upon)
> 
>  - backing up a complete system's HW/SW configuration and making diffs
>    with past configurations for troubleshooting problems
> 
>  - taking system configurations with you (as a consultant or support
>    organisation it is nice to follow-up on system changes made
>    by the customer)
> 
> The tool is called dconf. You can find it in RPMforge.
> 
> The tool is as good as its configuration. The default configuration 
> already contains a lot for RHEL/CentOS, but it could use more people 
> defining more tools/configuration file. And I am open for improving the 
> tool beyond what it does now.
> 
> Feedback appreciated,

What I've always wanted is a tool that would manage a group of machine 
configurations as branches in subversion so the tool itself wouldn't 
need any diffing capability and could be wrapped by viewvc for web 
browsing, mesh nicely with router and other text base config management, 
etc.   By 'configurations', on RPM based machines, I'd want the package 
list exported in a form that yum or kickstart could use to re-create the 
set (and I suppose to get this right you also have to build a local 
repository containing all of them because rpm/yum  are too dumb to know 
where they came from, given multiple repositories), and copies of all 
the files in /etc/ and other optional places that are not exactly as 
installed from an RPM.

Is such a thing feasible, and if you can get that far, can it become a 
'configuration factory' where you'd copy the starting config close to 
what you want to a new branch, edit a few files for the needed changes 
to produce a new machine, commit them, and then have a tool build that 
machine or a disk image of it?   What I'm after is something that will 
let me make on-the-fly changes to any running machine, but pull those 
changes back to a central management tool in a way that makes it easy to 
see differences across time or between similar machines, and to use the 
current setup of any machine as the starting point for a new one.

Most of the tools I've seen so far involve their own abstractions to 
describe configurations and require them to be made at the central 
management tool.  That's not what I want.  I want to do configurations 
using the native setup on one or more machines whether or not the 
management tool has an abstraction for it and have a way to use that 
going forward and to track differences without any intermediate 
abstractions.  I suppose in a way the version control's branch/rev/tag 
mechanism becomes an abstraction for the whole machine state at a point 
in time.

-- 
   Les Mikesell
     lesmikesell at gmail.com