Summary

This specification discusses the management of pools of mass installations installed e.g. by NetbootManagement.

Rationale

NetbootManagement enables the admin to mass install Ubuntu unattended on computers in his pool. We need some infrastructure to manage configuration of his network.

Use Cases

Scope

Security Considerations

We are targeting the admin who wants a really simple system to handle. Therefore we assume that he can control which machines are hooked up to his network.

The system could e.g. be compromised if the admin distributes confidential data such as passwords via this facility. If the administrator needs some means of authenticating clients a solution like cfengine needs to be used.

Design

The basic idea is to use sshd on the clients and let the server connect to them. The server maintains a list of clients which it can manage, by the clients advertising their presence on the network.

For grouping clients, we use the groups the administrator defined in nmt (refer to NetbootManagement).

Implementation

The clients are running avahi themselves to indicate that they want to be configured by ConfigurationInfrastructure. That way, the server side is able to know which computers are online and ready to be handled.

The approach for distributing files and executing commands is using sshd. The Server advertises his ssh public key via avahi to the clients, which they install it to /root/.ssh/authorized_keys.

For supporting groups of computers to be handled, the registration of the clients includes optionally a "named group" as described in NetbootManagement. If the given "named group" is not registered on the server, the clients end in the same group as if no group was specified at all. This "default" group shall be the "unknown" group as described in the NetbootManagement spec.

On the server side all files are stored in /var/lib/cfi/<groupname>. The files are stored relative to root directory on the client, so a simple rsync can be used to distribute the files.

Executing commands is trivial, since we have installed an ssh key install from the server. For easily executing commands on the client, we use dsh.

Fun stuff implementable with this

Extensions

Since advertising via avahi is by no means reliable, some clients may be missed by the server. Therefore it could be advisable to maintain a list of clients on the server, which the server should try to contact even when they do not advertise their presence. We have to evaluate if this is actually an issue and extend the implementation so.


CategorySpec

ConfigurationInfrastructure (last edited 2008-08-06 16:24:12 by localhost)