[Server-devel] Server Configuration

Holger Levsen holger at layer-acht.org
Mon Jul 2 13:30:18 EDT 2007


arg, I was a bit too busy with other backlogs, but I should have looked into 
this folder a bit earlier. Sorry. 

On Wednesday 20 June 2007 04:29, John Watlington wrote:
> We need to finalize the plans for configuring the server software.
> This has two components:
> - Common configuration
> - Machine specific configuration
> The common configuration are the configuration changes to FC7
> software packages in order
> to customize them for our setup.   This is the subject of this email.
> The machine specific configuration is the method by which a stock
> school server is configured
> for a particular school.  It will reconfigure the WAN networking,
> server name, and how the server
> identifies itself to the remote monitoring system.
> Solutions for this are being considered by Scott Ananian.  He can
> report separately.
> The approach that Holger is currently building for common
> configuration is built around FAI.
> http://www.informatik.uni-koeln.de/fai/fai-guide.html/

Actually, that approach works for both "components": the beautys of FAIs class 
system and of storing the FAI config space (the classes and their scripts, 
config files, etc) in git allows the schools to maintain a branched git repo 

So we can define common classes, say XSSERVER, WEBSERVER, FOOBAR and a school 
can use more classes, like BRASIL, PORTOALLEGRE and ROOM4

> FAI allows us to perform the configuration by running post install
> scripts.

And a great bit more :) Basically FAI is divided into tasks, and each task 
performs something, like defining classes, defining variables, installing 
packages, running configuration scripts, save logfiles. There are more than 
10 tasks, though I just named the important ones for us.

Then, each system can belong to many classes. (More on how to define that, 
later). Each class can define variables, define packages to be installed or 
removed and run scripts. 

These classes have priorities, which define in which order the scripts are 
executed and which of the config files is copied. (Say you have a apache.conf 
for the WEBSERVER class and a apache.conf for the SPECIFICWEBSERVER class. 
Then, if the system belongs to WEBSERVER and SPECIFICWEBSERVER the latter is 
taken (later (defined in FAI) means higher priority), if the system only 
belongs to WEBSERVER, than that config file is taken.)

FAI basically uses two kind of scripts: shell and cfengine. But it can also 
use perl or python scripts. And if you do not know cfengine, do have a look. 
It really rocks.

FAI contains the fcopy command, which can be used in scripts, to copy 
configuration file templates based on classes. (See the above apache.conf 

And then there are hooks. hooks are class based (so a hook belongs to a class) 
and with hooks its possible to modify fai-tasks. Easy example (though not 
fitting for our usecase): the hook partition.DISKLESS is a no-op, which 
therefore skips the partitioning task if the system has the DISKLESS class 
defined. (We don't do installation with fai, so this is just a hopefully not 
confusing example.)

> The alternative approach that I had been proposing was to build rpm
> packages
> that depended on the "stock" FC7 package and included these post
> install scripts.

This will bring us into trouble with security updates (need more work) without 
any real advantages, IMHO. Or what advantages do you see?

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.laptop.org/pipermail/server-devel/attachments/20070702/0b10745c/attachment.pgp 

More information about the Server-devel mailing list