Hi, below you'll find my ideas/plan how to setup and maintain the computers at debconf5 - which is reusable for debconf6++ ;) In one sentence it's: we install Debian sarge (*) with d-i and/or FAI (*2) and update the configuration files and packages with FAI. Since fai 2.8 (*3), fai has a new feature called "softupdate", which is capable of running on a running system. To automatically invoke it from a d-i install, you'll have to use d-i's preseeding mechanism, otherwise you'll have to execute four commands manually: base-config base-config/late_command string apt-get -y install fai \ && wget http://$somehost/fai.conf -O /etc/fai/fai.conf && mkdir -p /fai \ && fai softupdate Since we can run "fai softupdate" every time we changed something in the fai configdir, it's very easy to update systems (and keep them uptodate) and distribute configuration changes. Also we can start working on the configdir now, develop and test the classes (and packages and configuration files) before debconf5. This is IMO the main and best feature: we can work on the setup at home||work before debconf - and we don't have to do manual works which is error-prone and boring. The configdir can be provided via nfs or cvs. Subversion needs _very_ few work, which I volunteer to do (as I will do that anyway...) - then we can host the fai-configdir on alioth. FAI's softupdate uses the exact same configdir as normal FAI, so we can easily mix fai and d-i installs. Very short explaination how FAI works: FAI uses a class concept, to determine how to install the system. To define the classes, multiple scripts are run on the installed client-system. So you can easily define classes based on hostnames or hardware, e.g. case $hostname in nb-*) echo NOTEBOOK DESKTOP ;; # two different classes nb-video-*) echo NOTEBOOK DESKTOP VIDEOSERVER ;; # three esac Classes have priorities, the priority is determined by the order they are defined. First defined = lowest priority. The priority determines the order the scripts are executed (see below) or which file-template (see below) gets copied. Each class can define packages, which are all added and installed on the host. For example, package_config/DESKTOP might contain PACKAGES install kde gnome vim emacs foo bar Then, for each class, scripts get executed (ordered by priority) - multiple scripts (bash, cfengine, perl, whatever) for each class are possible. Within the scripts you can do everything, even compiling applications (although it's much wiser to package them and install via the packages mechanism). Last but not least, there are templates for files, like files/etc/apt/sources.list/NOTEBOOK or files/etc/apt/sources.list/VIDEOSERVER. The template with the highest priority gets copied onto the system (*4). Optionally it's also possible to define postinst-scripts for each template-file. (e.g. after the apache config gets copied, the apache-config-postinst-script restarts apache.) I skipped the partitioning stuff in this explaination as well as using hooks, to name the two most important things I skipped ;) Hooks are a very powerful mechanism which basically allow to modify every task on a class basis (fai is divided into tasks, like task-define-classes, task-install-packages, ...). Please ask any questions and raise any concerns you have about fai! I dont have any other idea how to maintain such a mixed hardware and software setup like debconf5 (i386 servers and notebooks, amd64, ppc - so cloning (aks using images) wont work very well). And reinventing the wheel (using+developing custom made scripts, plus subversion and maybe cfengine) IMO doesnt make sense. I'll happily setup a basic fai_configdir for a start and give as much support as I can (besides activly working on the configdir for debconf). I have almost three years experience with FAI and Thomas Lange, the author, will also attend debconf5. I'm pretty sure, he and #fai will help as well. We should discuss (and possible decide) on this proposal at tonights irc meeting (19 utc), I'll put it on the agenda now. regards, Holger (*) Sarge plus some packages taken from somewhere else, like ldap from debian-edu plus custom made packages (e.g. for some video software) (*2) http://www.informatik.uni-koeln.de/fai (*3) it was available as seperate patches for several years before. (*4) people knowing fai might want to add, that you have to execute fcopy-commands for each template file. That is right and wrong: executing "fcopy -r /" once is sufficient - it copies all template files that are defined for the classes the host belongs to.
Attachment:
pgp__F20rObiO.pgp
Description: PGP signature