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?


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

4 Answers 4


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?

  • Buying Landscape via Ubuntu advantage is certainly not an option. 105$ per desktop (canonical.com/enterprise-services/ubuntu-advantage/desktop) is the same price of hiring 10 people full time to manage 35 workstations. (Protio: I'm living in a not-so-wealthy country) Oct 14, 2012 at 1:26
  • 1
    I'm just googling here, but this might help - askubuntu.com/questions/112243/…
    – csauve
    Oct 14, 2012 at 1:40
  • 1
    An Enterprise solution like Landscape may still be too pricey for your needs & budget, but you should not assume that what's listed on the Canonical store x 35 is the price for 35 desktops. There are significant volume and term discounts, just FYI.
    – 0xF2
    Dec 12, 2012 at 6:40
  • Landscape is free for up to 10 physical machines and 10 more virtual machines for a total of 20. askubuntu.com/questions/549809/…
    – PJunior
    Nov 14, 2015 at 16:00

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.

  • dpgk - I think this should say dpkg? Oct 14, 2012 at 11:35

105$ per desktop (canonical.com/enterprise-services/ubuntu-advantage/desktop) is the same price of hiring 10 people full time to manage 35 workstations. (Protio: I'm living in a not-so-wealthy country)

That seems like a bit of hyperbole (http://en.wikipedia.org/wiki/List_of_countries_by_GDP_(PPP)_per_capita ;-), but to your point, $105 per seat is the starting price, for 1 Desktop unit. Volume discounts apply, and if you are in a university or in an emerging market (seems like both apply), there is a different price list for that as well.

Free as in beer may still be the way to go for you, but wanted to make sure you had the full picture. Hope this helps.

  • 1
    I live in a wealty country, the problem is that wealth is not in hands of it's people to be precise. :) Typical salary for a part-time developer (like me, I do webdev) is about 3±1$/hour. Dec 20, 2012 at 7:27
  • Landscape is free for up to 10 physical machines and 10 more virtual machines for a total of 20. askubuntu.com/questions/549809/…
    – PJunior
    Nov 14, 2015 at 16:01

This is something which I propose -

  1. Create a customized Ubuntu installation with all the apps you want and remove the apps which you don't want.
  2. Enable PXE boot on all networked computers and get all machines to boot from the customized ISO you have built and install the customized Ubuntu OS on all the machines.
  3. Keeping the machines Updated - 2 options:
    1. apt-cache server (I found this comprehensive to do very helpful - Ubuntu Update Manager | Technical Stuff)
    2. Install OCS Inventory - If you are picky about what updates you want to roll out, you could download the updates on one desktop, check if they are working well, without any conflicts and then using the OCS inventory, you can push these .deb packages to all the Ubuntu machines on the network. I this way, you will be absolutely sure of what versions of what packages are residing on each of your machine.

The second option is a bit of extra activity, but if you want to be absolutely sure of what updates/ upgrades you are pushing, then it is worth the effort.

In case you decide to bring in some Ubuntu Servers on the network - like for example proxy, LDAP, Samba, Jabber, WordPress, Moodle etc. The second option will be very helpful as while managing servers, you want to know exactly what versions of updated / upgraded packages are being installed.

I recommend Option 2 because of a personal experience - I had this issue with one of my hosted dot net apps that was working well in Firefox v24, but it broke with higher versions of Firefox. It was quite annoying and we had to make requests to make changes in the app as the newer version of Firefox had reached to more than 150 desktops. Lesson learnt the hard way.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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