What are the options for managing multiple Ubuntu installations together and keeping them in same state

Recently I got in charge of managing 2 computer labs (currently 35 workstations, could double in a month or two) in university with total control over software stack as long as I install a bunch of commonly used scientific software (Mathematica and friends).

I plan to use Ubuntu for various reasons.

Installing Ubuntu and managing updates etc by hand is certainly an option, But I want to know if there is a more efficient way to do this stuff in and a more "Don't Repeat Yourself" manner?

Tasks

  • Ubuntu installation
  • Installation (duplication) of same software stack and configuration over each workstation
  • Keeping them updated

I believe what you are looking for is Landscape.

Manage multiple Ubuntu machines as easily as one and lower your management and administration costs.

Edit: for free alternatives, this might help: Are there any open source alternative to Landscape?


For keeping the systems updated in way that minimises internet bandwith use and prevents duplication of downloads from the mirrors, have a look at apt-cache-server

Further on this the University might consider setting up it's own official (or non-official) Ubuntu Mirror

After setting up apt-cache-server and one machine, you could use a few scripts or commands to duplicate the installation of a software suite across many computers:


To make a file with all installed applications on the system:

On working system:

dpkg --get-selections | grep -v deinstall > ubuntu-files

To then install the packages listed in this file:

### Make sure the system is fully updated
sudo apt-get update && sudo apt-get upgrade
### Install the dselect tool (probably depracated)
sudo apt-get install dselect
### Give the package list to dpkg so it knows what to install
sudo dpkg --set-selections < ubuntu-files
### Use dselect to initiate installation (option 'I' will do it)
sudo dselect

NB: There might be a better way to do this, for example calling dpkg directly instead of installing and using dselect.

NB: Although all packages are listed only those that do not exist on the system will be installed by dpkg

NB: cross version installation not really recommended - may install obsoleted packages (Open Office) and unwanted themes and dependancies (eg as in upgrade from 10.04 to 11.04 with Unity


For installation, there's many ways of doing this depending on your requirements. Here's few:

  1. Re-master (respin) your own versions of Ubuntu with the configuration and applications that you want.
  2. Build a master hard drive with your fully installed system and do a bit copy onto each machine.
  3. Do a bit copy of only the basic installation and then use the above instructions to install packages with dpkg --set-selections

I believe your real challenges are going to be network administration - managing users, storage, and other resources, so some good tools that will help you with these tasks are going to be very important.