Quattor Toolkit Overview

The main Quattor web site is now hosted on  GitHub. The main documentation is avaiable there. This site holds technical documentations about a few Quattor toolkit components.

Quattor is a system administration toolkit providing a powerful, portable, and modular set of tools for the automated installation, configuration, and management of clusters and farms. It is developed as a community effort and provided as open-source software.

Quattor was originally developed to manage the clusters and services used in grid computing. Today, Quattor is being used to manage at least 20 separate infrastructures spread across Europe. These range from massive single-site installations such as  Morgan Stanley (where more than 25000 machines are managed) to highly-distributed grid infrastructures such as  Grid-Ireland (which was made up of 18 physical installations). For more details on Quattor deployments, see [Deployments].

To find out more about Quattor works, have a look at these pages:

Quattor Workflow

The quattor toolsuite caters for every stage of a typical system management workflow, from specification and management of configurations, to installation of new machines from scratch, to ongoing maintenance of software and services.

Quattor Workflow Diagram

Specifying configuration

In Quattor, templates describing computers and services are written in a declarative language called Pan. The set of templates describing the configuration of a complete system are usually stored in a configuration database that provides user authorisation and version control. Pan templates are compiled to XML profiles which are then deployed to managed machines.

Installing machines

Quattor provides an automated installation infrastructure (AII) that uses the information from profiles to set up an automated installation for managed machines. For example, AII will add DHCP entries and generate PXE configurations for a machine based on the network and OS settings found in its profile. AII has a plugin architecture allowing different installation mechanisms to be supported. Currently, the most commonly-used mechanism is  Kickstart/Anaconda as found in RedHat-like Linux distributions.

Configuring services

On each managed machine, a set of configuration modules (or components) is installed. Each module is responsible for configuring a particular service. For example, ncm-accounts is in charge of managing local user accounts, and will add accounts specified in the machine's profile. Each module reads its own parameters from a particular part of the profile (for example, ncm-accounts reads the list of users and groups defined at /software/components/accounts).