[Server-devel] Building the School Server

John Watlington wad at laptop.org
Fri Jun 22 02:47:41 EDT 2007


On Jun 21, 2007, at 5:25 PM, Daniel Wyatt Margo wrote:

> In particular, I've been looking at configuration management and  
> Holger's
> FAI setup. One of the issues I have been thinking about is, what is  
> the
> best way to maintain and push out configuration updates without  
> clobbering
> or discouraging local customizations? Right now, configuration is
> performed directly by FAI's scripts, which Scott and I think could  
> be hard
> to maintain and raises other questions, such as the idempotence of the
> configuration scripts. I looked into .rpm configuration packages, but
> after talking with j5 he discouraged this,

I would be interested in hearing his reasoning (perhaps rpm's lack of
merge capability ?)

> and suggested that instead, we
> might pull important configuration files directly from a version  
> control
> system, even post-deployment. Rather than having FAI run configuration
> scripts, FAI's scripts could simply fetch configuration files from  
> version
> control. It's simple, and it might even give us some neat features,  
> like
> the ability to merge, or revert if we accidentally do clobber local
> settings.

Here's the system that David Woodhouse and I just outlined (all  
errors are
mine):

We use RPM to install/upgrade packages from the OLPC stable repository.
Packages from FC7 will be tested for compatibility before being  
upgrading
the stable repository.

OLPC specific configuration files should be separate from those  
provided with
the package whenever possible (FC7 largely supports this).

OLPC specific configuration files will be provided in a separate  
directory, /olpcconf,
and linked into place in the filesystem [1].   This directory will be  
a git repository.

An RPM package containing the git repository for /olpcconf will be  
provided in the
OLPC RPM repository [2].   If RPM updates this repository, we will  
trigger [3] a git pull of
/olpcconf.  This git pull will merge any school-specific  
configuration changes with
the files provided by OLPC [4].

Part of the backup procedure for a server will be a backup of this  
local /olpcconf
repository.

Notes:
[1] An alternative is to use /etc for the git repository, but there  
is some concern that git
is slowed by the number of files in its tree, even if they aren't  
indexed.

[2] Unless there has been a change to the OLPC common config files,  
git will not be
executed.   As we want to update frequently (daily ?), this will  
minimize overhead.

[3] There is some concern that this probably shouldn't be done as a  
post-install
script for the olpcconf RPM, as problems with git merge will affect  
RPM (although
maybe that isn't a bad thing ?)

[4] Provided that the locally modified files were commited, otherwise  
git will get upset...

Comments ?  Complaints ?  Improvements ?
wad



More information about the Server-devel mailing list