<h1><spanclass="section-number">1. </span>Why should I use cdist?<aclass="headerlink"href="#why-should-i-use-cdist"title="Permalink to this headline">¶</a></h1>
<p>There are several motivations to use cdist, these
are probably the most popular ones.</p>
<sectionid="known-language">
<h2><spanclass="section-number">1.1. </span>Known language<aclass="headerlink"href="#known-language"title="Permalink to this headline">¶</a></h2>
<h2><spanclass="section-number">1.2. </span>Powerful language<aclass="headerlink"href="#powerful-language"title="Permalink to this headline">¶</a></h2>
<p>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:</p>
<blockquote>
<div><ulclass="simple">
<li><p>Configuration can react dynamically on explored values</p></li>
<li><p>Conditional support (<strong>if, case</strong>)</p></li>
<li><p>Loop support (<strong>for, while</strong>)</p></li>
<li><p>Support for dependencies between cdist types</p></li>
</ul>
</div></blockquote>
</section>
<sectionid="more-than-shell-scripting">
<h2><spanclass="section-number">1.3. </span>More than shell scripting<aclass="headerlink"href="#more-than-shell-scripting"title="Permalink to this headline">¶</a></h2>
<p>If you compare regular shell scripting with cdist, there is one major
<h2><spanclass="section-number">1.4. </span>Zero dependency configuration management<aclass="headerlink"href="#zero-dependency-configuration-management"title="Permalink to this headline">¶</a></h2>
<p>Cdist requires very little on a target system. Even better,
in almost all cases all dependencies are usually fulfilled.
Cdist does not require an agent or high level programming
languages on the target host: it will run on any host that
has a <strong>ssh server running</strong> and a POSIX compatible shell
(<strong>/bin/sh</strong>). Compared to other configuration management systems,
it does not require to open up an additional port.</p>
</section>
<sectionid="push-based-distribution">
<h2><spanclass="section-number">1.5. </span>Push based distribution<aclass="headerlink"href="#push-based-distribution"title="Permalink to this headline">¶</a></h2>
<p>Cdist uses the push based model for configuration. In this
scenario, one (or more) computers connect to 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.</p>
<p>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.</p>
</section>
<sectionid="highly-scalable">
<h2><spanclass="section-number">1.6. </span>Highly scalable<aclass="headerlink"href="#highly-scalable"title="Permalink to this headline">¶</a></h2>
<p>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.</p>
Built with <ahref="http://sphinx-doc.org/">Sphinx</a> using a <ahref="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <ahref="https://readthedocs.org">Read the Docs</a>.