|
|
|
@ -1,5 +1,7 @@ |
|
|
|
|
[[!meta title="cdist - configuration management"]] |
|
|
|
|
|
|
|
|
|
[[!toc levels=2]] |
|
|
|
|
|
|
|
|
|
## Introduction |
|
|
|
|
|
|
|
|
|
cdist configures your system and is similar to |
|
|
|
@ -11,21 +13,20 @@ 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) |
|
|
|
|
* 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 |
|
|
|
|
|
|
|
|
|
MAIN AIM: It MUST be incredible easy/dumb to add new types. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Architecture |
|
|
|
|
|
|
|
|
|
* Push mode (server pushes configuration) |
|
|
|
|
* Pull mode (client triggers 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 |
|
|
|
|
|
|
|
|
@ -56,35 +57,48 @@ but is not. Or: The reason why I began to write cdist. |
|
|
|
|
### Server |
|
|
|
|
|
|
|
|
|
* A posix like shell |
|
|
|
|
* SSH-Client (for push architecture) |
|
|
|
|
* SSH-Server (for pull architecture) |
|
|
|
|
* SSH-Client |
|
|
|
|
|
|
|
|
|
### Client |
|
|
|
|
### Client ("target host") |
|
|
|
|
|
|
|
|
|
* A posix like shell |
|
|
|
|
* SSH-Client (for pull architecture) |
|
|
|
|
* SSH-Server (for push architecture) |
|
|
|
|
* SSH-Server |
|
|
|
|
|
|
|
|
|
## Installation |
|
|
|
|
|
|
|
|
|
Cdist stable always in master |
|
|
|
|
## Getting cdist |
|
|
|
|
|
|
|
|
|
* Create a new unpriviliged user (probably "cdist") |
|
|
|
|
* Become that user, execute the following code: |
|
|
|
|
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. |
|
|
|
|
|
|
|
|
|
git clone git://git.schottelius.org/cdist |
|
|
|
|
cd cdist |
|
|
|
|
export PATH=$PATH:$(pwd -P)/bin |
|
|
|
|
|
|
|
|
|
That's it. |
|
|
|
|
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 |
|
|
|
|
|
|
|
|
|
Operation on the server is run as "cdist" user. |
|
|
|
|
Operation on the client is run as "root" user. |
|
|
|
|
To install cdist, execute the following commands: |
|
|
|
|
|
|
|
|
|
## Update |
|
|
|
|
git clone git://git.schottelius.org/cdist |
|
|
|
|
cd cdist |
|
|
|
|
export PATH=$PATH:$(pwd -P)/bin |
|
|
|
|
|
|
|
|
|
git pull && make install |
|
|
|
|
|
|
|
|
|
### 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 |
|
|
|
@ -96,7 +110,3 @@ You can join the development ***IRC channel*** |
|
|
|
|
|
|
|
|
|
Bug reports, questions, patches, etc. should be send to the |
|
|
|
|
[cdist mailing list](http://l.schottelius.org/mailman/listinfo/cdist). |
|
|
|
|
|
|
|
|
|
## Commercial Support |
|
|
|
|
|
|
|
|
|
To be done. |
|
|
|
|