Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

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

We have been successfully and happily using Microsoft Deployment Toolkit to perform our Windows desktop installations. We also have an every-growing set of Ubuntu desktops that we would like to establish a similar method of installation for.

Our plan is also to start implementing Puppet as part of this change in order to perform configuration management. What we're looking to do is use some method (hopefully similar to MDT) to get a base install of Ubuntu on a machine and then use Puppet to configure everything else.

Is there a tool for Ubuntu that can automate a desktop installation with basic options (hostname, packages, user) pre-configured?

share|improve this question

You can use a preseed schema to do the initial install.

I suggest you remaster a CD with the preseed option as explained on the linked guide, and automatically configure the rest using puppet.

EDIT: I forgot to mention FAI, Fully Automatic Installation. It's a great tool, fully customized.

share|improve this answer

I know that Linux Mint (an Ubuntu derivative) has an OEM mode that allows you to save a package set and any other customization to use on multiple installs. Ubuntu probably has something similar.

Once you get the boxes online with an administrative user, you should be able to do all your administration remotely with a little scripting. For some sets of systems I have a config script which tests against a "default install" and systematically sets up everything the way I want it modified, removing some packages, installing others, setting permissions, synchronizing user files, etc.

Some desktop environments like Gnome also have their own config deployment system where you can control permissions and things like the contents of menus across a mass deployment. You will find the world a little more fragmented than MDT, but it can all be done.

share|improve this answer

A second vote for preseed. A few preseed config tidbits:

Individual additional packages to install:

d-i pkgsel/include string puppet

This will allow puppet to auto start. By default it won't:

d-i preseed/late_command string sed -i 's/START=no/START=yes/' /target/etc/default/puppet

Configure puppet to auto sign new hosts. Add something like *

share|improve this answer

Another tool to look into is Cobbler. This is used in addition to preseed which is still required to automate the install process. Cobbler is just used to manage the network pxeboot deployment of the install media and preseed/kickstart files. Then puppet can take over from there for configuration and change management.

There are a few blog posts out there that outline using Cobbler with Ubuntu. Here are two that I found helpful but there are others.

share|improve this answer

I would recommend any other configuration management system over puppet. Puppet will re-order the configuration steps on each run. Even on the same host. Proponents will tell you that you can setup your requires appropriately so that it works well. I'll tell you that I'm human and I make mistakes. If you have a puppet recipe of any complexity you'll want to test your work. When you do and it succeeds you'll assume that it works on all of your other hosts. This is not necessarily the case. Any system that assumes I'm perfect is, itself, not.

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.