cdist/REAL_README
Nico Schottelius 0792e5aae3 cleanup and remove cdist-design.text
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-02-26 11:27:53 +01:00

96 lines
2.4 KiB
Text

[[!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).