]> pere.pagekite.me Git - homepage.git/blobdiff - mypapers/debconf-install/debconf-install.html
Typos.
[homepage.git] / mypapers / debconf-install / debconf-install.html
index 5732926eaef1ed12e8edc5b163b1ef2f17270d80..c62fd88c5f63adb06a2fcc98262ff4747ee621d1 100644 (file)
     <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>