Summary

Develop a server-oriented frontend for oem-config, and some additional configuration modules.

Release Note

oem-config can now be used by hardware vendors to ship their servers with Ubuntu pre-installed, thanks to a text-based interface that is now available at first boot. Additionally, oem-config can now also be used by virtual appliances to define base parameters of the appliance during the user's first login.

Rationale

OEMs willing to ship servers with Ubuntu pre-installed are blocked by the fact that oem-config currently only provides a graphical user interface. We need to develop a frontend usable from a text console, and adjust the set of available configuration pages to include ones suitable for servers.

In parallel, people building virtual appliances need a way to offer their users a way to perform the base configuration of their appliance upon first login, requiring more extensibility than is currently available.

Use Cases

Design

We will add a new frontend to oem-config. Other oem-config frontends intercept the debconf protocol and use it to display hand-designed pages in a graphical user interface. This new frontend will not do this; instead, it will simply arrange for the questions to be asked via debconf, as if they had been asked as part of package configuration. This will give a unified feel, as the same style of interface is used both in the server installer and in later package installation. [done, oem-config 1.54.2]

We will arrange for this frontend to be invoked before the first login if the oem-config-prepare program has been run, in the same way as is done for other frontends. [done, oem-config 1.54.2]

We will modify oem-config's frontends (including the new debconf frontend) to fetch the set of pages to display from debconf. This matches our configuration framework for all other installer components, and is easy for a system integrator to set. [done, oem-config 1.54.5]

We will add netcfg and tasksel wrapper components to oem-config. [netcfg done, oem-config 1.54.5; tasksel done, oem-config 1.54.6]

We will document the process for adding new installation steps to oem-config, and make simplifications as required so that this documentation is not excessively involved. In particular, we expect to make it possible to implement a simple page without complex debconf protocol programming when it falls into the pattern of "ask a small number of simple questions and store the results" without attempting to wrap another existing program.

Implementation

In order to implement a working debconf frontend, we must fix bug 28890 so that any timezone can be selected even with a plain debconf frontend. [done, tzsetup 1:0.24ubuntu1]

Test/Demo Plan

Perform an installation of the Ubuntu server edition in OEM mode. After the first reboot, run 'oem-config-prepare', and reboot. It should ask a series of configuration questions, including locale, timezone, keyboard, account information, network configuration, and tasks.

Perform an installation of the Ubuntu desktop edition in OEM mode to ensure that it has not regressed.

Following the documentation written for adding new installation steps, add a simple page to confirm acceptance of a licence, produce a virtual machine image including that page, and test it.


CategorySpec

OemConfigServer (last edited 2009-02-19 16:02:30 by 82-69-40-219)