Overview

The goal of this tool is to allow the exact reproduction of a machine's configuration. It does so by only storing the differences from a default installation of the OS.

It should be flexible enough to work with any UNIX-like OS, although it has only be tested with Debian GNU/Linux for now.

A hierarchy of configurations is used, so that common configuration parts for machines that should be similar in some points, but in all of them.

Each level in the hierarchy has to be defined as a CVS module, so that reproducibility of any past configuration can be ensured.

Each level in the hierarchy may provide a templates directory tree, which may contain files that will be fed through sed(1) to allow for parameter substitution. Each level in the hierarchy inherits the files of its ancestors, but can locally override them, or append to them (indeed, a top-level in this hierarchy can be seen as inheriting the default OS configuration, and all lower levels do in the end is overriding this default configuration).

After all files are processed and merged into a single tree, a configuration-specified build command will be run to build the packages that will be used to configure the machine.