[[!meta title="cdist - configuration management"]] ## Introduction cdist configures your system and is similar to other configuration management systems like [cfengine](http://www.cfengine.org/), [bcfg2](http://trac.mcs.anl.gov/projects/bcfg2), [chef](http://wiki.opscode.com/display/chef/) and [puppet](http://www.puppetlabs.com/), but it ticks differently: * cdist sticks completly to the KISS (keep it simple and stupid) paradigma * cdist's core is very small (currently around 400 lines of code) * There is only one type to extend cdist called ***type***. * cdist is UNIX * It reuses existing tools like cat, find, mv, ... * cdist's documentation is bundled as manpages * cdist is written in POSIX shell * No special requirements like high level interpreters needed on server or target MAIN AIM: It MUST be incredible easy/dumb to add new types. ### Architecture * Push mode (server pushes configuration) * Pull mode (client triggers configuration) * User defines configuration in shell scripts (called ***manifests***) * Cdist generates internal configuration (cconfig style) and afterwards applies configuration ### Features Stuff that should probably be included in every configuration management, but is not. Or: The reason why I began to write cdist. * Speed * Elegant code * Clean design * Good documentation (man pages) * Meaningful error messages * No surprise factor * Consistency in behaviour, naming and documentation * Easy integration nacked installations * Simple and well-known DSL: posix shell * It is very easy to * extend cdist * debug cdist-core and cdist-types * Focus on reuse of existing functionality * ssh * sh * find, rm, ... ## Requirements ### Server * A posix like shell * SSH-Client (for push architecture) * SSH-Server (for pull architecture) ### Client * A posix like shell * SSH-Client (for pull architecture) * SSH-Server (for push architecture) ## Installation ### Get cdist Operation on the server is run as "cdist" user. Operation on the client is run as "root" user. git clone git://git.schottelius.org/cdist ## How to install cdist make install ## How to use cdist man cdist ## Support ### IRC You can join the development ***IRC channel*** [#cLinux on irc.freenode.org](irc://irc.freenode.org/#cLinux). ### Mailing list Bug reports, questions, patches, etc. should be send to the [cdist mailing list](http://l.schottelius.org/mailman/listinfo/cdist).