Re: Admin tools - idea from left field
Sorry to have missed you in SF, David. Hope we can connect next trip.
On Wed, 10 Feb 1999, David Welton wrote:
> I just wanted to toss this one out as sort of a random idea I had.
I have an idea that came from listening to the other distributions talk
about solutions, so maybe I can dump it out here. It sort of dove tails
into your idea.
First, think about the way we do the menu system.
If each package placed a "configuration code fragment" into a file like,
/usr/lib/debconfig/<package name> much like we do with menus. Then at the
end of the installation process, you run debconfig and it prompts for the
missing configuration data in the collection of files found in
/usr/lib/debconfig/*. Once you have done this for one of a class of
machines, you only need copy these files (possibly filtering out answers
that will be different on the clone machines) to all the machines you wish
to install on.
When you upgrade it will need to be the responsibility of the package to
maintain as much information as possible across changes in the package's
config snippet. That is, when the configuration of a package changes, the
resulting changes to the debconfig fragment must include all of the
configuration information found in the "old" format file. While this might
get a bit cumbersom if the needs of the package change a lot, but I don't
see why that should ever be very necessary.
What goes into these "code snippet" files is surely going to look like
what you outlined below. That is, variable assignment, and flag
declarations in a simple syntax. The package may include entries where the
value is set to a default, known, value, but might need to be changed by
the admin at some point in the future.
Does this come anywhere near close to fixing our configuration problems?
I have not quite figured out how to take the configuration information
before installation, although I have a partial solution. If you first
unpack all of the packages, the config snippets might then already be
written to the file system, (assuming that they are packaged with the rest
of the installables) allowing you to run debconfig and then the
postinstalls, but that really isn't a pre-configuation either.
However, once you have an installation, you can "plop" /usr/lib/debconfig
down in any other machine on the LAN that has a base system installed, and
the machine would be pre-configured. You would, of course, need to avoid
writing over any files that already exist within /usr/lib/debconfig, so
that the hostnames and IP addresses wouldn't revert to the machine from
which the clone was made.
> Basically, to isolate the config sections of various programs, and
> utilize Tcl, Python, Guile, or something like that as a standard
> config language, linking certain variables with the program's internal
> This way, you would have a lot of programs that could be configured in
> a similiar manner, with a 'real' programming language that would be
> more or less the same for every app. For instance, look at .muttrc:
> set folder=~/mail
> set record=+sent-mail
> set nosave_name
> Compare this with what it might look like in Tcl
> set folder "~/mail"
> set record "+sent-mail"
> set nosave_name 1
> Now, instead of writing a whole bunch of our own code, we can use a
> nice, standard language to do our config file in... This would also
> make it very easy to write configurators, because instead of having to
> recognize 132432 different, cruddy little mini-languages, you can just
> deal with one, and deal with it well.
> Obviously, this would be a large project, and might go nowhere at all.
> What do people think of the core idea, though?
> David Welton http://www.efn.org/~davidw
> Debian GNU/Linux - www.debian.org
> To UNSUBSCRIBE, email to email@example.com
> with a subject of "unsubscribe". Trouble? Contact firstname.lastname@example.org
_-_-_-_-_- Author of "The Debian Linux User's Guide" _-_-_-_-_-_-
aka Dale Scheetz Phone: 1 (850) 656-9769
Flexible Software 11000 McCrackin Road
e-mail: email@example.com Tallahassee, FL 32308
_-_-_-_-_-_- If you don't see what you want, just ask _-_-_-_-_-_-_-