Skip to content

A Library of Challenges

One of the technical challenges at Partimus is configuring software for the myriad donated hardware we receive. For several years now, we’ve used Lubuntu — a lightweight variant of Ubuntu Linux — as our primary desktop operating system. Ubuntu, and its variants, are fairly easy to install and configure directly from the distributed CD. However, as we scale our efforts to provide for an increasing number of supported sites, it’s important to keep our machines configured in a standard, consistent manner.

To those ends, we automate the task of OS and software installation and configuration using several standard methods. This is referred to “unattended installation”, or “provisioning and configuration management”. Fortunately, Ubuntu comes with a number of powerful tools capable of implementing large scale deployments. At Partimus, we use Ubuntu’s native installer tools — primarily delian-installer — for unattended installs. Typically, a manual installation of Ubuntu is achieved with a series of interactive prompts asking the user to select such options as how the hardware should be configured and which software packages to install. delian-installer essentially allows us to create a set of parameters and instructions that can be handed off to the installer in order to answer those dialogs without need for user interaction (“pre-seeding” the responses to the interactive configuration questions).

Installation of the operating system consists of four essential steps.

1) Bootstrapping the target machine.

2) Loading an installer distribution

3) installing the packages that make up the OS and its applications

4) customizing the configuration.

Fortunately, the technology allows a lot of flexibility on how to accomplish this. We can use custom crafted media, network services, or a combination of the two. Bootstrapping can be handled using removable media (a CD or USB thumb drive), a network capable boot device (PXE), or even the boot loader on an existing local disk (GRUB). Both the configuration and the repository or packages to be installed can also exist on a local file system, local removable media, or be served from a network based store using standard protocols like HTTP or NFS.

Over the next few posts, I intend to walk through some of the approaches we’ve taken to automate deployments. First up, a network based bootstrap and provisioning solution.

Post a Comment

Your email is never published nor shared. Required fields are marked *