<h1>Automated installations in Skolelinux
<br>using debian-installer and base-config</h1>
- <p>Nice summary</p>
+ <p>Skolelinux is a Debian-based Linux distribution with simple
+ installation and preconfigured services targeted for schools.
+ The presentation will present how the standard debian
+ installation system is customised for this purpose.</p>
+
+ <p><tt><a href="http://www.hungry.com/~pere/mypapers/debconf-install/debconf-install.html">http://www.hungry.com/~pere/mypapers/debconf-install/debconf-install.html</a></tt></p>
<div class="presenter">Petter Reinholdtsen
<br>pere@hungry.com
- <br>Debconf3, 2003-07-19</div>
+ <br>Debconf3, 2003-07-20</div>
+
+ <h2>Skolelinux</h2>
+ <ul>
+ <li>Based on Debian/Woody (to get security updates)
+ <li>Simple installation
+
+ <li>Translated to several local languages
+ <li>Includes all the software needed in primary schools
+
+ <li>Preconfigured services (syslog, dns, ntp, dhcp, ssh, ldap,
+ nfs, smb, smtp, imap, ipp, http, web-proxy, ltsp and more)
+
+ <li>No license administration
+ <li>Admin friendly
+ <li>Scalable
+ </ul>
+
+ <h2>The Skolelinux architecture</h2>
+
+ <p><img src="http://developer.skolelinux.no/arkitektur/network-arch_en.jpg">
<h2>The skolelinux install</h2>
+ <ul>
+ <li>Simple (two questions and the root password)
+ <li>Automatic
+ <li>Using debian-installer (d-i) and base-config (b-c)
+ <li>Complete (everything work out of the box)
+ <li>Very little skolelinux-specific code (two udebs and three
+ config packages).
+ <li>Rewriting the config of other packages to get the services
+ preconfigured out of the box (against policy?)
+
+ </ul>
+
+ <h2>The two stages of the Debian installation</h2>
+ <h3>First stage (debian-installer)</h3>
+ <ul>
+ <li>Booting from cd/floppy/net/whatever
+ <li>Installing base system
+ <li>Making HD bootable
+ </ul>
+ <h3>Second stage stage (base-config)</h3>
+ <ul>
+ <li>Booting from HD
+ <li>Installing and configuring the non-base system
+ </ul>
+
+ <h2>The first stage (debian-installer)</h2>
+ <ul>
+ <li>Modular
+ <li>Extendible
+ <li>Using debconf to ask questions
+ <li>Can be mostly automatic
+ <li>Very Flexible
+ </ul>
+
+ <h2>debian-installer structure</h2>
+ <ul>
+ <li>Selector for installer modules (udebs)
+ <li>Select language and region
+ <li>Autodetect hardware
+ <li>Locate APT source (CD, Net or floppy)
+ <li>Load the rest of the installer modules
+ <li>Partition hard-drive
+ <li>Make filesystems or swap
+ <li>Mount filesystems
+ <li>Install base system
+ <li>Install kernel
+ <li>Install boot loader
+ <li>Reboot
+ </ul>
+
+ <h2>debian-installer hooks</h2>
+ <ul>
+ <li>Include or exclude d-i modules
+ <li>Running script at install system boot time
+ <li>Include or excluding packages going into the HD
+ <li>Running scripts before reboot from HD
+ <li>Partitioning
+ </ul>
+
+ <h2>The second stage (base-config)</h2>
+ <ul>
+ <li>Executed from init on first boot
+ <li>Modular (reading /usr/lib/base-config)
+ <li>Able to adjust the order of the scripts on the fly using
+ return codes.
+ <li>Partly using debconf for configuration decisions.
+ </ul>
+
+ <h2>base-config structure</h2>
+ <ul>
+ <li>Generate locale if needed
+ <li>Start terminal emulator (for non-ascii installs) if needed
+ <li>Load variables based from first stage (/root/dbootstrap_settings)
+ <li>Turn off screen saver
+ <li>Show intro screen
+ <li>Set up console keyboard
+ <li>Set up time zone
+ <li>Configure /etc/passwd, root password and local user
+ <li>Enable ppp?
+ <li>Configure APT sources
+ <li>Select packages to install
+ <li>Fetch packages
+ <li>Configure exim
+ <li>Disable ppp?
+ <li>Show "successful install" screen
+ <li>Rewrite /etc/inittab to not start base-config on next boot
+ </ul>
+
+ <h2>base-config hooks</h2>
+ <ul>
+ <li>Add scripts to /usr/lib/base-config/
+ <li>Update debconf database
+ </ul>
+ </ul>
+
+ <h2>Skolelinux specific code</h2>
+ <h3>First stage</h3>
+ <ul>
+ <li>Shorter language list
+ <li>Set debconf priority limit to high to get automatic install
+ <li>Ask about profile and do automatic partitioning for this
+ profile
+ <li>Reorder d-i module order using dependencies and menu-item value
+ <li>Install extra packages into the HD
+ <li>Pass info to second stage using /root/dbootstrap_settings
+ and /etc/skolelinux/config
+ </ul>
+ <h3>Second stage</h3>
+ <ul>
+ <li>Set debconf frontend to non-interactive (most of the time)
+ <li>Preload debconf answers based on profile choice
+ <li>Automatically install packages for the given profiles
+ <li>Rewrite/replace config files based on profile and language
+ <li>Configure XFree86
+ <li>Restart servers (except kdm)
+ <li>Check installation
+ <li>Restart kdm
+ </ul>
+
+ <h2>Some solved problems</h2>
+ <ul>
+
+ <li>Preloading debconf answers need a dummy question template
+
+ <li>Packages with insufficient install configuration support
+ get their config files rewritten using cfengine.
+
+ <li>Selecting packages to install using meta-packages.
+
+ </ul>
+
+ <h2>Conclusion</h2>
+
+ <ul>
+ <li>The current debian-installer is extendible and can do
+ automated installation, with the hooks needed by Skolelinux.
+
+ <li>The current base-config is is flexible enough for
+ Skolelinux, but could use more hooks to reduce the amount of
+ Skolelinux specific code.
+ </ul>
+
+ <h2>References</h2>
+
+ <ul>
+
+ <li><a href="http://www.skolelinux.no/">Skolelinux web site</a>
+ <li><a href="http://developer.skolelinux.no/">Skolelinux
+ developers web site</a>
+ <li><a href="http://developer.skolelinux.no/arkitektur/arkitektur.html.en">The Skolelinux architeture description</a>
+ <li><a href="http://people.debian.org/~pere/debian-installer/">debian-installer web page</a>
+ <li><a href="http://people.debian.org/~pere/debian-installer/hooks.html">Available hooks in debian-installer</a>
+ </ul>
+
+ <h2>Thank you very much</h2>
- - simple
- - automatic
- - complete
-
-debian installation
- - booting from cd/floppy/net/whatever
- - making HD bootable
- - booting from hd
- - installing the rest
-
-debian-installer
- - structure
- - hooks
- -
-base-config
- - structure
- - hooks
-
-skolelinux specifict code
- first stage
- - profile
- - extra packages
- second stage
- - automatic install
- - automatic configuration
+ <h3>Questions?</h3>
</body>
</html>