Packages affected: ltsp-client
Integrate a tool that will enable the central management of thin-client infrastructure, suitable for large scale deployment, managed by a team of administrators.
There is a tool that is planned for the management of LTSP server and thin-clients, called LTSP Manager. The scope of this tool is presently limited to the management of one server and a lab of thin-client. This kind of tool must be designed to support also large scale deployment of thin-clients infrastructure.
- Robert is an administrator of a large thin-client infrastructure. He wants to be able to define the printer list available on a thin-client basis. He wants to apply this settings to all thin-clients in the same group.
- Mike is a technician in a large school district. He converts older workstations to thin-clients. Sometimes, the default configuration and auto-detection is not suitable. He boots the thin-client and opens the configuration interface. He logs into the interface, and the settings of this thin-client are shown automaticaly. He can override default configuration and test again. He must be able to configure X without the need of X itself.
- Workstations that Mike manage are all booting PXE all the time. There is an entry in the PXE menu to boot in thin-client mode. When he install a new thin-client, he classify the thin-client in it's group, to apply the group's parameter. Then, a PXE entry is created with the MAC address, that make the workstation boot always as thin-client.
- Lydia is a director of a school district. She wants statistics about the thin-clients hardware and usage, to justify to the school board new investments in this technology. She connects to the central configuration tool, and she is able to get the reports she needs.
- The configuration must be kept centrally, in a database
- The tool must be multi-user, with the possibility to manage permissions
- The tool must be simple to use and flexible
Here are some design that are possible.
The first design discussed is based on a web interface and SQL database. The unique identifier of a thin-client is it's MAC address. The schema of the SQL database is designed to support efficiently a hierarchy of groups.
- The administrator can use the tool through a graphical browser.
- The technician can access the settings fast with the admin mode, that opens a text browser with the specific thin-client URL. This prevent the technician to know the MAC address, and resolve the chicken'n egg problem with the configuration if Xorg.
- The database is used as the basis of the PXE configuration.
- The thin-client downloads it's configuration from the web server on boot.
- For the statistics, thin-client's boot is recorded, and user's login and logout are also recorded by session scripts.
- Available printers are synchronized by querying CUPS servers, and a printer filter use this setting in the user's session.
- Inventory may be performed and send to the web server.
- Settings that are specific for LTSP servers are stored in the database.
The second design implies the use of LDAP as a data backend. This way, tools to manage LDAP can be used to manage thin-client as well. The server needs to support a specialized schema for this purpose.
The third design can consist to add a database backend to LTSP Manager, to choose to use a central database or simple lts.conf file. The GUI may be attractive compared to a web interface. XML-RPC like protocol can be implemented to support centralized management. A failsafe mode is needed for Xorg configuration.
The fourth design may use landscape as a framework to manage LTSP servers and thin-clients. It may not be possible to use this tool because of licensing issues.
Before the implementation plan, we must agree on a design.
To integrate the mille-xterm configurator, then we need to :
- Create a deb package of the server software
- Add a hook in ltsp_config to get the configuration from the server when configured to do so
- Add login and logout scripts, to setup printer filter and gather logs
- Add a hook for terminal admin mode
This implementation will impact the ltsp-client and ltsp-server package.