Installing Ubuntu in a school

Through Premier Samedi, our regular monthly-based meeting, someone asked me a question about installing Ubuntu in a classroom. I’m going to describe the installation.

The teacher have found some HP desktops, with 2GHz celeron processor, and 512 Mb of ram, quite decent computers for Ubuntu 10.04.

First of all, the network topology imposes the computer to be NATed, which is not such a bad idea, as we’ll see thereafter. I won’t describe Ubuntu Server installation process, since it comes straigthforward, and it have been done by the teacher himself. Thanks to the formation-debian doc, NAT instruction comes pretty forward. You just have to modify one line in /etc/sysctl.conf and add a /etc/iptables.up.rules pre-up in /etc/network/interfaces.

For the sake of simplicity, we have also installed a name server onto the NAT machine, which will act as a server. Since the pupils’ computers use static address, we added nameserver 192.168.0.254 to use this nameserver.

Ten machines are sufficient to raise interrogations about bandwidth usage, so apt-cacher was our solution. It just need a little tweak in the source.list file, which consist in remplacing lines by deb http://192.168.0.254:3142/apt-cacher/fr.archive.ubuntu.com/ubuntu/ lucid main.

Pupils shouldn’t care on which computer they are. NFS came as a solution. On the server, just had nfs-kernel-server, configure it on the localnet in /etc/exports:
/home/users 192.168.0.0/24(rw,sync,no_subtree_check) So easy! As users must have the same uid everywhere, I’ve written a small script (server version, client version) to automate the process. It simply reads a file which contains pupils name on each line, assuming names are different and creates the users, in the 10000-65536 range :-). The teacher should ask his pupils to change their password since default password is empty.

By now, every thing is done. Next step is to populate home directories with desktop links and stuff. Future plans involve dhcp, LDAP authentication, automounting of home users, etc.

If you have any question, just ask it.