1 <!DOCTYPE HTML PUBLIC
"-//IETF//DTD HTML//EN">
4 <link rel=
"stylesheet" href=
"../mrtg-td/slides.css" type=
"text/css">
5 <meta http-equiv=
"Content-Type" content=
"text/html; charset=iso-8859-1">
6 <meta name=
"Language" content=
"en">
7 <meta name=
"Author" content=
"Petter Reinholdtsen">
11 <h1>Automated installations in Skolelinux
12 <br>using debian-installer and base-config
</h1>
14 <p>Skolelinux is a Debian-based Linux distribution with simple
15 installation and preconfigured services targeted for schools.
16 The presentation will present how the standard debian
17 installation system is customised for this purpose.
</p>
19 <div class=
"presenter">Petter Reinholdtsen
21 <br>Debconf3,
2003-
07-
20</div>
25 <li>Based on Debian/Woody (to get security updates)
26 <li>Simple installation
28 <li>Translated to several local languages
29 <li>Includes all the software needed in primary schools
31 <li>Preconfigured services (syslog, dns, ntp, dhcp, ssh, ldap,
32 nfs, smb, smtp, imap, ipp, http, web-proxy, ltsp and more)
34 <li>No license administration
39 <h2>The Skolelinux architecture
</h2>
41 <p><img src=
"http://developer.skolelinux.no/arkitektur/network-arch_en.jpg">
43 <h2>The skolelinux install
</h2>
45 <li>Simple (two questions and the root password)
47 <li>Using debian-installer (d-i) and base-config (b-c)
48 <li>Complete (everything work out of the box)
49 <li>Very little skolelinux-specific code (two udebs and three
51 <li>Rewriting the config of other packages to get the services
52 preconfigured out of the box (against policy?)
56 <h2>The two stages of the Debian installation
</h2>
57 <h3>First stage (debian-installer)
</h3>
59 <li>Booting from cd/floppy/net/whatever
60 <li>Installing base system
61 <li>Making HD bootable
63 <h3>Second stage stage (base-config)
</h3>
66 <li>Installing and configuring the non-base system
69 <h2>The first stage (debian-installer)
</h2>
73 <li>Using debconf to ask questions
74 <li>Can be mostly automatic
78 <h2>debian-installer structure
</h2>
80 <li>Selector for installer modules (udebs)
81 <li>Select language and region
82 <li>Autodetect hardware
83 <li>Locate APT source (CD, Net or floppy)
84 <li>Load the rest of the installer modules
85 <li>Partition hard-drive
86 <li>Make filesystems or swap
88 <li>Install base system
90 <li>Install boot loader
94 <h2>debian-installer hooks
</h2>
96 <li>Include or exclude d-i modules
97 <li>Running script at install system boot time
98 <li>Include or excluding packages going into the HD
99 <li>Running scripts before reboot from HD
103 <h2>The second stage (base-config)
</h2>
105 <li>Executed from init on first boot
106 <li>Modular (reading /usr/lib/base-config)
107 <li>Able to adjust the order of the scripts on the fly using
109 <li>Partly using debconf for configuration decisions.
112 <h2>base-config structure
</h2>
114 <li>Generate locale if needed
115 <li>Start terminal emulator (for non-ascii installs) if needed
116 <li>Load variables based from first stage (/root/dbootstrap_settings)
117 <li>Turn off screen saver
118 <li>Show intro screen
119 <li>Set up console keyboard
121 <li>Configure /etc/passwd, root password and local user
123 <li>Configure APT sources
124 <li>Select packages to install
128 <li>Show "successful install" screen
129 <li>Rewrite /etc/inittab to not start base-config on next boot
132 <h2>base-config hooks
</h2>
134 <li>Add scripts to /usr/lib/base-config/
135 <li>Update debconf database
139 <h2>Skolelinux specific code
</h2>
142 <li>Ask about profile and do automatic partitioning for this
144 <li>Reorder d-i module order using dependencies and menu-item value
145 <li>Install extra packages into the HD
146 <li>Pass info to second stage using /root/dbootstrap_settings
147 and /etc/skolelinux/config
149 <h3>Second stage
</h3>
151 <li>Preload debconf answers based on profile choice
152 <li>Automatically install packages for the given profiles
153 <li>Rewrite/replace config files
154 <li>Restart servers (except kdm)
155 <li>Check installation
159 <h2>Some solved problems
</h2>
162 <li>Preloading debconf answers need a dummy question template
164 <li>Packages with insufficient install configuration support
165 get their config files rewritten using cfengine.
167 <li>Selecting packages to install using meta-packages.
174 <li>The current debian-installer is extendible and can do
175 automated installation, with the hooks needed by Skolelinux.
177 <li>The current base-config is is flexible enough for
178 Skolelinux, but could use more hooks to reduce the amount of
179 Skolelinux specific code.
186 <li><tt>http://www.student.uit.no/~pere/mypapers/debconf-install/debconf-install.html
</tt>
188 <li><a href=
"http://www.skolelinux.no/">Skolelinux web site
</a>
189 <li><a href=
"http://developer.skolelinux.no/">Skolelinux
190 developers web site
</a>
191 <li><a href=
"http://developer.skolelinux.no/arkitektur/arkitektur.html.en">The Skolelinux architeture description
</a>
192 <li><a href=
"http://people.debian.org/~pere/debian-installer/">Debian
193 installer web page
</a>
196 <h2>Thank you very much
</h2>