The Linux Terminal Server Project (LTSP) has been around for years now, and it gets better with each new release. In the beginning, it was targeted at providing schools with a means to use low-cost computers as Linux terminal clients. It was a huge success; so much so, that LTSP now is included in several Linux distros, such as Edubuntu, as a regular package.
LTSP lets you tailor it to deliver multiple OS desktops to every workstation on the LAN, using just PXE-bootable desktops or thin clients. With this type of setup, users simply have to press Ctrl-Alt-Fn to access different desktops. The following shows an example menu you could present to LTSP users:
Ctrl-Alt-F1: Linux shell.
Ctrl-Alt-F2: Windows desktop for Internet browsing and e-mail.
Ctrl-Alt-F3: Ubuntu with development tools.
Ctrl-Alt-F4: Mac OS for graphics work.
Ctrl-Alt-F5: Remote Citrix access for corporate ERP and CRM.
To set up an environment that supports the above options, the following steps are required:
Set up an LTSP environment.
Install the required client connection tools.
Create scripts to use the client connections.
Configure LTSP files to enable one or several screens to use the new client connection.
The first step is installing the LTSP packages on the Linux distro of your choice. Many recent distro releases have ready-to-install LTSP packages available in their repositories, so you probably can use your favorite package manager out of the box. This way, you should have your LTSP server up and running in a matter of minutes. On Ubuntu use:
$ sudo apt-get install ltsp-server-standalone $ sudo ltsp-build-client
For detailed install instructions for other distros, check the LTSP Web site (see Resources).
For an easy out-of-the-box experience, download and boot from an Ubuntu Alternate CD, press F4, and choose Install an LTSP server (Figure 1).
From there, you install Ubuntu as usual. The only difference is that near the end of the install, you will see a warning about a second Ethernet card (Figure 2).
The error occurs because the installer defaults to using a second Ethernet card dedicated to boot terminals. You may use this setting if you like, but if you already have a DHCP server in your environment, you can use it.
Once you finish the LTSP install, log on to your server and build the LTSP image with the following command:
$ sudo ltsp-build-client
This takes a couple minutes. While it builds, you will see a text progress bar—get used to it, because you will need to rebuild this image several times.
If you are lucky and your DHCP server is a nice Linux box, edit your /etc/dhcpd.conf file to point your network boot options to the LTSP box. Add the following lines, and restart the DHCP service afterward:
option tftp-server-name "mynew.ltsp.server"; option bootfile-name "/ltsp/i386/pxelinux.0";
If you're unlucky and you have to set this up with a Windows server, as an administrator, open the DHCP configuration screen and add the configuration options below:
017 Root Path: /opt/ltsp/i386 066 Boot Server Host Name: <LTSP Server ip address> 067 Bootfile Name: ltsp/i386/pxelinux.0
In addition, most Linux/BSD-based firewall software appliances, such as pfsense and endianFW, have options for this on their DHCP configuration screens.
If everything goes well, your LTSP environment is ready to boot network clients. Reboot one of your desktops and select network boot. You should see your desktop receive an IP address from your DHCP server, a large stream of dots when the boot image downloads from the TFTP server and then a regular boot splash screen from your distro. Then finally, your LTSP session will start (Figure 3).
You're now about a third of the way there. Next, let's go to the core of multisession setup and start installing the connection tools you'll need to connect to other types of sessions.
Webinar: 8 Signs You’re Beyond Cron
11am CDT, April 29th
Join Linux Journal and Pat Cameron, Director of Automation Technology at HelpSystems, as they discuss the eight primary advantages of moving beyond cron job scheduling. In this webinar, you’ll learn about integrating cron with an enterprise scheduler.Join us!
- DevOps: Better Than the Sum of Its Parts
- Return of the Mac
- Drupageddon: SQL Injection, Database Abstraction and Hundreds of Thousands of Web Sites
- Play for Me, Jarvis
- Non-Linux FOSS: .NET?
- Not So Dynamic Updates
- Designing Foils with XFLR5
- Users, Permissions and Multitenant Sites
- diff -u: What's New in Kernel Development