diff --git a/software/cdist.mdwn b/software/cdist.mdwn index ee24e910..74457fc8 100644 --- a/software/cdist.mdwn +++ b/software/cdist.mdwn @@ -11,6 +11,7 @@ cdist is an alternative to other configuration management systems like [cfengine](http://www.cfengine.org/) and [puppet](http://www.puppetlabs.com/). + * [[Why should I use cdist?|why]] * [[Documentation|documentation]] * [[Supported Operating Systems|os]] * [[Installation|install]] diff --git a/software/cdist/update.mdwn b/software/cdist/update.mdwn index c62acc8f..3331ec85 100644 --- a/software/cdist/update.mdwn +++ b/software/cdist/update.mdwn @@ -31,6 +31,8 @@ To upgrade to the lastet version do The old "yes/no" values need to be removed. * Type **\_\_rvm_ruby**: Parameter --default is now boolean The old "yes/no" values need to be removed. + * Type **\_\_rvm_gemset**: Parameter --default is now boolean + The old "yes/no" values need to be removed. * Type **\_\_addifnosuchline** and **\_\_removeline** have been replaced by **\_\_line** * The **conf** directory is now located at **cdist/conf**. You need to migrate your types, explorers and manifests @@ -39,6 +41,8 @@ To upgrade to the lastet version do Support for the variable **\_\_object_name** is already present in 2.0. * The types **\_\_autofs**, **\_\_autofs_map** and **\_\_autofs_reload** have been removed (no maintainer, no users) + * Type **\_\_user**: Parameter --groups removed (use the new \_\_user_groups type) + * require="" is deprecated: Use --after and --before as parameters instead ### Updating from 1.7 to 2.0 diff --git a/software/cdist/why.mdwn b/software/cdist/why.mdwn new file mode 100644 index 00000000..6aa3516f --- /dev/null +++ b/software/cdist/why.mdwn @@ -0,0 +1,71 @@ +[[!meta title="Why should I use cdist?"]] + +[[!toc]] + +There are several motivations to use cdist, these +are probably the most popular ones. + +## Known language + +Cdist is being configured in +[shell script](https://en.wikipedia.org/wiki/Shell_script). +Shell script is used by UNIX system engineers for decades. +So when cdist is introduced, your staff does not need to learn a new +[DSL](https://en.wikipedia.org/wiki/Domain-specific_language) +or programming language. + +## Powerful language + +Not only is shell scripting widely known by system engineers, +but it is also a very powerful language. Here are some features +which make daily work easy: + + * Configuration can react dynamicly on explored values + * High level string manipulation (using sed, awk, grep) + * Conditional support (**if, case**) + * Loop support (**for, while**) + * Support for dependencies between cdist types + +## More than shell scripting + +If you compare regular shell scripting with cdist, there is one major +difference: When using cdist types, +the results are +[idempotent](https://en.wikipedia.org/wiki/Idempotence). +In practise that means it does not matter in which order you +call cdist types, the result is always the same. + +## Zero dependency configuration management + +Cdist requires very litte on a target system. Even better, +in almost all cases all dependencies are usually fulfilled. +Cdist does not require an agent or a high level programming +languages on the target host: it will run on any host that +has an **ssh server running** and a posix compatible shell +(**/bin/sh**). + +## Push based distribution + +Cdist uses the push based model for configuration. In this +scenario, one (or more) computers connect the target hosts +and apply the configuration. That way the source host has +very little requirements: Cdist can even run on a sysadmin +notebook that is loosely connected to the network and has +limited amount of resources. + +Furthermore, from a security point of view, only one machine +needs access to the target hosts. No target hosts will ever +need to connect back to the source host, which contains the +full configuration. + +## Highly scalable + +If at some point you manage more hosts than can be handled from +a single source host, you can simply add more resources: Either +add more cores to one host or add hosts. +Cdist will utilise the given resources in parallel. + +## Integration into inventory management + + +[[!tag cdist unix]]