]> pere.pagekite.me Git - homepage.git/blob - mypapers/debconf-install/debconf-install.html
More text on the slides.
[homepage.git] / mypapers / debconf-install / debconf-install.html
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2 <html>
3 <head>
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">
8 </head>
9 <body>
10
11 <h1>Automated installations in Skolelinux
12 <br>using debian-installer and base-config</h1>
13
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>
18
19 <div class="presenter">Petter Reinholdtsen
20 <br>pere@hungry.com
21 <br>Debconf3, 2003-07-20</div>
22
23 <h2>Skolelinux</h2>
24 <ul>
25 <li>Based on Debian/Woody (to get security updates)
26 <li>Simple installation
27
28 <li>Translated to several local languages
29 <li>Includes all the software needed in primary schools
30
31 <li>Preconfigured services (syslog, dns, ntp, dhcp, ssh, ldap,
32 nfs, smb, smtp, imap, ipp, http, web-proxy, ltsp and more)
33
34 <li>No license administration
35 <li>Admin friendly
36 <li>Scalable
37 </ul>
38
39 <h2>The Skolelinux architecture</h2>
40
41 <p><img src="http://developer.skolelinux.no/arkitektur/network-arch_en.jpg">
42
43 <h2>The skolelinux install</h2>
44 <ul>
45 <li>Simple (two questions and the root password)
46 <li>Automatic
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
50 config packages).
51 <li>Rewriting the config of other packages to get the services
52 preconfigured out of the box (against policy?)
53
54 </ul>
55
56 <h2>The two stages of the Debian installation</h2>
57 <h3>First stage (debian-installer)</h3>
58 <ul>
59 <li>Booting from cd/floppy/net/whatever
60 <li>Installing base system
61 <li>Making HD bootable
62 </ul>
63 <h3>Second stage stage (base-config)</h3>
64 <ul>
65 <li>Booting from HD
66 <li>Installing and configuring the non-base system
67 </ul>
68
69 <h2>The first stage (debian-installer)</h2>
70 <ul>
71 <li>Modular
72 <li>Extendible
73 <li>Using debconf to ask questions
74 <li>Can be mostly automatic
75 <li>Very Flexible
76 </ul>
77
78 <h2>debian-installer structure</h2>
79 <ul>
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
87 <li>Mount filesystems
88 <li>Install base system
89 <li>Install kernel
90 <li>Install boot loader
91 <li>Reboot
92 </ul>
93
94 <h2>debian-installer hooks</h2>
95 <ul>
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
100 <li>Partitioning
101 </ul>
102
103 <h2>The second stage (base-config)</h2>
104 <ul>
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
108 return codes.
109 <li>Partly using debconf for configuration decisions.
110 </ul>
111
112 <h2>base-config structure</h2>
113 <ul>
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
120 <li>Set up time zone
121 <li>Configure /etc/passwd, root password and local user
122 <li>Enable ppp?
123 <li>Configure APT sources
124 <li>Select packages to install
125 <li>Fetch packages
126 <li>Configure exim
127 <li>Disable ppp?
128 <li>Show "successful install" screen
129 <li>Rewrite /etc/inittab to not start base-config on next boot
130 </ul>
131
132 <h2>base-config hooks</h2>
133 <ul>
134 <li>add scripts to /usr/lib/base-config/
135 <li>update debconf database
136 </ul>
137 </ul>
138
139 <h2>Skolelinux specific code</h2>
140 <h3>First stage</h3>
141 <ul>
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
146 </ul>
147 <h3>Second stage</h3>
148 <ul>
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
154 <li>Restart kdm
155 </ul>
156
157 <h2>Some solved problems</h2>
158 <ul>
159
160 <li>Preloading debconf answers need a dummy question template
161
162 <li>Packages with insufficient install configuration support
163 get their config files rewritten using cfengine.
164
165 <li>Selecting packages to install using meta-packages.
166
167 <li>
168
169 </ul>
170
171 <h2>Conclusion</h2>
172
173 <ul>
174 <li>The current debian-installer is extendible and can do
175 automated installation, with the hooks needed by Skolelinux.
176
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.
180 </ul>
181
182 <h2>References</h2>
183
184 <ul>
185
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>
192 </ul>
193
194 <h2>Thank you very much</h2>
195
196 <h3>Questions?</h3>
197
198 <p>This presentation is available from
199 <tt>http://www.hungry.com/~pere/mypapers/debconf-install/debconf-install.html</tt>
200
201 <!--
202
203 Random notes for the introduction to debconf.
204
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.
210
211 NUUG and Skolelinux are very pleased to assist in making this
212 conference happening, and we appreciate the progress done during
213 debcamp.
214
215 Some practical details:
216
217 - ask at the
218 - remember to hand in food cupons
219
220 For the norwegian audience: NUUG prize will be handed out this fall.
221 We need nominations
222
223 For the rest of you: Keep up the good work, and good luck with the
224 conference.
225
226
227 d-i meeting:
228 - kernel module split (netcard, scsi)
229 - discover2
230 -
231
232 -->
233
234 </body>
235 </html>