Automation

Differences between revisions 3 and 4
Revision 3 as of 2007-05-30 21:15:02
Size: 3510
Editor: chiark
Comment: more bits from UDS-Sevilla
Revision 4 as of 2007-05-30 21:19:29
Size: 3586
Editor: chiark
Comment: netbooting
Deletions are marked like this. Additions are marked like this.
Line 21: Line 21:
 * Internal certification testing will be more efficient if it can be automated. (Coordinate with Marc Tardif in the Canonical support department.)  * Internal certification testing will be more efficient if it can be automated, including the ability to boot over the network. (Coordinate with Marc Tardif in the Canonical support department.)
Line 35: Line 35:
To support netbooted installations, we will ensure that the existing `casper` support for netbooting works properly (it is believed to have some bugs), and we will add a noninteractive frontend to Ubiquity which can be invoked automatically. At the time of writing, new frontends can be added to Ubiquity reasonably straightforwardly by inheriting from `ubiquity.frontend.base.BaseFrontend`.
Line 37: Line 39:
We will investigate switching the GTK frontend from the home-grown notebook scheme to `gtk.Assistant` (new in Py``GTK 2.10) to make this easier.

== Discarded ideas ==

The suggestion of a noninteractive frontend was discussed. This is not very useful in the context of ubiquity at the moment, since noninteractive frontends mostly help with network installations, and ubiquity doesn't yet support those. A text/newt frontend has more practical use, but is out of scope here, and is not being specified at present.
We will investigate switching the GTK frontend from the home-grown notebook scheme to `gtk.Assistant` (new in Py``GTK 2.10) to simplify page switching.

Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.

Summary

Partially or fully automated installations using Ubiquity.

Rationale

There are a number of limitations in the existing preseeding facilities in Ubiquity (which are used by gfxboot-theme-ubuntu/casper to set a default locale and keymap). The most noticeable for automatic installations is that it does not skip a page if no questions on that page are asked by the backend; this is also a UI bug visible when going back from the automatic partitioner on a system with only one disk. There is also no way at present to distinguish questions that have already been asked in the current Ubiquity run (or a previous cancelled run) from questions that have been preseeded. These restrictions impede the use of Ubiquity for automatic installations.

Use cases

  • Some derivatives of Ubuntu know the answers to certain questions asked by the installer (e.g. the language), and want to set their values and prevent them from being asked.
  • Ubiquity provides a quicker installation than d-i by means of copying the live filesystem rather than installing packages, so, even though it does not provide a network installation at present, some people would like to use it for quickly bringing up individual machines in an automated and consistent fashion.
  • Internal certification testing will be more efficient if it can be automated, including the ability to boot over the network. (Coordinate with Marc Tardif in the Canonical support department.)

Design

We will modify Ubiquity's debconffilter and frontend frameworks to skip a page if no questions at all are asked by the backend that require user interaction on that page.

We will teach casper's preseeding implementation to be able to fetch preseed files from the network.

Under normal circumstances, Ubiquity ignores the seen flag set by preseeding; this is necessary to make it possible to cancel Ubiquity and re-run it from the start. However, since this is problematic for automatic installations, we will add a --automatic option which skips pages if no questions are asked by the backend that require user interaction on that page and that do not have the seen flag set.

The implementor needs to go through and test that each individual question can be preseeded, and fix any further bugs that arise; they should be minor.

We will create documentation on automatic installations of ubiquity, to reduce the dependence on advice from installer developers. We will also create installer developer documentation on how this is supposed to work in order that this scheme will be remembered.

To support netbooted installations, we will ensure that the existing casper support for netbooting works properly (it is believed to have some bugs), and we will add a noninteractive frontend to Ubiquity which can be invoked automatically. At the time of writing, new frontends can be added to Ubiquity reasonably straightforwardly by inheriting from ubiquity.frontend.base.BaseFrontend.

Future work

We will investigate switching the GTK frontend from the home-grown notebook scheme to gtk.Assistant (new in PyGTK 2.10) to simplify page switching.


CategorySpec

Ubiquity/Automation (last edited 2008-08-06 16:38:07 by localhost)