335 lines
17 KiB
HTML
335 lines
17 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>10. Bootstrap — cdist 4.2.1 documentation</title>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<link rel="top" title="cdist 4.2.1 documentation" href="index.html"/>
|
||
|
<link rel="next" title="11. Manifest" href="cdist-manifest.html"/>
|
||
|
<link rel="prev" title="9. cdist(1)" href="man1/cdist.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.2.1
|
||
|
</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="man1/cdist.html">9. cdist(1)</a></li>
|
||
|
<li class="toctree-l1 current"><a class="current reference internal" href="#">10. Bootstrap</a><ul>
|
||
|
<li class="toctree-l2"><a class="reference internal" href="#location">10.1. Location</a></li>
|
||
|
<li class="toctree-l2"><a class="reference internal" href="#setup-working-directory-and-branch">10.2. Setup working directory and branch</a></li>
|
||
|
<li class="toctree-l2"><a class="reference internal" href="#publishing-the-configuration">10.3. Publishing the configuration</a></li>
|
||
|
<li class="toctree-l2"><a class="reference internal" href="#updating-from-origin">10.4. Updating from origin</a></li>
|
||
|
</ul>
|
||
|
</li>
|
||
|
<li class="toctree-l1"><a class="reference internal" href="cdist-manifest.html">11. Manifest</a></li>
|
||
|
<li class="toctree-l1"><a class="reference internal" href="cdist-type.html">12. cdist type</a></li>
|
||
|
<li class="toctree-l1"><a class="reference internal" href="cdist-types.html">13. cdist types</a></li>
|
||
|
<li class="toctree-l1"><a class="reference internal" href="cdist-explorer.html">14. Explorer</a></li>
|
||
|
<li class="toctree-l1"><a class="reference internal" href="cdist-messaging.html">15. Messaging</a></li>
|
||
|
<li class="toctree-l1"><a class="reference internal" href="cdist-reference.html">16. Reference</a></li>
|
||
|
<li class="toctree-l1"><a class="reference internal" href="cdist-best-practice.html">17. Best practice</a></li>
|
||
|
<li class="toctree-l1"><a class="reference internal" href="cdist-stages.html">18. Execution stages</a></li>
|
||
|
<li class="toctree-l1"><a class="reference internal" href="cdist-remote-exec-copy.html">19. Remote exec and copy commands</a></li>
|
||
|
<li class="toctree-l1"><a class="reference internal" href="cdist-hacker.html">20. Hacking</a></li>
|
||
|
<li class="toctree-l1"><a class="reference internal" href="cdist-troubleshooting.html">21. Troubleshooting</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> »</li>
|
||
|
|
||
|
<li>10. Bootstrap</li>
|
||
|
<li class="wy-breadcrumbs-aside">
|
||
|
|
||
|
|
||
|
<a href="_sources/cdist-bootstrap.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="bootstrap">
|
||
|
<h1>10. Bootstrap<a class="headerlink" href="#bootstrap" title="Permalink to this headline">¶</a></h1>
|
||
|
<p>This document describes the usual steps recommended for a new
|
||
|
cdist setup. It is recommended that you have read and understood
|
||
|
<a class="reference external" href="cdist-quickstart.html">cdist quickstart</a> before digging into this.</p>
|
||
|
<div class="section" id="location">
|
||
|
<h2>10.1. Location<a class="headerlink" href="#location" title="Permalink to this headline">¶</a></h2>
|
||
|
<p>First of all, you should think about where to store your configuration
|
||
|
database and who will be accessing or changing it. Secondly you have to
|
||
|
think about where to configure your hosts from, which may be a different
|
||
|
location.</p>
|
||
|
<p>For starters, having cdist (which includes the configuration database) on
|
||
|
your notebook should be fine.
|
||
|
Additionally an external copy of the git repository the configuration
|
||
|
relies on is recommended, for use as backup as well as to allow easy collaboration
|
||
|
with others.</p>
|
||
|
<p>For more sophisticated setups developing cdist configurations with multiple
|
||
|
people, have a look at <a class="reference external" href="cdist-best-practice.html">cdist best practice</a>.</p>
|
||
|
</div>
|
||
|
<div class="section" id="setup-working-directory-and-branch">
|
||
|
<h2>10.2. Setup working directory and branch<a class="headerlink" href="#setup-working-directory-and-branch" title="Permalink to this headline">¶</a></h2>
|
||
|
<p>I assume you have a fresh copy of the cdist tree in ~/cdist, cloned from
|
||
|
one of the official urls (see <a class="reference external" href="cdist-quickstart.html">cdist quickstart</a> if you don’t).
|
||
|
Entering the command “git branch” should show you “* master”, which indicates
|
||
|
you are on the <strong>master</strong> branch.</p>
|
||
|
<p>The master branch reflects the latest development of cdist. As this is the
|
||
|
development branch, it may or may not work. There are also version branches
|
||
|
available, which are kept in a stable state. Let’s use <strong>git branch -r</strong>
|
||
|
to list all branches:</p>
|
||
|
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">cdist</span><span class="o">%</span> <span class="n">git</span> <span class="n">branch</span> <span class="o">-</span><span class="n">r</span>
|
||
|
<span class="n">origin</span><span class="o">/</span><span class="mf">1.0</span>
|
||
|
<span class="n">origin</span><span class="o">/</span><span class="mf">1.1</span>
|
||
|
<span class="n">origin</span><span class="o">/</span><span class="mf">1.2</span>
|
||
|
<span class="n">origin</span><span class="o">/</span><span class="mf">1.3</span>
|
||
|
<span class="n">origin</span><span class="o">/</span><span class="mf">1.4</span>
|
||
|
<span class="n">origin</span><span class="o">/</span><span class="mf">1.5</span>
|
||
|
<span class="n">origin</span><span class="o">/</span><span class="mf">1.6</span>
|
||
|
<span class="n">origin</span><span class="o">/</span><span class="mf">1.7</span>
|
||
|
<span class="n">origin</span><span class="o">/</span><span class="mf">2.0</span>
|
||
|
<span class="n">origin</span><span class="o">/</span><span class="n">HEAD</span> <span class="o">-></span> <span class="n">origin</span><span class="o">/</span><span class="n">master</span>
|
||
|
<span class="n">origin</span><span class="o">/</span><span class="n">archive_shell_function_approach</span>
|
||
|
<span class="n">origin</span><span class="o">/</span><span class="n">master</span>
|
||
|
</pre></div>
|
||
|
</div>
|
||
|
<p>So <strong>2.0</strong> is the latest version branch in this example.
|
||
|
All versions (2.0.x) within one version branch (2.0) are compatible to each
|
||
|
other and won’t break your configuration when updating.</p>
|
||
|
<p>It’s up to you to decide which branch you want to base your own work on:
|
||
|
master contains more recent changes, newer types, but may also break.
|
||
|
The version branches are stable, but may lack the latest features.
|
||
|
Your decision can be changed later on, but may result in merge conflicts,
|
||
|
which you will need to solve.</p>
|
||
|
<p>Let’s assume you want latest stuff and select the master branch as base for
|
||
|
your own work. Now it’s time to create your branch, which contains your
|
||
|
local changes. I usually name it by the company/area I am working for:
|
||
|
ethz-systems, localch, customerX, ... But this is pretty much up to you.</p>
|
||
|
<p>In this tutorial I use the branch <strong>mycompany</strong>:</p>
|
||
|
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">cdist</span><span class="o">%</span> <span class="n">git</span> <span class="n">checkout</span> <span class="o">-</span><span class="n">b</span> <span class="n">mycompany</span> <span class="n">origin</span><span class="o">/</span><span class="n">master</span>
|
||
|
<span class="n">Branch</span> <span class="n">mycompany</span> <span class="nb">set</span> <span class="n">up</span> <span class="n">to</span> <span class="n">track</span> <span class="n">remote</span> <span class="n">branch</span> <span class="n">master</span> <span class="kn">from</span> <span class="nn">origin.</span>
|
||
|
<span class="n">Switched</span> <span class="n">to</span> <span class="n">a</span> <span class="n">new</span> <span class="n">branch</span> <span class="s1">'mycompany'</span>
|
||
|
<span class="n">cdist</span><span class="o">-</span><span class="n">user</span><span class="o">%</span> <span class="n">git</span> <span class="n">branch</span>
|
||
|
<span class="n">master</span>
|
||
|
<span class="o">*</span> <span class="n">mycompany</span>
|
||
|
</pre></div>
|
||
|
</div>
|
||
|
<p>From now on, you can use git as usual to commit your changes in your own branch.</p>
|
||
|
</div>
|
||
|
<div class="section" id="publishing-the-configuration">
|
||
|
<h2>10.3. Publishing the configuration<a class="headerlink" href="#publishing-the-configuration" title="Permalink to this headline">¶</a></h2>
|
||
|
<p>Usually a development machine like a notebook should be considered
|
||
|
temporary only. For this reason and to enable shareability, the configuration
|
||
|
should be published to another device as early as possible. The following
|
||
|
example shows how to publish the configuration to another host that is
|
||
|
reachable via ssh and has git installed:</p>
|
||
|
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="c1"># Create bare git repository on the host named "loch"</span>
|
||
|
<span class="n">cdist</span><span class="o">%</span> <span class="n">ssh</span> <span class="n">loch</span> <span class="s2">"GIT_DIR=/home/nutzer/cdist git init"</span>
|
||
|
<span class="n">Initialized</span> <span class="n">empty</span> <span class="n">Git</span> <span class="n">repository</span> <span class="ow">in</span> <span class="o">/</span><span class="n">home</span><span class="o">/</span><span class="n">nutzer</span><span class="o">/</span><span class="n">cdist</span><span class="o">/</span>
|
||
|
|
||
|
<span class="c1"># Add remote git repo to git config</span>
|
||
|
<span class="n">cdist</span><span class="o">%</span> <span class="n">git</span> <span class="n">remote</span> <span class="n">add</span> <span class="n">loch</span> <span class="n">loch</span><span class="p">:</span><span class="o">/</span><span class="n">home</span><span class="o">/</span><span class="n">nutzer</span><span class="o">/</span><span class="n">cdist</span>
|
||
|
|
||
|
<span class="c1"># Configure the mycompany branch to push to loch</span>
|
||
|
<span class="n">cdist</span><span class="o">%</span> <span class="n">git</span> <span class="n">config</span> <span class="n">branch</span><span class="o">.</span><span class="n">mycompany</span><span class="o">.</span><span class="n">remote</span> <span class="n">loch</span>
|
||
|
|
||
|
<span class="c1"># Configure mycompany branch to push into remote master branch</span>
|
||
|
<span class="n">cdist</span><span class="o">%</span> <span class="n">git</span> <span class="n">config</span> <span class="n">branch</span><span class="o">.</span><span class="n">mycompany</span><span class="o">.</span><span class="n">merge</span> <span class="n">refs</span><span class="o">/</span><span class="n">heads</span><span class="o">/</span><span class="n">master</span>
|
||
|
|
||
|
<span class="c1"># Push mycompany branch to remote branch master initially</span>
|
||
|
<span class="n">cdist</span><span class="o">%</span> <span class="n">git</span> <span class="n">push</span> <span class="n">loch</span> <span class="n">mycompany</span><span class="p">:</span><span class="n">refs</span><span class="o">/</span><span class="n">heads</span><span class="o">/</span><span class="n">master</span>
|
||
|
</pre></div>
|
||
|
</div>
|
||
|
<p>Now you have setup the git repository to synchronise the <strong>mycompany</strong>
|
||
|
branch with the <strong>master</strong> branch on the host <strong>loch</strong>. Thus you can commit
|
||
|
as usual in your branch and push out changes by entering <strong>git push</strong>.</p>
|
||
|
</div>
|
||
|
<div class="section" id="updating-from-origin">
|
||
|
<h2>10.4. Updating from origin<a class="headerlink" href="#updating-from-origin" title="Permalink to this headline">¶</a></h2>
|
||
|
<p>Whenever you want to update your cdist installation, you can use git to do so:</p>
|
||
|
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="c1"># Update git repository with latest changes from origin</span>
|
||
|
<span class="n">cdist</span><span class="o">%</span> <span class="n">git</span> <span class="n">fetch</span> <span class="n">origin</span>
|
||
|
|
||
|
<span class="c1"># Update current branch with master branch from origin</span>
|
||
|
<span class="n">cdist</span><span class="o">%</span> <span class="n">git</span> <span class="n">merge</span> <span class="n">origin</span><span class="o">/</span><span class="n">master</span>
|
||
|
|
||
|
<span class="c1"># Alternative: Update current branch with 2.0 branch from origin</span>
|
||
|
<span class="n">cdist</span><span class="o">%</span> <span class="n">git</span> <span class="n">merge</span> <span class="n">origin</span><span class="o">/</span><span class="mf">2.0</span>
|
||
|
</pre></div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
</div>
|
||
|
</div>
|
||
|
<footer>
|
||
|
|
||
|
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
|
||
|
|
||
|
<a href="cdist-manifest.html" class="btn btn-neutral float-right" title="11. Manifest" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
|
||
|
|
||
|
|
||
|
<a href="man1/cdist.html" class="btn btn-neutral" title="9. cdist(1)" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
|
||
|
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<hr/>
|
||
|
|
||
|
<div role="contentinfo">
|
||
|
<p>
|
||
|
© 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.2.1',
|
||
|
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>
|