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 with automatic partitioning
143 <li>Reorder d-i module order using dependencies and menu-item value
144 <li>Install extra packages into the HD
145 <li>Pass info to second stage
147 <h3>Second stage
</h3>
149 <li>Preload debconf answers based on profile question
150 <li>Automatically install packages
151 <li>Rewrite/replace config files
152 <li>Restart servers (except kdm)
153 <li>Check installation
157 <h2>Some solved problems
</h2>
160 <li>Preloading debconf answers need a dummy question template
162 <li>Packages with insufficient install configuration support
163 get their config files rewritten using cfengine.
165 <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><a href=
"http://www.skolelinux.no/">Skolelinux web site
</a>
187 <li><a href=
"http://developer.skolelinux.no/">Skolelinux
188 developers web site
</a>
189 <li><a href=
"http://developer.skolelinux.no/arkitektur/arkitektur.html.en">The Skolelinux architeture description
</a>
190 <li><a href=
"http://people.debian.org/~pere/debian-installer/">Debian
191 installer web page
</a>
194 <h2>Thank you very much
</h2>
198 <p>This presentation is available from
199 <tt>http://www.hungry.com/~pere/mypapers/debconf-install/debconf-install.html
</tt>
203 Random notes for the introduction to debconf.
205 My name is Petter Reinholdtsen. I am president of the norwegian
206 unix user group and the system architect for skolelinux. I am also
207 the head of the group of local organisers of debcamp and debconf.
208 If you have any problems unsolvable for the help desk, please
209 contact me or Andreas and we will find a solution.
211 NUUG and Skolelinux are very pleased to assist in making this
212 conference happening, and we appreciate the progress done during
215 Some practical details:
218 - remember to hand in food cupons
220 For the norwegian audience: NUUG prize will be handed out this fall.
223 For the rest of you: Keep up the good work, and good luck with the
228 - kernel module split (netcard, scsi)