update readme
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
parent
4d99b755ab
commit
070a1d6e0c
1 changed files with 76 additions and 62 deletions
138
cdist.mdwn
138
cdist.mdwn
|
@ -1,72 +1,54 @@
|
||||||
## TO DOC
|
|
||||||
|
|
||||||
Before initial release, document:
|
|
||||||
|
|
||||||
- how to add package backends
|
|
||||||
- how to write a minimal host manifest
|
|
||||||
- create library with all functions (and their parameters)
|
|
||||||
- cdist_package
|
|
||||||
- cdist_file
|
|
||||||
- cdist_dir
|
|
||||||
|
|
||||||
- only do necessary work
|
|
||||||
- install packages only if not existent
|
|
||||||
- copy file only if different
|
|
||||||
|
|
||||||
- how to write a module
|
|
||||||
- module function autoloading via *.sh
|
|
||||||
- module "manifest"?
|
|
||||||
- create functions in *.sh
|
|
||||||
- name functions "modulename_function"
|
|
||||||
module hellow
|
|
||||||
function kitty
|
|
||||||
=> hellow_kitty
|
|
||||||
- you are advised (not forced) to put files
|
|
||||||
to a subdirectory named "files"
|
|
||||||
|
|
||||||
|
|
||||||
## Testing cdist
|
|
||||||
|
|
||||||
cdist-build-explorer| ssh localhost
|
|
||||||
|
|
||||||
set -e
|
|
||||||
git clone git://git.schottelius.org/cdist
|
|
||||||
cd cdist
|
|
||||||
export PATH=$PATH:$(pwd -P)/bin
|
|
||||||
cdist-build-explorer | ssh localhost
|
|
||||||
|
|
||||||
|
|
||||||
## Architecture
|
|
||||||
|
|
||||||
- User write shell scripts, which are run on the server
|
|
||||||
- Shell scripts call cdist functions
|
|
||||||
- cdist functions generate cconfig, which can be verified
|
|
||||||
- if verified, generate "command file" to execute on the client
|
|
||||||
- client only sees the commands
|
|
||||||
- no special requirements on the client
|
|
||||||
|
|
||||||
## next: cdist-deploy-to
|
|
||||||
|
|
||||||
- sync conf/{lib/,modules,host/$name}
|
|
||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
cdist configures your system. It is similar to
|
cdist configures your system. It is similar to
|
||||||
[cfengine](http://www.cfengine.org/) and
|
[cfengine](http://www.cfengine.org/) and [puppet](http://www.puppetlabs.com/).
|
||||||
[puppet](http://www.puppetlabs.com/).
|
|
||||||
It is inspired by both of those tools:
|
It is inspired by both of those tools:
|
||||||
|
|
||||||
* Try to redo the great power you get
|
* Try to redo the great power you get
|
||||||
* But leave out the bugs you also got
|
* But leave out the bugs you also got
|
||||||
|
|
||||||
### Principles
|
And cdist is UNIX:
|
||||||
|
|
||||||
cdist is unix: It's designed to reuse existing tools
|
It's designed to reuse existing tools,
|
||||||
and does not need high level scripting language interpreters.
|
does not require high level scripting language interpreters
|
||||||
|
and is equipped with manpages.
|
||||||
|
|
||||||
### Requirements
|
### Architecture
|
||||||
|
|
||||||
|
* KISS (keep it simple and stupid)
|
||||||
|
* Allow very easy extension of cdist (creating own types for instance)
|
||||||
|
* Push (server pushes configuration) and Pull (client retrieves config) supported
|
||||||
|
* User defines configuration in shell scripts using cdist functions
|
||||||
|
* Cdist generates internal configuration (cconfig style) and afterwards applies configuration
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
### Server
|
||||||
|
|
||||||
* A posix like shell
|
* 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)
|
||||||
|
|
||||||
|
## How to get cdist
|
||||||
|
|
||||||
|
git clone git://git.schottelius.org/cdist
|
||||||
|
|
||||||
|
## How to install cdist
|
||||||
|
|
||||||
|
make install
|
||||||
|
|
||||||
|
## How to use cdist
|
||||||
|
|
||||||
|
man cdist
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
## How cdist works
|
## How cdist works
|
||||||
|
|
||||||
|
@ -137,6 +119,7 @@ what is puppet? [FOR ME]
|
||||||
a DSL that allows you define the objectives.
|
a DSL that allows you define the objectives.
|
||||||
A webserver with fileserver capabilities.
|
A webserver with fileserver capabilities.
|
||||||
A client based scheduled polling infrastructure.
|
A client based scheduled polling infrastructure.
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
What do I miss from puppet?
|
What do I miss from puppet?
|
||||||
|
|
||||||
|
@ -190,11 +173,6 @@ Simple stuff done by Unix[notm]
|
||||||
- or absolute
|
- or absolute
|
||||||
|
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
Architecture
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
Implementation
|
Implementation
|
||||||
|
|
||||||
|
@ -203,3 +181,39 @@ Implementation
|
||||||
-> no need to reimplement scheduling
|
-> no need to reimplement scheduling
|
||||||
"cdist-explore" (facter replacement)
|
"cdist-explore" (facter replacement)
|
||||||
-> running on the client
|
-> running on the client
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
Requirements:
|
||||||
|
It MUST be incredible easy/dumb to add new types.
|
||||||
|
=> growable default types
|
||||||
|
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
## TO DOC
|
||||||
|
|
||||||
|
Before initial release, document:
|
||||||
|
|
||||||
|
- how to add package backends
|
||||||
|
- how to write a minimal host manifest
|
||||||
|
- create library with all functions (and their parameters)
|
||||||
|
- cdist_package
|
||||||
|
- cdist_file
|
||||||
|
- cdist_dir
|
||||||
|
|
||||||
|
- only do necessary work
|
||||||
|
- install packages only if not existent
|
||||||
|
- copy file only if different
|
||||||
|
|
||||||
|
- how to write a module
|
||||||
|
- module function autoloading via *.sh
|
||||||
|
- module "manifest"?
|
||||||
|
- create functions in *.sh
|
||||||
|
- name functions "modulename_function"
|
||||||
|
module hellow
|
||||||
|
function kitty
|
||||||
|
=> hellow_kitty
|
||||||
|
- you are advised (not forced) to put files
|
||||||
|
to a subdirectory named "files"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue