Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top


I was recently given the task to remove Windows XP from some 15 computers in a primary school, install Lubuntu 12.10 on them (all too old for Gnome/Unity) and set up Scratch so the students can start learning coding in a month or two.

The problem is: although I've been using Linux for a decade now, I've no idea of how to set up a "master" computer to deal with the updates and maybe even broadcast whatever is happening on its screen to all the "slave" computers in the lab.

The only useful answer I found here was this one regarding the use of "squid-deb-proxy" to deal with the updates in an efficient way.

Any how tos, tutorials or tips from someone who's done something similar?

Much appreciated. Thank you.


share|improve this question
By the way: good question but I believe it might be better off asked on (since it might be more discussion related than factual). Ill let others decide :+) – Rinzwind Jan 31 '13 at 11:42
up vote 5 down vote accepted

Below are some of my "best practices" thoughts about it. Ask a specific question about the individual options, it's too broad to dive into the details of all of them in this single Q&A, I think.

  • Manage them in a centralized way.

    You have several options here: Puppet, Landscape and Chef are just a few examples.

  • Preseed the installation.

    This will avoid manual ask/answer question in the installation and allows you to install it automatically in your central management from the item above.

  • Consider PXE booting.

    In case of issues and you want to completely restore the original state of the system, this will make it a lot easier to reinstall from scratch. Consider this to be automated as well, so you can let users do it themselves if they don't trust the current state of the system (security wise).

    Alternatively, you can even run of a customized (updated) Live environment in a diskless set up by using a central NFS server. Users can then store files on their USB flash drive or you can configure it to have the homes on a network share.

  • Surveillance on the machines.

    I'm not sure if you're asking about viewing the screens of the individual machines or to view the screen of the "master" PC on the individual ones.

    Several options here as well. The easiest way I think it is to enforce the start of a VNC server on each machine (using the central management) and then find a client application being capable of tiling 15 of those on the desktop of the teacher. The other way around is quite easy as well: just pre-configure a VNC client on those machines or even add a shortcut on their desktops.

  • Install a central proxy.

    If you expect the users to use the Internet in a similar way (visit identical web pages), a proxy like Squid can help you reduce the bandwidth usage on the link to the ISP as well as an improvement in speed. The squid-deb-proxy package is useful for package updates, yes, but a regular Squid can do more than that.

  • "cluster" SSH commands

    I really recommend avoiding this, in favour of the first item (centralized management). However, if you need to run commands from a central location, PSSH Install Parallel SSH or Cluster SSH Install clusterssh can help you out in scripting. But really, look into options in Puppet/Landscape/Chef first.

share|improve this answer

My suggestion is to use Edubuntu LTSP (Ubuntu + Linux Terminal Server Project + teacher tools) for this.

The last time I managed computer labs was before Edubuntu existed, but I used LTSP quite effectively, and eventually used K12LTSP for this. You can search for K12LTSP -- the mail archives are still online and most problems you encountered will be similar to the ones there.

LTSP is wonderful for reusing older computers because most of the heavy lifting can be done on the server, with individual apps like Firefox or Scratch run locally on the client if you so choose. You also don't need to worry about locking the disks, since everything is run RO from the server, with /home mount RW (generally using NFS). You just set the server between you lab router and the outside, and set the clients to PXE boot, and you're generally done. The students won't be able to change anything, and any damage they do to their $HOME can be blasted away with no issues.

Edubuntu also comes with the kind of client monitoring tools you are asking for.

share|improve this answer

Another option (though not Ubuntu) is to use a modified SliTaz image on one of the systems, which can be used to PXE boot the entire lab, loading the image into memory. Boot is almost instantaneous, and even old systems are super fast on this system.

You create your modified image, boot the first system, turn on the boot server, then boot the other computers. That's all you need to do.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.