Automation

Differences between revisions 1 and 2
Revision 1 as of 2006-11-08 20:21:36
Size: 3100
Editor: 207
Comment: start, bof notes
Revision 2 as of 2006-11-08 20:43:49
Size: 3298
Editor: 207
Comment: draft
Deletions are marked like this. Additions are marked like this.
Line 15: Line 15:
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.
Line 20: Line 22:
== Scope ==
Line 24: Line 24:
== Implementation == 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 investigate switching the GTK frontend from the home-grown notebook scheme to `gtk.Assistant` (new in Py``GTK 2.10) to make this easier.
Line 26: Line 26:
=== Code === 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.
Line 28: Line 28:
=== Data preservation and migration === 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.
Line 30: Line 30:
== Unresolved issues == 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.
Line 32: Line 32:
== BoF agenda and discussion == == Discarded ideas ==
Line 34: Line 34:
Problems with existing preseeding facilities:
 * doesn't skip pages properly if no questions on that page are asked by the backend (visible in Dapper/Edgy on the "Select a disk" page if you only have one disk)
  * can be fixed by only displaying a page at all if a question is asked
  * may be helped by switching to gtk.Assistant (new in PyGTK 2.10) rather than home-grown notebook
 * need to be careful to distinguish questions that have already been asked in this ubiquity run from questions that have been preseeded
  * complicated debconf semantics around the "seen" flag; may be helped by switching to cdebconf
 * if and only if you ask the question once, it should be asked on subsequent runs
... so:
 * no matter what, skip a page if no questions at all are asked on it
 * under normal circumstances, ubiquity ignores the seen flag set by preseeding
 * if --automatic is given on the command line, then the seen flag will be honoured too: specifically, a page will be skipped if no questions without the seen flag set are asked on it
  * this behaves badly if mixed with cancelling ubiquity and re-running it, which is why it cannot be the default

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).

Must create documentation on automatic installations of ubiquity (or else you need a pet debconf expert to work it out for you). Also need installer developer documentation on how this is supposed to work, or else we'll get horribly confused next time round!

Noninteractive frontend:
 * not very useful in the context of ubiquity, since noninteractive frontends mostly help with network installations, and ubiquity doesn't yet support those
 * text/newt frontend has more practical use, but is out of scope here ...
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.

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.

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 investigate switching the GTK frontend from the home-grown notebook scheme to gtk.Assistant (new in PyGTK 2.10) to make this easier.

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.

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.


CategorySpec

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