www.nico.schottelius.org/software/cdist/man/4.10.3/cdist-integration.html
2018-09-23 12:06:44 +02:00

293 lines
No EOL
11 KiB
HTML

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>20. cdist integration / using cdist as library &mdash; cdist 4.10.3 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="21. Reference" href="cdist-reference.html" />
<link rel="prev" title="19. Inventory" href="cdist-inventory.html" />
<script src="_static/js/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href="index.html" class="icon icon-home"> cdist
</a>
<div class="version">
4.10.3
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="cdist-intro.html">1. cdist - usable configuration management</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-why.html">2. Why should I use cdist?</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-os.html">3. Supported Operating Systems</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-install.html">4. How to install cdist</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-update.html">5. How to update cdist</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-support.html">6. Support</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-features.html">7. Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-quickstart.html">8. Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-real-world.html">9. Dive into real world cdist</a></li>
<li class="toctree-l1"><a class="reference internal" href="man1/cdist.html">10. cdist(1)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-bootstrap.html">11. Bootstrap</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-configuration.html">12. Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-manifest.html">13. Manifest</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type.html">14. cdist type</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-types.html">15. cdist types</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-explorer.html">16. Explorer</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-messaging.html">17. Messaging</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-parallelization.html">18. Parallelization</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-inventory.html">19. Inventory</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">20. cdist integration / using cdist as library</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#description">20.1. Description</a></li>
<li class="toctree-l2"><a class="reference internal" href="#examples">20.2. Examples</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="cdist-reference.html">21. Reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-best-practice.html">22. Best practice</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-stages.html">23. Execution stages</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-cache.html">24. Local cache overview</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-saving-output-streams.html">25. Saving output streams</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-remote-exec-copy.html">26. Remote exec and copy commands</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-hacker.html">27. Hacking</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-troubleshooting.html">28. Troubleshooting</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">cdist</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li>20. cdist integration / using cdist as library</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-integration.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="cdist-integration-using-cdist-as-library">
<h1>20. cdist integration / using cdist as library<a class="headerlink" href="#cdist-integration-using-cdist-as-library" title="Permalink to this headline"></a></h1>
<div class="section" id="description">
<h2>20.1. Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2>
<p>cdist can be integrate with other applications by importing cdist and other
cdist modules and setting all by hand. There are also helper functions which
aim to ease this integration. Just import <strong>cdist.integration</strong> and use its
functions:</p>
<ul class="simple">
<li><strong>cdist.integration.configure_hosts_simple</strong> for configuration</li>
<li><strong>cdist.integration.install_hosts_simple</strong> for installation.</li>
</ul>
<p>Functions require <cite>host</cite> and <cite>manifest</cite> parameters.
<cite>host</cite> can be specified as a string representing host or as iterable
of hosts. <cite>manifest</cite> is a path to initial manifest. For other cdist
options default values will be used. <cite>verbose</cite> is a desired verbosity
level which defaults to VERBOSE_INFO. <cite>cdist_path</cite> parameter specifies
path to cdist executable, if it is <cite>None</cite> then functions will try to
find it first from local lib directory and then in PATH.</p>
<p>In case of cdist error <strong>cdist.Error</strong> exception is raised.</p>
<p><strong>WARNING</strong>: cdist integration helper functions are not yet stable!</p>
</div>
<div class="section" id="examples">
<h2>20.2. Examples<a class="headerlink" href="#examples" title="Permalink to this headline"></a></h2>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="c1"># configure host from python interactive shell</span>
&gt;&gt;&gt; import cdist.integration
&gt;&gt;&gt; cdist.integration.configure_hosts_simple<span class="o">(</span><span class="s1">&#39;185.203.114.185&#39;</span>,
... <span class="s1">&#39;~/.cdist/manifest/init&#39;</span><span class="o">)</span>
<span class="c1"># configure host from python interactive shell, specifying verbosity level</span>
&gt;&gt;&gt; import cdist.integration
&gt;&gt;&gt; cdist.integration.configure_hosts_simple<span class="o">(</span>
... <span class="s1">&#39;185.203.114.185&#39;</span>, <span class="s1">&#39;~/.cdist/manifest/init&#39;</span>,
... <span class="nv">verbose</span><span class="o">=</span>cdist.argparse.VERBOSE_TRACE<span class="o">)</span>
<span class="c1"># configure specified dns hosts from python interactive shell</span>
&gt;&gt;&gt; import cdist.integration
&gt;&gt;&gt; <span class="nv">hosts</span> <span class="o">=</span> <span class="o">(</span><span class="s1">&#39;dns1.ungleich.ch&#39;</span>, <span class="s1">&#39;dns2.ungleich.ch&#39;</span>, <span class="s1">&#39;dns3.ungleich.ch&#39;</span>, <span class="o">)</span>
&gt;&gt;&gt; cdist.integration.configure_hosts_simple<span class="o">(</span>hosts,
... <span class="s1">&#39;~/.cdist/manifest/init&#39;</span><span class="o">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="cdist-reference.html" class="btn btn-neutral float-right" title="21. Reference" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="cdist-inventory.html" class="btn btn-neutral" title="19. Inventory" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright .
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'4.10.3',
LANGUAGE:'None',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>