Configuration file and auxiliary packages
We run a network of 300+ debian servers and desktops with a few Mac OS X
clients thrown in for good measure. Having hundreds of machines means
that there's usually a lot of installing and upgrading going on.
I'm mostly happy with the dpkg system, but there are a couple of things
that have been bothering me for a while, and I'm wondering if anyone has
come up with satisfactory solutions to the following issues, which
basically boil down to automated installs with site-specific configuration
and auxiliary files.
For many packages we have site-specific configuration files we want set up
on all the machines, and with this many machines we don't want to be
editing configuration files by hand on every machine, for every new
install of a package. The solution we've come up with is to have a
package whose preinstall script simply copies the correct configuration
files to the system *before* the packages which use these configuration
files get installed. Obviously this is not optimal, since, for example,
it's already happened several times that a machine has gone out when
someone accidentally forgot to run the "conform" package, and all the
configuration files are wrong.
A less easily solved problem has to do with auxiliary files. We are heavy
TeX users, and consequently have various TeX gadgets that are not packaged
by Debian. OK, so we have our own tex-utm package containing these
things. What do you do, though, if you want to actually replace a
file from, say, the tetex package with one you've customized yourself?
The package system breaks down at this point, since the local and debian
packages will conflict. There are ways to get around this (forced
installs, etc.) but these complicate package installation considerably.
The optimal scenario would be to have some kind of mechanism which would
automatically allow for an adjunct configuration/auxiliary file package
to be installed with the parent package on request.
For example (and I'm obviously just making this up)
apt-get install tetex-base
would work as always.
apt-get install --adjunct tetex-utm tetex-base
would install tetex-base along with a local package containing site
customized configuration files, additional stuff, and even customized
replacements for specific package components.
And of course the latter installation method would assume no user
intervention; i.e. the install would be completely automatic with no
debconf questions regardless of how debconf has been configured, allowing
for fully automated remote installs.
Since a mechanism such as the one described above currently is not part of
the dpkg system, I wonder how other people handle automation and
site-specific configuration file issues?