Re: Large scale installations of debian
On Thu, Jul 29, 1999 at 09:28:01AM +0200, Erik Bågfors wrote:
> Now to the large problem. All debian packages can have install and
> uninstall scripts and alot of them do. Alot of the scripts asks
> the user questions. I've always liked this for my own computers but
> this is NOT practical if you want to install 20+ mashines for example.
> The Debian-comunity should be very interested in being able to do large
> installations since this is something that will become more usual as
> more and more companis and schools will use Linux.
> Is there any good way to solve this. I've read about people doing
> tee pkg.log | dpkg -i pkg-xxx.deb and than installed the packages by doing
> dpkg -i pkg-xxx.deb < pgk.log on all the mashines that should have this
> package but I find this combersome.
> What is your thoughts about this!?
I'm working on a system for doing semi-automatic Debian installations (code
name: deblab). It's more of a hack than an elegant solution but it works
for us (tm) in our department (Debian on Sparc, Alpha and i386, different
package lists for terminal and server).
Let me lay out the basic ideas:
* Install the base system via the usual installation mediums; that's the
reason why I call it semi-automatic; I'll take a look at the shell script
Massimo Dal Zotto posted about some weeks ago to automate the first step too
* after the reboot you skip the profiles and the dselect step and log in as
* get the autoinstallation tarball via ftp or nfs
* the following installation is done in three phases which are executed by a
simple bash script:
1. configure apt and install some necessary packages (I use cfengine and
expect as installation engines)
2. invoke cfengine to do some preinstallation e.g. install /etc/exim.conf
(exim skips the postinst if it finds a valid exim.conf), /etc/gpm.conf
and similar cases
3. set the packages to install via dpkg --set-selections
4. start the installation via an expect-script which runs apt-get and answers
the questions according to its data
5. invoke cfengine to do the postinstallation (copying site-wide master
configuration files); e.g. hosts, hosts.allow, XF86Config, autofs, etc.
6. Voila, done ;-)
- I didn't scan all installation scripts for interaction; I automated the
scripts from the packages we use; potential users should give me feedback
which scripts are missing
- If it takes more than 8 minutes between two Setting up lines the expect
script assumes that we are hanging because of a user interaction which
isn't automated yet and will give the keyboard control back to the user
to answer the question; on slow machines this timeout is too short for
example when compiling the emacs calc package; after completing the user
interaction expect resumes automatic mode
- it's not general enough yet and probably very fragile
What are the configuration files ?
You need templates for some of your config files like exim.conf, most config
files will be site-wide the same. You need a reference package list,
a simple text database of the answers for the expect script and a cfengine
configuration for later maintenance.
I'll test the setup today and tomorrow in our department and could put
together a Debian package over the weekend if somebody is interested.
Note however that you should regard the package as an alpha thingie.
But perhaps we can get it in a more general usable state 'til the release
Christian Meder, email: firstname.lastname@example.org
What's the railroad to me ?
I never go to see
Where it ends.
It fills a few hollows,
And makes banks for the swallows,
It sets the sand a-blowing,
And the blackberries a-growing.
(Henry David Thoreau)