76 lines
No EOL
7.9 KiB
HTML
76 lines
No EOL
7.9 KiB
HTML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<!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>cdist-bootstrap(7)</title><link rel="stylesheet" type="text/css" href="docbook-xsl.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.78.1" /></head><body><div xml:lang="en" class="article" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="idm139864401508672"></a>cdist-bootstrap(7)</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Nico</span> <span class="surname">Schottelius</span></h3><code class="email"><<a class="email" href="mailto:nico-cdist--@--schottelius.org">nico-cdist--@--schottelius.org</a>></code></div></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="#_name">1. NAME</a></span></dt><dt><span class="section"><a href="#_introduction">2. INTRODUCTION</a></span></dt><dt><span class="section"><a href="#_location">3. LOCATION</a></span></dt><dt><span class="section"><a href="#_setup_working_directory_and_branch">4. SETUP WORKING DIRECTORY AND BRANCH</a></span></dt><dt><span class="section"><a href="#_publishing_the_configuration">5. PUBLISHING THE CONFIGURATION</a></span></dt><dt><span class="section"><a href="#_updating_from_origin">6. UPDATING FROM ORIGIN</a></span></dt><dt><span class="section"><a href="#_see_also">7. SEE ALSO</a></span></dt><dt><span class="section"><a href="#_copying">8. COPYING</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_name"></a>1. NAME</h2></div></div></div><p>cdist-bootstrap - setup cdist environment</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_introduction"></a>2. INTRODUCTION</h2></div></div></div><p>This document describes the usual steps recommended for a new
|
||
cdist setup. It is recommended that you have read and understood
|
||
cdist-quickstart(7) before digging into this.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_location"></a>3. LOCATION</h2></div></div></div><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 in is recommended, for use as backup as well to allow easy collaboration
|
||
with others.</p><p>For more sophisticated setups developing cdist configurations with multiple
|
||
people, have a look at cdist-best-practice(7).</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_setup_working_directory_and_branch"></a>4. SETUP WORKING DIRECTORY AND BRANCH</h2></div></div></div><p>I assume you have a fresh copy of the cdist tree in ~/cdist, cloned from
|
||
one of the official urls (see cdist-quickstart(7) if you don’t).
|
||
Entering the command "git branch" should show you "* master", which indicates
|
||
you are on the <span class="strong"><strong>master</strong></span> 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 <span class="strong"><strong>git branch -r</strong></span>
|
||
to list all branches:</p><pre class="screen">cdist% git branch -r
|
||
origin/1.0
|
||
origin/1.1
|
||
origin/1.2
|
||
origin/1.3
|
||
origin/1.4
|
||
origin/1.5
|
||
origin/1.6
|
||
origin/1.7
|
||
origin/2.0
|
||
origin/HEAD -> origin/master
|
||
origin/archive_shell_function_approach
|
||
origin/master</pre><p>So <span class="strong"><strong>2.0</strong></span> 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 <span class="strong"><strong>mycompany</strong></span>:</p><pre class="screen">cdist% git checkout -b mycompany origin/master
|
||
Branch mycompany set up to track remote branch master from origin.
|
||
Switched to a new branch 'mycompany'
|
||
cdist-user% git branch
|
||
master
|
||
* mycompany</pre><p>From now on, you can use git as usual to commit your changes in your own branch.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_publishing_the_configuration"></a>5. PUBLISHING THE CONFIGURATION</h2></div></div></div><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><pre class="screen"># Create bare git repository on the host named "loch"
|
||
cdist% ssh loch "GIT_DIR=/home/nutzer/cdist git init"
|
||
Initialized empty Git repository in /home/nutzer/cdist/
|
||
|
||
# Add remote git repo to git config
|
||
cdist% git remote add loch loch:/home/nutzer/cdist
|
||
|
||
# Configure the mycompany branch to push to loch
|
||
cdist% git config branch.mycompany.remote loch
|
||
|
||
# Configure mycompany branch to push into remote master branch
|
||
cdist% git config branch.mycompany.merge refs/heads/master
|
||
|
||
# Push mycompany branch to remote branch master initially
|
||
cdist% git push loch mycompany:refs/heads/master</pre><p>Now you have setup the git repository to synchronise the <span class="strong"><strong>mycompany</strong></span>
|
||
branch with the <span class="strong"><strong>master</strong></span> branch on the host <span class="strong"><strong>loch</strong></span>. Thus you can commit
|
||
as usual in your branch and push out changes by entering <span class="strong"><strong><span class="strong"><strong>git push</strong></span></strong></span>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_updating_from_origin"></a>6. UPDATING FROM ORIGIN</h2></div></div></div><p>Whenever you want to update your cdist installation, you can use git to do so:</p><pre class="screen"># Update git repository with latest changes from origin
|
||
cdist% git fetch origin
|
||
|
||
# Update current branch with master branch from origin
|
||
cdist% git merge origin/master
|
||
|
||
# Alternative: Update current branch with 2.0 branch from origin
|
||
cdist% git merge origin/2.0</pre></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_see_also"></a>7. SEE ALSO</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
|
||
cdist(1)
|
||
</li><li class="listitem">
|
||
cdist-tutorial(7)
|
||
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_copying"></a>8. COPYING</h2></div></div></div><p>Copyright (C) 2012 Nico Schottelius. Free use of this software is
|
||
granted under the terms of the GNU General Public License version 3 (GPLv3).</p></div></div></body></html> |