cdist-web/src/extra/manual/4.1.0/man7/cdist-explorer.html

368 lines
22 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>4. cdist-explorer(7) &mdash; cdist 4.1.0 documentation</title>
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="top" title="cdist 4.1.0 documentation" href="../index.html"/>
<link rel="next" title="5. cdist-hacker(7)" href="cdist-hacker.html"/>
<link rel="prev" title="3. cdist-bootstrap(7)" href="cdist-bootstrap.html"/>
<script src="../_static/js/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav" role="document">
<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.1.0
</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="../man1/cdist.html">1. cdist(1)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-best-practice.html">2. cdist-best-practice(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-bootstrap.html">3. cdist-bootstrap(7)</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">4. cdist-explorer(7)</a><ul class="simple">
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="cdist-hacker.html">5. cdist-hacker(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-manifest.html">6. cdist-manifest(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-messaging.html">7. cdist-messaging(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-quickstart.html">8. cdist-quickstart(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-reference.html">9. cdist-reference(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-remote-exec-copy.html">10. cdist-remote-exec-copy(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-stages.html">11. cdist-stages(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-troubleshooting.html">12. cdist-troubleshooting(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-tutorial.html">13. cdist-tutorial(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type.html">14. cdist-type(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__apt_key.html">15. cdist-type__apt_key(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__apt_key_uri.html">16. cdist-type__apt_key_uri(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__apt_norecommends.html">17. cdist-type__apt_norecommends(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__apt_ppa.html">18. cdist-type__apt_ppa(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__apt_source.html">19. cdist-type__apt_source(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__apt_update_index.html">20. cdist-type__apt_update_index(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__block.html">21. cdist-type__block(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__ccollect_source.html">22. cdist-type__ccollect_source(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__cdist.html">23. cdist-type__cdist(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__cdistmarker.html">24. cdist-type__cdistmarker(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__config_file.html">25. cdist-type__config_file(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__consul.html">26. cdist-type__consul(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__consul_agent.html">27. cdist-type__consul_agent(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__consul_check.html">28. cdist-type__consul_check(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__consul_reload.html">29. cdist-type__consul_reload(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__consul_service.html">30. cdist-type__consul_service(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__consul_template.html">31. cdist-type__consul_template(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__consul_template_template.html">32. cdist-type__consul_template_template(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__consul_watch_checks.html">33. cdist-type__consul_watch_checks(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__consul_watch_event.html">34. cdist-type__consul_watch_event(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__consul_watch_key.html">35. cdist-type__consul_watch_key(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__consul_watch_keyprefix.html">36. cdist-type__consul_watch_keyprefix(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__consul_watch_nodes.html">37. cdist-type__consul_watch_nodes(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__consul_watch_service.html">38. cdist-type__consul_watch_service(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__consul_watch_services.html">39. cdist-type__consul_watch_services(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__cron.html">40. cdist-type__cron(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__debconf_set_selections.html">41. cdist-type__debconf_set_selections(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__directory.html">42. cdist-type__directory(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__dog_vdi.html">43. cdist-type__dog_vdi(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__file.html">44. cdist-type__file(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__firewalld_rule.html">45. cdist-type__firewalld_rule(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__git.html">46. cdist-type__git(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__group.html">47. cdist-type__group(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__hostname.html">48. cdist-type__hostname(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__iptables_apply.html">49. cdist-type__iptables_apply(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__iptables_rule.html">50. cdist-type__iptables_rule(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__issue.html">51. cdist-type__issue(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__jail.html">52. cdist-type__jail(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__key_value.html">53. cdist-type__key_value(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__line.html">54. cdist-type__line(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__link.html">55. cdist-type__link(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__locale.html">56. cdist-type__locale(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__motd.html">57. cdist-type__motd(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__mount.html">58. cdist-type__mount(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__mysql_database.html">59. cdist-type__mysql_database(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__package.html">60. cdist-type__package(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__package_apt.html">61. cdist-type__package_apt(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__package_emerge.html">62. cdist-type__package_emerge(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__package_emerge_dependencies.html">63. cdist-type__package_emerge_dependencies(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__package_luarocks.html">64. cdist-type__package_luarocks(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__package_opkg.html">65. cdist-type__package_opkg(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__package_pacman.html">66. cdist-type__package_pacman(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__package_pip.html">67. cdist-type__package_pip(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__package_pkg_freebsd.html">68. cdist-type__package_pkg_freebsd(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__package_pkg_openbsd.html">69. cdist-type__package_pkg(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__package_pkgng_freebsd.html">70. cdist-type__package_pkgng_freebsd(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__package_rubygem.html">71. cdist-type__package_rubygem(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__package_update_index.html">72. cdist-type__package_update_index(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__package_upgrade_all.html">73. cdist-type__package_upgrade_all(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__package_yum.html">74. cdist-type__package_yum(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__package_zypper.html">75. cdist-type__package_zypper(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__pacman_conf.html">76. cdist-type__pacman_conf(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__pacman_conf_integrate.html">77. cdist-type__pacman_conf_integrate(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__pf_apply.html">78. cdist-type__pf_apply(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__pf_ruleset.html">79. cdist-type__pf_ruleset(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__postfix.html">80. cdist-type__postfix(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__postfix_master.html">81. cdist-type__postfix_master(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__postfix_postconf.html">82. cdist-type__postfix_postconf(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__postfix_postmap.html">83. cdist-type__postfix_postmap(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__postfix_reload.html">84. cdist-type__postfix_reload(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__postgres_database.html">85. cdist-type__postgres_database(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__postgres_role.html">86. cdist-type__postgres_role(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__process.html">87. cdist-type__process(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__pyvenv.html">88. cdist-type__pyvenv(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__qemu_img.html">89. cdist-type__qemu_img(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__rbenv.html">90. cdist-type__rbenv(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__rsync.html">91. cdist-type__rsync(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__rvm.html">92. cdist-type__rvm(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__rvm_gem.html">93. cdist-type__rvm_gemset(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__rvm_gemset.html">94. cdist-type__rvm_gemset(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__rvm_ruby.html">95. cdist-type__rvm_ruby(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__ssh_authorized_key.html">96. cdist-type__ssh_authorized_key(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__ssh_authorized_keys.html">97. cdist-type__ssh_authorized_keys(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__ssh_dot_ssh.html">98. cdist-type__ssh_dot_ssh(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__staged_file.html">99. cdist-type__staged_file(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__start_on_boot.html">100. cdist-type__start_on_boot(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__timezone.html">101. cdist-type__timezone(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__update_alternatives.html">102. cdist-type__update_alternatives(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__user.html">103. cdist-type__user(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__user_groups.html">104. cdist-type__user_groups(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__yum_repo.html">105. cdist-type__yum_repo(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__zypper_repo.html">106. cdist-type__zypper_repo(7)</a></li>
<li class="toctree-l1"><a class="reference internal" href="cdist-type__zypper_service.html">107. cdist-type__zypper_service(7)</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" 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>4. cdist-explorer(7)</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/man7/cdist-explorer.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-explorer-7">
<h1>4. cdist-explorer(7)<a class="headerlink" href="#cdist-explorer-7" title="Permalink to this headline"></a></h1>
<p>Explore the target systems</p>
<p>Nico Schottelius &lt;<a class="reference external" href="mailto:nico-cdist--&#37;&#52;&#48;--schottelius&#46;org">nico-cdist--<span>&#64;</span>--schottelius<span>&#46;</span>org</a>&gt;</p>
<div class="section" id="description">
<h2>4.1. DESCRIPTION<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2>
<p>Explorer are small shell scripts, which will be executed on the target
host. The aim of the explorer is to give hints to types on how to act on the
target system. An explorer outputs the result to stdout, which is usually
a one liner, but may be empty or multi line especially in the case of
type explorers.</p>
<p>There are general explorers, which are run in an early stage, and
type explorers. Both work almost exactly the same way, with the difference
that the values of the general explorers are stored in a general location and
the type specific below the object.</p>
<p>Explorers can reuse other explorers on the target system by calling</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$__explorer/&lt;explorer_name&gt; (general and type explorer)
</pre></div>
</div>
<p>or</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$__type_explorer/&lt;explorer name&gt; (type explorer).
</pre></div>
</div>
<p>In case of significant errors, the explorer may exit non-zero and return an
error message on stderr, which will cause cdist to abort.</p>
<p>You can also use stderr for debugging purposes while developing a new
explorer.</p>
</div>
<div class="section" id="examples">
<h2>4.2. EXAMPLES<a class="headerlink" href="#examples" title="Permalink to this headline"></a></h2>
<p>A very simple explorer may look like this:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">hostname</span>
</pre></div>
</div>
<p>Which is in practise the <strong>hostname</strong> explorer.</p>
<p>A type explorer, which could check for the status of a package may look like this:</p>
<div class="highlight-sh"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="o">[</span> -f <span class="s2">&quot;</span><span class="nv">$__object</span><span class="s2">/parameter/name&quot;</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
<span class="nv">name</span><span class="o">=</span><span class="s2">&quot;</span><span class="k">$(</span>cat <span class="s2">&quot;</span><span class="nv">$__object</span><span class="s2">/parameter/name&quot;</span><span class="k">)</span><span class="s2">&quot;</span>
<span class="k">else</span>
<span class="nv">name</span><span class="o">=</span><span class="s2">&quot;</span><span class="nv">$__object_id</span><span class="s2">&quot;</span>
<span class="k">fi</span>
<span class="c1"># Expect dpkg failing, if package is not known / installed</span>
dpkg -s <span class="s2">&quot;</span><span class="nv">$name</span><span class="s2">&quot;</span> 2&gt;/dev/null <span class="o">||</span> <span class="nb">exit</span> 0
</pre></div>
</div>
</div>
<div class="section" id="see-also">
<h2>4.3. SEE ALSO<a class="headerlink" href="#see-also" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><a class="reference external" href="../man1/cdist.html">cdist(1)</a></li>
<li><a class="reference external" href="cdist-reference.html">cdist-reference(7)</a></li>
<li><a class="reference external" href="cdist-stages.html">cdist-stages(7)</a></li>
</ul>
</div>
<div class="section" id="copying">
<h2>4.4. COPYING<a class="headerlink" href="#copying" title="Permalink to this headline"></a></h2>
<p>Copyright (C) 2010-2014 Nico Schottelius. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).</p>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="cdist-hacker.html" class="btn btn-neutral float-right" title="5. cdist-hacker(7)" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="cdist-bootstrap.html" class="btn btn-neutral" title="3. cdist-bootstrap(7)" accesskey="p"><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/snide/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.1.0',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true
};
</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="../_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.StickyNav.enable();
});
</script>
</body>
</html>