"clone" an example client?

SYSTEMS Oliver Osburg osburg at osburg.org
Thu Dec 8 12:20:19 CET 2011

On 07.12.2011 17:15, Frank Lienhard wrote:
> I have an i386 client, which I installed manually and I'm now 
> wondering how to setup future clients "identical" to that with FAI
> at least to have the package selection transfered to the FAI config 
> would save a lot of work, I think

I often reconfigure my clients, too. Config Files change, and I also 
would appreciate a way to "automatically" create FAI configs from a 
running Debian Machine. But in a way, this violates the FAI philosophy 
"Do all configurations on the server".

After some thinking, one could conclude that this will never be possible 
to do 'perfectly' But I'm sure one could do nice things which could make 
a Sysadmin's life easier. Here, Machines constantly are updated. The 
following would be useful:

a) check regularly if files deployed by FAI change on a Host in a 
certain class, so the file on the FAI server needs to be updated.
b) check regularly if new packages are installed on the clients. If so 
add these packages to the package lists.
c) check regularly if packages were removed on the clients. If so, 
remove these packages from the package lists on the FAI server.
d) for all packages it needs to be checked if any configuration file is 
changed from the Debian default

I already did some versions of this, I called "fai-conf-update", 
starting with 
In my private "FAI-Lab" I have other scripts, but none of these I 
consider especially useful for other admins not working in my "Lab".

But I still think it should be possible to create a script, which can 
create FAI config files based on the differences of the configuration 
files of a running host compared to the files in the vanilla debian 

Wouldn't it be neat it we could offer "sample Debian installations" from 
a website some day? E.G. If someone figured out how to setup a special 
kind of Hardware on Debian wheezy, he could share this configs.

I know That this in some way violates the FAI philosophy but I hope that 
I made my point clear: I don't want to change this philosophy (because 
it's good) but I want to make it easier for sysadmins to deal with the 
FAI config space - Even the setup of the config space could be 
automated, I think.

But generally a good idea to start off installing clients with fai is:

a) get the list of installed packages with "dpkg -l"
b) get a list of modified config files with "dpkg-query -W 
-f='${Conffiles}\n' '*' | awk 'OFS="  "{print $2,$1}' | md5sum -c 
2>/dev/null | awk -F': ' '$2 !~ /OK/{print $1}'" or any other method. I 
yet found no way to do this in a really good way. Often important files 
are not listed.
c) use "etckeeper" or any other revision control system. If you check-in 
right after "vanilla install" and compare the ready-configured host 
later, you should get a list of the files you or the system did modify. 
Problem here: Mostly, only some of the listed files are actually 
necessary on the install-server.

If someone reading the list has a helper script roughly like this - 
please share :)

Hth & Regards, Oliver

Osburg.Systems - UNIX Solutions

More information about the linux-fai mailing list