Distribution and Configuration System - version 2.0 released

What is DACS?

DACS, the Distribution and Configuration System, is a tool for maintaining system configuration on multiple computers. It is similar to other CCM (computer configuration management) tools such as bcfg2, lcfg, puppet and the well known cfengine. However, it has some unique features that makes it more than just a program which pushes files to other hosts. It integrates:

The other systems I looked at in 2005 had minimal (or absent) support for the key things I wanted in a configuration system:

As I write this in January 2009, some of these items are present in most of the CCM systems (e.g. hosts are allowed to have additional information associated with them), but not all of the functions are available. For example, version control still has an add-on feel in most of the other systems rather than being a core part of the functionality.

The key element in DACS is the use of the "database" as the repository of configuration knowledge. Once that is present it makes a lot of other tasks easier and possible. The manual includes sections on:

which I recommend you read if you are considering deploying DACS.


Even though the current manual is missing a licensing section, tools specific to DACS (dbreport, Rdist ...) are licensed under the version 2 Gnu Public License. At this writing, some of the third party tools used to implement DACS (GNU Make, filepp, Robodoc, sed) are also GPL licensed. Others (including svn, sudo) are under open source licenses. rdist is usually supplied with your operating system but it is available under a bsd license.

DACS - 2.0 is released January 10, 2009.

The manual for the 2.0 release of DACS is available in in html form or PDF format.

The software including the manual is available at: http://www.cs.umb.edu/~rouilj/DACS/DACS-2.0.tgz.

There is an elog forum and bug tracker at: https://rouilj.dynamic-dns.net/dacs for questions and support (this may be moving to a Trac instance at some point in the future). Plus I can be reached via email at rouilj+DACS at cs dot umb dot edu.

I would like the thank my documentation reviewers:

DACS - 2.1 release activities as of April 2010.

After receiving some feedback from people deploying DACS, I am working on updating the documentation and adding some auxiliary programs such as bisect that makes it easier to find when a given change was made to a file. Plus I am writing additional documentation and examples to try to clear up some deployment misunderstandings. You can see the release activities using the tracker link above.

Some DACS history

I authored a paper for LISA in 1994 with the assistance of Rick Martin on "Config" which deals with a mechanism for configuring and managing a number of systems.

The software to implement config can be downloaded from here: http://www.cs.umb.edu/~rouilj/config/config_tools-1.0.tgz.

In 2005 I was looking around for a CCM (computer configuration management) system and couldn't find anything I liked.

So I dredged up Config again and fixed some of the annoying bugs and added some features that people had implemented in the preceeding 10 years. My boss, Todd Underwood, urged me to rename it (since using Google to search for "Config" was a lost cause). As a result it was renamed it to DACS.

Quick Links