<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>The Bcfg2 Client — Bcfg2 1.3.0 documentation</title> <link rel="stylesheet" href="../_static/default.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', VERSION: '1.3.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/sidebar.js"></script> <link rel="shortcut icon" href="../_static/favicon.ico"/> <link rel="top" title="Bcfg2 1.3.0 documentation" href="../index.html" /> <link rel="up" title="Bcfg2 documentation 1.3.0" href="../contents.html" /> <link rel="next" title="Client modes" href="modes.html" /> <link rel="prev" title="Genshi XML Template Reference" href="../server/genshi-xml.html" /> <link rel="stylesheet" href="../_static/bcfg2.css" type=""/> </head> <body> <div style="text-align: left; padding: 10px 10px 15px 15px"> <a href="../index.html"><img src="../_static/bcfg2_logo.png" border="0" alt="sampledoc"/></a> </div> <div class="related"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> <li class="right" > <a href="../py-modindex.html" title="Python Module Index" >modules</a> |</li> <li class="right" > <a href="modes.html" title="Client modes" accesskey="N">next</a> |</li> <li class="right" > <a href="../server/genshi-xml.html" title="Genshi XML Template Reference" accesskey="P">previous</a> |</li> <li><a href="../index.html">home</a> | </li> <!--<li><a href="../search.html">search</a> | </li>--> <li><a href="../help/index.html">help</a> | </li> <li><a href="../contents.html">documentation </a> »</li> <li><a href="../contents.html" accesskey="U">Bcfg2 documentation 1.3.0</a> »</li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body"> <div class="section" id="the-bcfg2-client"> <span id="client-index"></span><h1>The Bcfg2 Client<a class="headerlink" href="#the-bcfg2-client" title="Permalink to this headline">ΒΆ</a></h1> <p>The Bcfg2 client attempts to reconcile the current configuration state with the configuration passed down from the server using various client tools. It does not perform any processing of the target configuration description. We chose this architecture, as opposed to one with a smarter client, for a few reasons:</p> <ul class="simple"> <li>Client failure forces administrators to perform an O(n) reconfiguration operation. Simpler code is easier to debug and maintain.</li> <li>Minimize the bootstrap size; a complicated client can require more aspects of the system to function in order for reconfiguration to work.</li> <li>Isolate configuration generation functionality on the server, where it can be readily observed. This is the most complicated task that Bcfg2 performs.</li> <li>The results of the configuration process fit a fairly simple model. We wanted to validate it. The result is that Bcfg2 has a programmable deployment engine that can be driven by anything that writes a compatible configuration description.</li> </ul> <div class="toctree-wrapper compound"> <ul> <li class="toctree-l1"><a class="reference internal" href="modes.html">Client modes</a><ul> <li class="toctree-l2"><a class="reference internal" href="modes.html#dryrun-mode">Dryrun mode</a></li> <li class="toctree-l2"><a class="reference internal" href="modes.html#interactive-mode">Interactive mode</a></li> <li class="toctree-l2"><a class="reference internal" href="modes.html#paranoid-mode">Paranoid mode</a></li> <li class="toctree-l2"><a class="reference internal" href="modes.html#overall-client-service-mode">Overall client service mode</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="tools.html">Client Tool Drivers</a><ul> <li class="toctree-l2"><a class="reference internal" href="tools/actions.html">Actions</a></li> <li class="toctree-l2"><a class="reference internal" href="tools/apt.html">APT Client Tool</a></li> <li class="toctree-l2"><a class="reference internal" href="tools/posixusers.html">POSIXUsers</a></li> <li class="toctree-l2"><a class="reference internal" href="tools/vcs.html">VCS Client Tool</a></li> <li class="toctree-l2"><a class="reference internal" href="tools/yum.html">Bcfg2 RPM/YUM Client Drivers</a></li> <li class="toctree-l2"><a class="reference internal" href="tools.html#action">Action</a></li> <li class="toctree-l2"><a class="reference internal" href="tools.html#apk">APK</a></li> <li class="toctree-l2"><a class="reference internal" href="tools.html#apt">APT</a></li> <li class="toctree-l2"><a class="reference internal" href="tools.html#blast">Blast</a></li> <li class="toctree-l2"><a class="reference internal" href="tools.html#chkconfig">Chkconfig</a></li> <li class="toctree-l2"><a class="reference internal" href="tools.html#debinit">DebInit</a></li> <li class="toctree-l2"><a class="reference internal" href="tools.html#encap">Encap</a></li> <li class="toctree-l2"><a class="reference internal" href="tools.html#freebsdinit">FreeBSDInit</a></li> <li class="toctree-l2"><a class="reference internal" href="tools.html#freebsdpackage">FreeBSDPackage</a></li> <li class="toctree-l2"><a class="reference internal" href="tools.html#launchd">launchd</a></li> <li class="toctree-l2"><a class="reference internal" href="tools.html#portage">Portage</a></li> <li class="toctree-l2"><a class="reference internal" href="tools.html#posix">POSIX</a></li> <li class="toctree-l2"><a class="reference internal" href="tools.html#rcupdate">RcUpdate</a></li> <li class="toctree-l2"><a class="reference internal" href="tools.html#rpm">RPM</a></li> <li class="toctree-l2"><a class="reference internal" href="tools.html#smf">SMF</a></li> <li class="toctree-l2"><a class="reference internal" href="tools.html#systemd">Systemd</a></li> <li class="toctree-l2"><a class="reference internal" href="tools.html#sysv">SYSV</a></li> <li class="toctree-l2"><a class="reference internal" href="tools.html#upstart">Upstart</a></li> <li class="toctree-l2"><a class="reference internal" href="tools.html#yum">YUM</a></li> <li class="toctree-l2"><a class="reference internal" href="tools.html#yum24">YUM24</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="metadata.html">Client Metadata</a><ul> <li class="toctree-l2"><a class="reference internal" href="metadata.html#construction">Construction</a></li> <li class="toctree-l2"><a class="reference internal" href="metadata.html#contents">Contents</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="agent.html">Agent Functionality using SSH</a><ul> <li class="toctree-l2"><a class="reference internal" href="agent.html#see-also">See Also</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="debugging.html">Client Debugging</a></li> </ul> </div> </div> </div> </div> </div> <div class="sphinxsidebar"> <div class="sphinxsidebarwrapper"> <h4>Previous topic</h4> <p class="topless"><a href="../server/genshi-xml.html" title="previous chapter">Genshi XML Template Reference</a></p> <h4>Next topic</h4> <p class="topless"><a href="modes.html" title="next chapter">Client modes</a></p> <h3>This Page</h3> <ul class="this-page-menu"> <li><a href="../_sources/client/index.txt" rel="nofollow">Show Source</a></li> </ul> <div id="searchbox" style="display: none"> <h3>Quick search</h3> <form class="search" action="../search.html" method="get"> <input type="text" name="q" /> <input type="submit" value="Go" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> <p class="searchtip" style="font-size: 90%"> Enter search terms or a module, class or function name. </p> </div> <script type="text/javascript">$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> </div> <div class="related"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> <li class="right" > <a href="../py-modindex.html" title="Python Module Index" >modules</a> |</li> <li class="right" > <a href="modes.html" title="Client modes" >next</a> |</li> <li class="right" > <a href="../server/genshi-xml.html" title="Genshi XML Template Reference" >previous</a> |</li> <li><a href="../index.html">home</a> | </li> <!--<li><a href="../search.html">search</a> | </li>--> <li><a href="../help/index.html">help</a> | </li> <li><a href="../contents.html">documentation </a> »</li> <li><a href="../contents.html" >Bcfg2 documentation 1.3.0</a> »</li> </ul> </div> <div class="footer"> © Copyright 2009-2013, Narayan Desai. Last updated on Mar 20, 2013. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3. </div> </body> </html>