|
|
|
@ -1,5 +1,7 @@ |
|
|
|
|
[[!meta title="Why should I use cdist?"]] |
|
|
|
|
|
|
|
|
|
[[!toc]] |
|
|
|
|
|
|
|
|
|
There are several motivations to use cdist, these |
|
|
|
|
are probably the most popular ones. |
|
|
|
|
|
|
|
|
@ -30,8 +32,40 @@ 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 |
|
|
|
|
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]] |
|
|
|
|