cdist/REAL_README

113 lines
2.9 KiB
Text
Raw Normal View History

[[!meta title="cdist - configuration management"]]
[[!toc levels=2]]
## 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 (< 1k lines of code)
* There is only one type to extend cdist called ***type***.
* One main development target: ***It must be incredible easy to add new types.***
* 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
### Architecture
* Push mode (server pushes configuration)
* Pull mode planned (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
### Client ("target host")
* A posix like shell
* SSH-Server
## Getting cdist
You can clone cdist from git, which gives you the advantage of having
a version control in place for development of your own stuff as well.
There are at least two branches available:
* 1.0: stable branch of version 1.0
* next: preparing next cdist version
Other branches may be available as well for features or bugfixes, but they
may vanish at any point.
### Installation
To install cdist, execute the following commands:
git clone git://git.schottelius.org/cdist
cd cdist
export PATH=$PATH:$(pwd -P)/bin
### Update
As the stable branch always contains the stable code, you can upgrade
cdist using
git pull
If there are any incompatibilities, at least the minor version (1.0 -> 1.1)
will change and thus a git pull will never break your cdist installation
(in theory).
## 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).