LTSPdhcpConfigAutogeneration

Summary

This specification discusses changes that need to be made to the dhcpd configuration process to avoid manually adjusting the dhcpd configuration file for standalone LTSP servers.

Rationale

Currently a user of Ubuntu's ltsp server package needs to edit the details of the /etc/ltsp/dhcpd.conf file in order to make it work on an initial installation. A way to generate that file automatically during installation based on a static interface found on the system should be implemented.

Use cases

Fred, who has little knowledge how dhcp servers work, or how IP networks are set up, wants to use the donated thin clients he has received. He is installing the ltsp server on his Ubuntu system in expert mode from the installer menu to make it an LTSP server for the company. He has an unused ethernet interface in the machine, and the LTSP installation automatically configures it for LTSP terminals to use. The terminals boot succesfully with no further work.

Willy is admin for a local school and installs an Edubuntu server. He has already prepared the hardware with two network cards and has made sure that the outbound interface works so he can download support for specific languages his students need. He needs to do this because he couldn't find the languages he needed on the Edubuntu CD. The other interface doesn't have a route, so the LTSP install succesfully selects it as a candidate interface for LTSP terminals, and once again, everything "just works".

Scope

  • Modify ltsp-client-builder udeb postinstall script
  • Changes to /etc/network/interfaces

Design

Instead of generating/changing the /etc/ltsp/dhcpd.conf file, the interface configuration should be changed for a spare interface, so we can go on shipping a static file for the dhcpd.

Implementation

The following functionality has to be added to the postinst script and debconf templates/database of ltsp-client-builder:

  1. If a completely unconfigured interface is found, autoconfiguration of the settings of this interface through /etc/networking/interfaces with the default settings matching the dhcpd.conf file we ship is applied and the interface is started up before dhcpd is started at the end of the ltsp-client-builder installation.
  2. If a statically configured interface is already set up, and it doesn't own the default route, a debconf question is asked if the config should be altered to match the appropriate values according to the dhcpd.conf so as to make it work as an LTSP serving interface. In case the user answers this with a yes, a sed search/replace invocation will change the values in /etc/network/interfaces to match the shipped dhcpd default configuration for LTSP. The postinst will restart that interface before dhcpd is restarted at the end of the script.

  3. If more than one unused and/or static interface without matching default route is found, a debconf selection is offered to the user to select the interface he wants to use for LTSP. Depending on whether the interface is unconfigured or not, either case a) or case b) will be executed.


CategorySpec CategoryEdubuntuSpec

LTSPdhcpConfigAutogeneration (last edited 2009-07-24 03:06:22 by 201)