Update cdist beta docs

This commit is contained in:
Darko Poljak 2021-08-24 20:42:27 +02:00
parent e22a8731c4
commit a68a2efa1b
241 changed files with 45779 additions and 41139 deletions

View file

@ -12,7 +12,7 @@ This is the machine from which you will configure target hosts.
* /bin/sh: A POSIX like shell (for instance bash, dash, zsh)
* Python >= 3.5
* SSH client
* sphinx (for building html docs and/or the man pages)
* sphinx with the rtd theme (for building html docs and/or the man pages)
Target Hosts
~~~~~~~~~~~~

View file

@ -143,6 +143,7 @@ The following types are available:
- __apt_key_uri (`cdist-type__apt_key_uri(7) <man7/cdist-type__apt_key_uri.html>`_)
- __apt_mark (`cdist-type__apt_mark(7) <man7/cdist-type__apt_mark.html>`_)
- __apt_norecommends (`cdist-type__apt_norecommends(7) <man7/cdist-type__apt_norecommends.html>`_)
- __apt_pin (`cdist-type__apt_pin(7) <man7/cdist-type__apt_pin.html>`_)
- __apt_ppa (`cdist-type__apt_ppa(7) <man7/cdist-type__apt_ppa.html>`_)
- __apt_source (`cdist-type__apt_source(7) <man7/cdist-type__apt_source.html>`_)
- __apt_unattended_upgrades (`cdist-type__apt_unattended_upgrades(7) <man7/cdist-type__apt_unattended_upgrades.html>`_)

View file

@ -57,6 +57,7 @@ resolved name to stdout - if any. The script must be executable.
Simplest script:
.. code-block:: sh
#!/bin/sh
case "$1" in
@ -71,6 +72,7 @@ Simplest script:
Resolving name from `PTR` DNS record:
.. code-block:: sh
#!/bin/sh
for cmd in dig sed; do

View file

@ -11,6 +11,7 @@ cdist types
__apt_key_uri <man7/cdist-type__apt_key_uri>
__apt_mark <man7/cdist-type__apt_mark>
__apt_norecommends <man7/cdist-type__apt_norecommends>
__apt_pin <man7/cdist-type__apt_pin>
__apt_ppa <man7/cdist-type__apt_ppa>
__apt_source <man7/cdist-type__apt_source>
__apt_unattended_upgrades <man7/cdist-type__apt_unattended_upgrades>

View file

@ -0,0 +1,79 @@
cdist-type__apt_pin(7)
======================
NAME
----
cdist-type__apt_pin - Manage apt pinning rules
DESCRIPTION
-----------
Adds/removes/edits rules to pin some packages to a specific distribution. Useful if using multiple debian repositories at the same time. (Useful, if one wants to use a few specific packages from backports or perhaps Debain testing... or even sid.)
REQUIRED PARAMETERS
-------------------
distribution
Specifies what distribution the package should be pinned to. Accepts both codenames (buster/bullseye/sid) and suite names (stable/testing/...).
OPTIONAL PARAMETERS
-------------------
package
Package name, glob or regular expression to match (multiple) packages. If not specified `__object_id` is used.
priority
The priority value to assign to matching packages. Deafults to 500. (To match the default target distro's priority)
state
Will be passed to underlying `__file` type; see there for valid values and defaults.
BOOLEAN PARAMETERS
------------------
None.
EXAMPLES
--------
.. code-block:: sh
# Add the bullseye repo to buster, but do not install any packages by default,
# only if explicitely asked for (-1 means "never" for apt)
__apt_pin bullseye-default \
--package "*" \
--distribution bullseye \
--priority -1
require="__apt_pin/bullseye-default" __apt_source bullseye \
--uri http://deb.debian.org/debian/ \
--distribution bullseye \
--component main
__apt_pin foo --package "foo foo-*" --distribution bullseye
__foo # Assuming, this installs the `foo` package internally
__package foo-plugin-extras # Assuming we also need some extra stuff
SEE ALSO
--------
:strong:`apt_preferences`\ (5)
:strong:`cdist-type__apt_source`\ (7)
:strong:`cdist-type__apt_backports`\ (7)
:strong:`cdist-type__file`\ (7)
AUTHORS
-------
Daniel Fancsali <fancsali@gmail.com>
COPYING
-------
Copyright \(C) 2021 Daniel Fancsali. You can redistribute it
and/or modify it under the terms of the GNU General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

View file

@ -3,112 +3,73 @@ cdist-type__rsync(7)
NAME
----
cdist-type__rsync - Mirror directories using rsync
cdist-type__rsync - Mirror directories using ``rsync``
DESCRIPTION
-----------
WARNING: This type is of BETA quality:
- it has not been tested widely
- interfaces *may* change
- if there is a better approach to solve the problem -> the type may even vanish
If you are fine with these constraints, please read on.
This cdist type allows you to mirror local directories to the
target host using rsync. Rsync will be installed in the manifest of the type.
If group or owner are giveng, a recursive chown will be executed on the
target host.
A slash will be appended to the source directory so that only the contents
of the directory are taken and not the directory name itself.
The purpose of this type is to bring power of ``rsync`` into ``cdist``.
REQUIRED PARAMETERS
-------------------
source
Where to take files from
Source directory in local machine.
If source is directory, slash (``/``) will be added to source and destination paths.
OPTIONAL PARAMETERS
-------------------
group
Group to chgrp to.
destination
Destination directory. Defaults to ``$__object_id``.
owner
User to chown to.
Will be passed to ``rsync`` as ``--chown=OWNER``.
Read ``rsync(1)`` for more details.
destination
Use this as the base destination instead of the object id
group
Will be passed to ``rsync`` as ``--chown=:GROUP``.
Read ``rsync(1)`` for more details.
mode
Will be passed to ``rsync`` as ``--chmod=MODE``.
Read ``rsync(1)`` for more details.
options
Defaults to ``--recursive --links --perms --times``.
Due to `bug in Python's argparse<https://bugs.python.org/issue9334>`_, value must be prefixed with ``\``.
remote-user
Use this user instead of the default "root" for rsync operations.
Defaults to ``root``.
OPTIONAL MULTIPLE PARAMETERS
----------------------------
rsync-opts
Use this option to give rsync options with.
See rsync(1) for available options.
Only "--" options are supported.
Write the options without the beginning "--"
Can be specified multiple times.
MESSAGES
--------
NONE
option
Pass additional options to ``rsync``.
See ``rsync(1)`` for all possible options.
Due to `bug in Python's argparse<https://bugs.python.org/issue9334>`_, value must be prefixed with ``\``.
EXAMPLES
--------
.. code-block:: sh
# You can use any source directory
__rsync /tmp/testdir \
--source /etc
# Use source from type
__rsync /etc \
--source "$__type/files/package"
# Allow multiple __rsync objects to write to the same dir
__rsync mystuff \
--destination /usr/local/bin \
--source "$__type/files/package"
__rsync otherstuff \
--destination /usr/local/bin \
--source "$__type/files/package2"
# Use rsync option --exclude
__rsync /tmp/testdir \
--source /etc \
--rsync-opts exclude=sshd_conf
# Use rsync with multiple options --exclude --dry-run
__rsync /tmp/testing \
--source /home/tester \
--rsync-opts exclude=id_rsa \
--rsync-opts dry-run
SEE ALSO
--------
:strong:`rsync`\ (1)
__rsync /var/www/example.com \
--owner root \
--group www-data \
--mode 'D750,F640' \
--source "$__files/example.com/www"
AUTHORS
-------
Nico Schottelius <nico-cdist--@--schottelius.org>
Ander Punnar <ander-at-kvlt-dot-ee>
COPYING
-------
Copyright \(C) 2015 Nico Schottelius. You can redistribute it
and/or modify it under the terms of the GNU General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
Copyright \(C) 2021 Ander Punnar. You can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option)
any later version.

View file

@ -38,6 +38,7 @@ cert-path
EXAMPLES
--------
.. code-block:: sh
__snakeoil_cert localhost-rsa \
--common-name localhost \
--key-type rsa:4096

View file

@ -1 +1 @@
.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-weight:normal;font-style:normal;src:url("../fonts/fontawesome-webfont.eot");src:url("../fonts/fontawesome-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff") format("woff"),url("../fonts/fontawesome-webfont.ttf") format("truetype"),url("../fonts/fontawesome-webfont.svg#FontAwesome") format("svg")}.fa:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa{display:inline-block;text-decoration:inherit}li .fa{display:inline-block}li .fa-large:before,li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-0.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before,ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before{content:""}.icon-book:before{content:""}.fa-caret-down:before{content:""}.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.icon-caret-up:before{content:""}.fa-caret-left:before{content:""}.icon-caret-left:before{content:""}.fa-caret-right:before{content:""}.icon-caret-right:before{content:""}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#2980B9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}
.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 434 KiB

Binary file not shown.

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,6 @@
var DOCUMENTATION_OPTIONS = {
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
VERSION: '6.9.7',
VERSION: '6.9.8',
LANGUAGE: 'None',
COLLAPSE_INDEX: false,
BUILDER: 'html',

Binary file not shown.

View file

@ -0,0 +1 @@
!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=4)}({4:function(e,t,r){}});

View file

@ -0,0 +1,4 @@
/**
* @preserve HTML5 Shiv 3.7.3-pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/
!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document);

View file

@ -0,0 +1,4 @@
/**
* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/
!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3-pre",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document);

View file

@ -1,3 +1 @@
/* sphinx_rtd_theme version 0.4.3 | MIT license */
/* Built 20190212 16:02 */
require=function r(s,a,l){function c(e,n){if(!a[e]){if(!s[e]){var i="function"==typeof require&&require;if(!n&&i)return i(e,!0);if(u)return u(e,!0);var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}var o=a[e]={exports:{}};s[e][0].call(o.exports,function(n){return c(s[e][1][n]||n)},o,o.exports,r,s,a,l)}return a[e].exports}for(var u="function"==typeof require&&require,n=0;n<l.length;n++)c(l[n]);return c}({"sphinx-rtd-theme":[function(n,e,i){var jQuery="undefined"!=typeof window?window.jQuery:n("jquery");e.exports.ThemeNav={navBar:null,win:null,winScroll:!1,winResize:!1,linkScroll:!1,winPosition:0,winHeight:null,docHeight:null,isRunning:!1,enable:function(e){var i=this;void 0===e&&(e=!0),i.isRunning||(i.isRunning=!0,jQuery(function(n){i.init(n),i.reset(),i.win.on("hashchange",i.reset),e&&i.win.on("scroll",function(){i.linkScroll||i.winScroll||(i.winScroll=!0,requestAnimationFrame(function(){i.onScroll()}))}),i.win.on("resize",function(){i.winResize||(i.winResize=!0,requestAnimationFrame(function(){i.onResize()}))}),i.onResize()}))},enableSticky:function(){this.enable(!0)},init:function(i){i(document);var t=this;this.navBar=i("div.wy-side-scroll:first"),this.win=i(window),i(document).on("click","[data-toggle='wy-nav-top']",function(){i("[data-toggle='wy-nav-shift']").toggleClass("shift"),i("[data-toggle='rst-versions']").toggleClass("shift")}).on("click",".wy-menu-vertical .current ul li a",function(){var n=i(this);i("[data-toggle='wy-nav-shift']").removeClass("shift"),i("[data-toggle='rst-versions']").toggleClass("shift"),t.toggleCurrent(n),t.hashChange()}).on("click","[data-toggle='rst-current-version']",function(){i("[data-toggle='rst-versions']").toggleClass("shift-up")}),i("table.docutils:not(.field-list,.footnote,.citation)").wrap("<div class='wy-table-responsive'></div>"),i("table.docutils.footnote").wrap("<div class='wy-table-responsive footnote'></div>"),i("table.docutils.citation").wrap("<div class='wy-table-responsive citation'></div>"),i(".wy-menu-vertical ul").not(".simple").siblings("a").each(function(){var e=i(this);expand=i('<span class="toctree-expand"></span>'),expand.on("click",function(n){return t.toggleCurrent(e),n.stopPropagation(),!1}),e.prepend(expand)})},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),i=e.find('[href="'+n+'"]');if(0===i.length){var t=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(i=e.find('[href="#'+t.attr("id")+'"]')).length&&(i=e.find('[href="#"]'))}0<i.length&&($(".wy-menu-vertical .current").removeClass("current"),i.addClass("current"),i.closest("li.toctree-l1").addClass("current"),i.closest("li.toctree-l1").parent().addClass("current"),i.closest("li.toctree-l1").addClass("current"),i.closest("li.toctree-l2").addClass("current"),i.closest("li.toctree-l3").addClass("current"),i.closest("li.toctree-l4").addClass("current"),i[0].scrollIntoView())}catch(o){console.log("Error expanding nav for anchor",o)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,i=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(i),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",function(){this.linkScroll=!1})},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current"),e.siblings().find("li.current").removeClass("current"),e.find("> ul li.current").removeClass("current"),e.toggleClass("current")}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:e.exports.ThemeNav,StickyNav:e.exports.ThemeNav}),function(){for(var r=0,n=["ms","moz","webkit","o"],e=0;e<n.length&&!window.requestAnimationFrame;++e)window.requestAnimationFrame=window[n[e]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[n[e]+"CancelAnimationFrame"]||window[n[e]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(n,e){var i=(new Date).getTime(),t=Math.max(0,16-(i-r)),o=window.setTimeout(function(){n(i+t)},t);return r=i+t,o}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(n){clearTimeout(n)})}()},{jquery:"jquery"}]},{},["sphinx-rtd-theme"]);
!function(n){var e={};function t(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return n[i].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=n,t.c=e,t.d=function(n,e,i){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:i})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var i=Object.create(null);if(t.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var o in n)t.d(i,o,function(e){return n[e]}.bind(null,o));return i},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=0)}([function(n,e,t){t(1),n.exports=t(3)},function(n,e,t){(function(){var e="undefined"!=typeof window?window.jQuery:t(2);n.exports.ThemeNav={navBar:null,win:null,winScroll:!1,winResize:!1,linkScroll:!1,winPosition:0,winHeight:null,docHeight:null,isRunning:!1,enable:function(n){var t=this;void 0===n&&(n=!0),t.isRunning||(t.isRunning=!0,e((function(e){t.init(e),t.reset(),t.win.on("hashchange",t.reset),n&&t.win.on("scroll",(function(){t.linkScroll||t.winScroll||(t.winScroll=!0,requestAnimationFrame((function(){t.onScroll()})))})),t.win.on("resize",(function(){t.winResize||(t.winResize=!0,requestAnimationFrame((function(){t.onResize()})))})),t.onResize()})))},enableSticky:function(){this.enable(!0)},init:function(n){n(document);var e=this;this.navBar=n("div.wy-side-scroll:first"),this.win=n(window),n(document).on("click","[data-toggle='wy-nav-top']",(function(){n("[data-toggle='wy-nav-shift']").toggleClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift")})).on("click",".wy-menu-vertical .current ul li a",(function(){var t=n(this);n("[data-toggle='wy-nav-shift']").removeClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift"),e.toggleCurrent(t),e.hashChange()})).on("click","[data-toggle='rst-current-version']",(function(){n("[data-toggle='rst-versions']").toggleClass("shift-up")})),n("table.docutils:not(.field-list,.footnote,.citation)").wrap("<div class='wy-table-responsive'></div>"),n("table.docutils.footnote").wrap("<div class='wy-table-responsive footnote'></div>"),n("table.docutils.citation").wrap("<div class='wy-table-responsive citation'></div>"),n(".wy-menu-vertical ul").not(".simple").siblings("a").each((function(){var t=n(this);expand=n('<span class="toctree-expand"></span>'),expand.on("click",(function(n){return e.toggleCurrent(t),n.stopPropagation(),!1})),t.prepend(expand)}))},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),t=e.find('[href="'+n+'"]');if(0===t.length){var i=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(t=e.find('[href="#'+i.attr("id")+'"]')).length&&(t=e.find('[href="#"]'))}t.length>0&&($(".wy-menu-vertical .current").removeClass("current"),t.addClass("current"),t.closest("li.toctree-l1").addClass("current"),t.closest("li.toctree-l1").parent().addClass("current"),t.closest("li.toctree-l1").addClass("current"),t.closest("li.toctree-l2").addClass("current"),t.closest("li.toctree-l3").addClass("current"),t.closest("li.toctree-l4").addClass("current"),t.closest("li.toctree-l5").addClass("current"),t[0].scrollIntoView())}catch(n){console.log("Error expanding nav for anchor",n)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,t=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(t),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",(function(){this.linkScroll=!1}))},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current"),e.siblings().find("li.current").removeClass("current"),e.find("> ul li.current").removeClass("current"),e.toggleClass("current")}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:n.exports.ThemeNav,StickyNav:n.exports.ThemeNav}),function(){for(var n=0,e=["ms","moz","webkit","o"],t=0;t<e.length&&!window.requestAnimationFrame;++t)window.requestAnimationFrame=window[e[t]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e[t]+"CancelAnimationFrame"]||window[e[t]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(e,t){var i=(new Date).getTime(),o=Math.max(0,16-(i-n)),r=window.setTimeout((function(){e(i+o)}),o);return n=i+o,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(n){clearTimeout(n)})}()}).call(window)},function(n,e){n.exports=jQuery},function(n,e,t){}]);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>26. Best practice &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>26. Best practice &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="27. Execution stages" href="cdist-stages.html" />
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -141,6 +145,7 @@
</div>
</div>
</nav>
@ -175,18 +180,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">26. </span>Best practice</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-best-practice.rst.txt" rel="nofollow"> View page source</a>
@ -200,17 +207,17 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="best-practice">
<div class="section" id="best-practice">
<h1><span class="section-number">26. </span>Best practice<a class="headerlink" href="#best-practice" title="Permalink to this headline"></a></h1>
<p>Practices used in real environments</p>
<section id="passwordless-connections">
<div class="section" id="passwordless-connections">
<h2><span class="section-number">26.1. </span>Passwordless connections<a class="headerlink" href="#passwordless-connections" title="Permalink to this headline"></a></h2>
<p>It is recommended to run cdist with public key authentication.
This requires a private/public key pair and the entry
&quot;PermitRootLogin without-password&quot; in the sshd server.
See sshd_config(5) and ssh-keygen(1).</p>
</section>
<section id="speeding-up-ssh-connections">
</div>
<div class="section" id="speeding-up-ssh-connections">
<h2><span class="section-number">26.2. </span>Speeding up ssh connections<a class="headerlink" href="#speeding-up-ssh-connections" title="Permalink to this headline"></a></h2>
<p>When connecting to a new host, the initial delay with ssh connections
is pretty big. As cdist makes many connections to each host successive
@ -223,16 +230,16 @@ ControlPersist=2h</cite>).</p>
<p>Note that the sshd_config on the server can configure the maximum number of
parallel multiplexed connections this with <cite>MaxSessions N</cite> (N defaults to 10
for OpenSSH v7.4).</p>
</section>
<section id="speeding-up-shell-execution">
</div>
<div class="section" id="speeding-up-shell-execution">
<h2><span class="section-number">26.3. </span>Speeding up shell execution<a class="headerlink" href="#speeding-up-shell-execution" title="Permalink to this headline"></a></h2>
<p>On the source host, ensure that /bin/sh is <em>not</em> bash: bash is quite slow for
script execution. Instead, you could use dash after installing it:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">ln</span> <span class="o">-</span><span class="n">sf</span> <span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">dash</span> <span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">sh</span>
</pre></div>
</div>
</section>
<section id="multi-master-or-environment-setups">
</div>
<div class="section" id="multi-master-or-environment-setups">
<h2><span class="section-number">26.4. </span>Multi master or environment setups<a class="headerlink" href="#multi-master-or-environment-setups" title="Permalink to this headline"></a></h2>
<p>If you plan to distribute cdist among servers or use different
environments, you can do so easily with the included version
@ -257,8 +264,8 @@ you can clone it multiple times:</p>
<span class="n">machine</span><span class="o">-</span><span class="n">b</span> <span class="o">%</span> <span class="n">git</span> <span class="n">clone</span> <span class="n">git</span><span class="p">:</span><span class="o">//</span><span class="n">your</span><span class="o">-</span><span class="n">git</span><span class="o">-</span><span class="n">server</span><span class="o">/</span><span class="n">cdist</span>
</pre></div>
</div>
</section>
<section id="separating-work-by-groups">
</div>
<div class="section" id="separating-work-by-groups">
<h2><span class="section-number">26.5. </span>Separating work by groups<a class="headerlink" href="#separating-work-by-groups" title="Permalink to this headline"></a></h2>
<p>If you are working with different groups on one cdist-configuration,
you can delegate to other manifests and have the groups edit only
@ -270,8 +277,8 @@ their manifests. You can use the following snippet in
<span class="n">sh</span> <span class="o">-</span><span class="n">e</span> <span class="s2">&quot;$__manifest/cbrg&quot;</span>
</pre></div>
</div>
</section>
<section id="maintaining-multiple-configurations">
</div>
<div class="section" id="maintaining-multiple-configurations">
<h2><span class="section-number">26.6. </span>Maintaining multiple configurations<a class="headerlink" href="#maintaining-multiple-configurations" title="Permalink to this headline"></a></h2>
<p>When you need to manage multiple sites with cdist, like company_a, company_b
and private for instance, you can easily use git for this purpose.
@ -329,8 +336,8 @@ Including a possible common base that is reused across the different sites:</p>
</pre></div>
</div>
<p>Have a look at git-remote(1) to adjust the remote configuration, which allows</p>
</section>
<section id="multiple-developers-with-different-trust">
</div>
<div class="section" id="multiple-developers-with-different-trust">
<h2><span class="section-number">26.7. </span>Multiple developers with different trust<a class="headerlink" href="#multiple-developers-with-different-trust" title="Permalink to this headline"></a></h2>
<p>If you are working in an environment that requires different people to
work on the same configuration, but having different privileges, you can
@ -349,8 +356,8 @@ implement this scenario with a gateway host and sudo:</p>
</li>
</ul>
<p>For more details consult sudoers(5)</p>
</section>
<section id="templating">
</div>
<div class="section" id="templating">
<h2><span class="section-number">26.8. </span>Templating<a class="headerlink" href="#templating" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>create directory files/ in your type (convention)</p></li>
@ -387,8 +394,8 @@ cat <span class="s">&lt;&lt; EOF</span>
<span class="go"> --source &quot;$__object/files/basic.conf&quot;</span>
</pre></div>
</div>
</section>
<section id="testing-a-new-type">
</div>
<div class="section" id="testing-a-new-type">
<h2><span class="section-number">26.9. </span>Testing a new type<a class="headerlink" href="#testing-a-new-type" title="Permalink to this headline"></a></h2>
<p>If you want to test a new type on a node, you can tell cdist to only use an
object of this type: Use the '--initial-manifest' parameter
@ -406,8 +413,8 @@ of cdist:</p>
cdist config --initial-manifest - cdist-dev-01.ungleich.ch
</pre></div>
</div>
</section>
<section id="other-content-in-cdist-repository">
</div>
<div class="section" id="other-content-in-cdist-repository">
<h2><span class="section-number">26.10. </span>Other content in cdist repository<a class="headerlink" href="#other-content-in-cdist-repository" title="Permalink to this headline"></a></h2>
<p>Usually the cdist repository contains all configuration
items. Sometimes you may have additional resources that
@ -419,8 +426,8 @@ in the repository for such content: It allows you to
easily distinguish what is used by cdist and what is not
and also to store all important files in one
repository.</p>
</section>
<section id="notes-on-cdist-order-dependency">
</div>
<div class="section" id="notes-on-cdist-order-dependency">
<h2><span class="section-number">26.11. </span>Notes on CDIST_ORDER_DEPENDENCY<a class="headerlink" href="#notes-on-cdist-order-dependency" title="Permalink to this headline"></a></h2>
<p>With CDIST_ORDER_DEPENDENCY all types are executed in the order in which they
are created in the manifest. The current created object automatically depends
@ -428,7 +435,7 @@ on the previously created object.</p>
<p>It essentially helps you to build up blocks of code that build upon each other
(like first creating the directory xyz than the file below the directory).</p>
<p>This can be helpful, but one must be aware of its side effects.</p>
<section id="cdist-order-dependency-kills-parallelization">
<div class="section" id="cdist-order-dependency-kills-parallelization">
<h3><span class="section-number">26.11.1. </span>CDIST_ORDER_DEPENDENCY kills parallelization<a class="headerlink" href="#cdist-order-dependency-kills-parallelization" title="Permalink to this headline"></a></h3>
<p>Suppose you have defined CDIST_ORDER_DEPENDENCY and then, among other things,
you specify creation of three, by nature independent, files.</p>
@ -461,38 +468,38 @@ __file /tmp/file3
<span class="nb">unset</span> CDIST_ORDER_DEPENDENCY
</pre></div>
</div>
</section>
</section>
</section>
</div>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="cdist-stages.html" class="btn btn-neutral float-right" title="27. Execution stages" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="cdist-reference.html" class="btn btn-neutral float-left" title="25. Reference" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="cdist-stages.html" class="btn btn-neutral float-right" title="27. Execution stages" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="cdist-reference.html" class="btn btn-neutral float-left" title="25. Reference" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -501,7 +508,6 @@ __file /tmp/file3
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>12. Bootstrap &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>12. Bootstrap &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="13. Configuration" href="cdist-configuration.html" />
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -131,6 +135,7 @@
</div>
</div>
</nav>
@ -165,18 +170,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">12. </span>Bootstrap</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-bootstrap.rst.txt" rel="nofollow"> View page source</a>
@ -190,12 +197,12 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="bootstrap">
<div class="section" id="bootstrap">
<h1><span class="section-number">12. </span>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>
<section id="location">
<div class="section" id="location">
<h2><span class="section-number">12.1. </span>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
@ -208,8 +215,8 @@ relies on is recommended, for use as backup as well as to allow easy collaborati
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>
</section>
<section id="setup-working-directory-and-branch">
</div>
<div class="section" id="setup-working-directory-and-branch">
<h2><span class="section-number">12.2. </span>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).
@ -256,8 +263,8 @@ ethz-systems, localch, customerX, ... But this is pretty much up to you.</p>
</pre></div>
</div>
<p>From now on, you can use git as usual to commit your changes in your own branch.</p>
</section>
<section id="publishing-the-configuration">
</div>
<div class="section" id="publishing-the-configuration">
<h2><span class="section-number">12.3. </span>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
@ -284,8 +291,8 @@ reachable via ssh and has git installed:</p>
<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>
</section>
<section id="updating-from-origin">
</div>
<div class="section" id="updating-from-origin">
<h2><span class="section-number">12.4. </span>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 notranslate"><div class="highlight"><pre><span></span><span class="c1"># Update git repository with latest changes from origin</span>
@ -298,37 +305,37 @@ as usual in your branch and push out changes by entering <strong>git push</stron
<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>
</section>
</section>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="cdist-configuration.html" class="btn btn-neutral float-right" title="13. Configuration" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="man1/cdist-new-type.html" class="btn btn-neutral float-left" title="11. cdist-new-type(1)" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="cdist-configuration.html" class="btn btn-neutral float-right" title="13. Configuration" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="man1/cdist-new-type.html" class="btn btn-neutral float-left" title="11. cdist-new-type(1)" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -337,7 +344,6 @@ as usual in your branch and push out changes by entering <strong>git push</stron
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>28. Local cache overview &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>28. Local cache overview &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="29. Saving output streams" href="cdist-saving-output-streams.html" />
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -132,6 +136,7 @@
</div>
</div>
</nav>
@ -166,18 +171,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">28. </span>Local cache overview</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-cache.rst.txt" rel="nofollow"> View page source</a>
@ -191,9 +198,9 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="local-cache-overview">
<div class="section" id="local-cache-overview">
<h1><span class="section-number">28. </span>Local cache overview<a class="headerlink" href="#local-cache-overview" title="Permalink to this headline"></a></h1>
<section id="description">
<div class="section" id="description">
<h2><span class="section-number">28.1. </span>Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2>
<p>While executing, cdist stores data to local cache. Currently this feature is
one way only. That means that cdist does not use stored data for future runs.
@ -206,8 +213,8 @@ configuration option or by using <strong>CDIST_CACHE_PATH_PATTERN</strong>
environment variable.</p>
<p>For more info on cache path pattern see <strong>CACHE PATH PATTERN FORMAT</strong>
section in cdist man page.</p>
</section>
<section id="cache-overview">
</div>
<div class="section" id="cache-overview">
<h2><span class="section-number">28.2. </span>Cache overview<a class="headerlink" href="#cache-overview" title="Permalink to this headline"></a></h2>
<p>As noted above each configured host has got its subdirectory in local cache.
Entries in host's cache directory are as follows.</p>
@ -236,7 +243,7 @@ cdist</p>
<dt>typeorder</dt><dd><p>file containing types in order of execution.</p>
</dd>
</dl>
<section id="object-cache-overview">
<div class="section" id="object-cache-overview">
<h3><span class="section-number">28.2.1. </span>Object cache overview<a class="headerlink" href="#object-cache-overview" title="Permalink to this headline"></a></h3>
<p>Each object under <strong>object</strong> directory has its own structure.</p>
<dl class="simple">
@ -280,38 +287,38 @@ outputs</p>
outputs.</p>
</dd>
</dl>
</section>
</section>
</section>
</div>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="cdist-saving-output-streams.html" class="btn btn-neutral float-right" title="29. Saving output streams" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="cdist-stages.html" class="btn btn-neutral float-left" title="27. Execution stages" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="cdist-saving-output-streams.html" class="btn btn-neutral float-right" title="29. Saving output streams" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="cdist-stages.html" class="btn btn-neutral float-left" title="27. Execution stages" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -320,7 +327,6 @@ outputs.</p>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>13. Configuration &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>13. Configuration &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="14. Manifest" href="cdist-manifest.html" />
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -129,6 +133,7 @@
</div>
</div>
</nav>
@ -163,18 +168,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">13. </span>Configuration</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-configuration.rst.txt" rel="nofollow"> View page source</a>
@ -188,9 +195,9 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="configuration">
<div class="section" id="configuration">
<h1><span class="section-number">13. </span>Configuration<a class="headerlink" href="#configuration" title="Permalink to this headline"></a></h1>
<section id="description">
<div class="section" id="description">
<h2><span class="section-number">13.1. </span>Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2>
<p>cdist obtains configuration data from the following sources in the following
order:</p>
@ -216,8 +223,8 @@ then ~/.cdist.cfg is used.</p>
<p>For a per-project configuration, particular environment variables or better,
CDIST_CONFIG_FILE environment variable or -g CONFIG_FILE command line option,
can be used.</p>
</section>
<section id="config-file-format">
</div>
<div class="section" id="config-file-format">
<h2><span class="section-number">13.2. </span>Config file format<a class="headerlink" href="#config-file-format" title="Permalink to this headline"></a></h2>
<p>cdist configuration file is in the INI file format. Currently it supports
only [GLOBAL] section.</p>
@ -308,37 +315,37 @@ only [GLOBAL] section.</p>
<span class="c1"># verbosity = INFO</span>
</pre></div>
</div>
</section>
</section>
</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="14. Manifest" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="cdist-bootstrap.html" class="btn btn-neutral float-left" title="12. Bootstrap" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="cdist-manifest.html" class="btn btn-neutral float-right" title="14. Manifest" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="cdist-bootstrap.html" class="btn btn-neutral float-left" title="12. Bootstrap" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -347,7 +354,6 @@ only [GLOBAL] section.</p>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>17. Explorer &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>17. Explorer &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,14 +36,10 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="18. Messaging" href="cdist-messaging.html" />
<link rel="prev" title="16.171. cdist-type__zypper_service(7)" href="man7/cdist-type__zypper_service.html" />
<link rel="prev" title="16.172. cdist-type__zypper_service(7)" href="man7/cdist-type__zypper_service.html" />
</head>
<body class="wy-body-for-nav">
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -129,6 +133,7 @@
</div>
</div>
</nav>
@ -163,18 +168,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">17. </span>Explorer</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-explorer.rst.txt" rel="nofollow"> View page source</a>
@ -188,9 +195,9 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="explorer">
<div class="section" id="explorer">
<h1><span class="section-number">17. </span>Explorer<a class="headerlink" href="#explorer" title="Permalink to this headline"></a></h1>
<section id="description">
<div class="section" id="description">
<h2><span class="section-number">17.1. </span>Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2>
<p>Explorers are small shell scripts, which will be executed on the target
host. The aim of each explorer is to give hints to types on how to act on the
@ -213,8 +220,8 @@ the type specific below the object.</p>
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>
</section>
<section id="examples">
</div>
<div class="section" id="examples">
<h2><span class="section-number">17.2. </span>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 notranslate"><div class="highlight"><pre><span></span><span class="n">hostname</span>
@ -232,37 +239,37 @@ explorer.</p>
dpkg -s <span class="s2">&quot;</span><span class="nv">$name</span><span class="s2">&quot;</span> <span class="m">2</span>&gt;/dev/null <span class="o">||</span> <span class="nb">exit</span> <span class="m">0</span>
</pre></div>
</div>
</section>
</section>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="cdist-messaging.html" class="btn btn-neutral float-right" title="18. Messaging" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="man7/cdist-type__zypper_service.html" class="btn btn-neutral float-left" title="16.171. cdist-type__zypper_service(7)" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="cdist-messaging.html" class="btn btn-neutral float-right" title="18. Messaging" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="man7/cdist-type__zypper_service.html" class="btn btn-neutral float-left" title="16.172. cdist-type__zypper_service(7)" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -271,7 +278,6 @@ dpkg -s <span class="s2">&quot;</span><span class="nv">$name</span><span class="
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>2. Features &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>2. Features &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="3. Supported operating systems" href="cdist-os.html" />
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -125,6 +129,7 @@
</div>
</div>
</nav>
@ -159,18 +164,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">2. </span>Features</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-features.rst.txt" rel="nofollow"> View page source</a>
@ -184,7 +191,7 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="features">
<div class="section" id="features">
<h1><span class="section-number">2. </span>Features<a class="headerlink" href="#features" title="Permalink to this headline"></a></h1>
<p>But cdist ticks differently, here is the feature set that makes it unique:</p>
<dl class="simple">
@ -222,36 +229,36 @@ Batteries included: A lot of requirements can be solved using standard types</p>
<dt>UNIX, simplicity, familiar environment</dt><dd><p>cdist is configured in POSIX shell</p>
</dd>
</dl>
</section>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="cdist-os.html" class="btn btn-neutral float-right" title="3. Supported operating systems" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="cdist-why.html" class="btn btn-neutral float-left" title="1. Why should I use cdist?" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="cdist-os.html" class="btn btn-neutral float-right" title="3. Supported operating systems" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="cdist-why.html" class="btn btn-neutral float-left" title="1. Why should I use cdist?" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -260,7 +267,6 @@ Batteries included: A lot of requirements can be solved using standard types</p>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>31. Hacking &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>31. Hacking &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="32. Troubleshooting" href="cdist-troubleshooting.html" />
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -133,6 +137,7 @@
</div>
</div>
</nav>
@ -167,18 +172,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">31. </span>Hacking</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-hacker.rst.txt" rel="nofollow"> View page source</a>
@ -192,9 +199,9 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="hacking">
<div class="section" id="hacking">
<h1><span class="section-number">31. </span>Hacking<a class="headerlink" href="#hacking" title="Permalink to this headline"></a></h1>
<section id="welcome">
<div class="section" id="welcome">
<h2><span class="section-number">31.1. </span>Welcome<a class="headerlink" href="#welcome" title="Permalink to this headline"></a></h2>
<p>Welcome dear hacker! I invite you to a tour of pointers to
get into the usable configuration management system, cdist.</p>
@ -202,20 +209,20 @@ get into the usable configuration management system, cdist.</p>
you by people who care about how code looks like and who think
twice before merging or implementing a feature: Less features
with good usability are far better than the opposite.</p>
</section>
<section id="reporting-bugs">
</div>
<div class="section" id="reporting-bugs">
<h2><span class="section-number">31.2. </span>Reporting bugs<a class="headerlink" href="#reporting-bugs" title="Permalink to this headline"></a></h2>
<p>If you believe you've found a bug and verified that it is
in the latest version, drop a mail to the cdist mailing list,
subject prefixed with &quot;[BUG] &quot; or create an issue on code.ungleich.ch.</p>
</section>
<section id="coding-conventions-everywhere">
</div>
<div class="section" id="coding-conventions-everywhere">
<h2><span class="section-number">31.3. </span>Coding conventions (everywhere)<a class="headerlink" href="#coding-conventions-everywhere" title="Permalink to this headline"></a></h2>
<p>If something should be improved or needs to be fixed, add the word FIXME
nearby, so grepping for FIXME gives all positions that need to be fixed.</p>
<p>Indentation is 4 spaces (welcome to the python world).</p>
</section>
<section id="how-to-submit-stuff-for-inclusion-into-upstream-cdist">
</div>
<div class="section" id="how-to-submit-stuff-for-inclusion-into-upstream-cdist">
<h2><span class="section-number">31.4. </span>How to submit stuff for inclusion into upstream cdist<a class="headerlink" href="#how-to-submit-stuff-for-inclusion-into-upstream-cdist" title="Permalink to this headline"></a></h2>
<p>If you did some cool changes to cdist, which you think might be of benefit to other
cdist users, you're welcome to propose inclusion into upstream.</p>
@ -242,8 +249,8 @@ the other needs to be improved.</p></li>
<p>As soon as your work meets these requirements, write a mail
for inclusion to the mailinglist <strong>cdist-configuration-management at googlegroups.com</strong>
or open a merge request at <a class="reference external" href="https://code.ungleich.ch/ungleich-public/cdist">https://code.ungleich.ch/ungleich-public/cdist</a>.</p>
</section>
<section id="how-to-submit-a-new-type">
</div>
<div class="section" id="how-to-submit-a-new-type">
<h2><span class="section-number">31.5. </span>How to submit a new type<a class="headerlink" href="#how-to-submit-a-new-type" title="Permalink to this headline"></a></h2>
<p>For detailed information about types, see <a class="reference external" href="cdist-type.html">cdist type</a>.</p>
<p>Submitting a type works as described above, with the additional requirement
@ -254,8 +261,8 @@ AND the manpage builds (<cite>make man</cite>).</p>
<strong>gencode</strong> will not be accepted, because they are of no use. Every type can output
code and thus such a type introduces redundant functionality that is given by
core cdist already.</p>
</section>
<section id="example-git-workflow">
</div>
<div class="section" id="example-git-workflow">
<h2><span class="section-number">31.6. </span>Example git workflow<a class="headerlink" href="#example-git-workflow" title="Permalink to this headline"></a></h2>
<p>The following workflow works fine for most developers</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="c1"># get latest upstream master branch</span>
@ -327,37 +334,37 @@ git merge origin/master</p>
</div></blockquote>
<p>(you can repeat the code above for as many features as you want to develop
in parallel)</p>
</section>
</section>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="cdist-troubleshooting.html" class="btn btn-neutral float-right" title="32. Troubleshooting" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="cdist-remote-exec-copy.html" class="btn btn-neutral float-left" title="30. Remote exec and copy commands" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="cdist-troubleshooting.html" class="btn btn-neutral float-right" title="32. Troubleshooting" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="cdist-remote-exec-copy.html" class="btn btn-neutral float-left" title="30. Remote exec and copy commands" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -366,7 +373,6 @@ in parallel)</p>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>4. How to install cdist &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>4. How to install cdist &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="5. How to upgrade cdist" href="cdist-upgrade.html" />
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -142,6 +146,7 @@
</div>
</div>
</nav>
@ -176,18 +181,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">4. </span>How to install cdist</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-install.rst.txt" rel="nofollow"> View page source</a>
@ -201,11 +208,11 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="how-to-install-cdist">
<div class="section" id="how-to-install-cdist">
<h1><span class="section-number">4. </span>How to install cdist<a class="headerlink" href="#how-to-install-cdist" title="Permalink to this headline"></a></h1>
<section id="requirements">
<div class="section" id="requirements">
<h2><span class="section-number">4.1. </span>Requirements<a class="headerlink" href="#requirements" title="Permalink to this headline"></a></h2>
<section id="source-host">
<div class="section" id="source-host">
<h3><span class="section-number">4.1.1. </span>Source Host<a class="headerlink" href="#source-host" title="Permalink to this headline"></a></h3>
<p>This is the machine from which you will configure target hosts.</p>
<blockquote>
@ -213,11 +220,11 @@
<li><p>/bin/sh: A POSIX like shell (for instance bash, dash, zsh)</p></li>
<li><p>Python &gt;= 3.5</p></li>
<li><p>SSH client</p></li>
<li><p>sphinx (for building html docs and/or the man pages)</p></li>
<li><p>sphinx with the rtd theme (for building html docs and/or the man pages)</p></li>
</ul>
</div></blockquote>
</section>
<section id="target-hosts">
</div>
<div class="section" id="target-hosts">
<h3><span class="section-number">4.1.2. </span>Target Hosts<a class="headerlink" href="#target-hosts" title="Permalink to this headline"></a></h3>
<blockquote>
<div><ul class="simple">
@ -225,11 +232,11 @@
<li><p>SSH server</p></li>
</ul>
</div></blockquote>
</section>
</section>
<section id="install-cdist">
</div>
</div>
<div class="section" id="install-cdist">
<h2><span class="section-number">4.2. </span>Install cdist<a class="headerlink" href="#install-cdist" title="Permalink to this headline"></a></h2>
<section id="from-git">
<div class="section" id="from-git">
<h3><span class="section-number">4.2.1. </span>From git<a class="headerlink" href="#from-git" title="Permalink to this headline"></a></h3>
<p>Cloning cdist from git gives you the advantage of having
a version control in place for development of your own stuff
@ -263,7 +270,7 @@ Or directly with distutils:</p>
</pre></div>
</div>
<p>Note that <cite>bin/cdist-build-helper</cite> script is intended for cdist maintainers.</p>
<section id="available-versions-in-git">
<div class="section" id="available-versions-in-git">
<h4><span class="section-number">4.2.1.1. </span>Available versions in git<a class="headerlink" href="#available-versions-in-git" title="Permalink to this headline"></a></h4>
<blockquote>
<div><ul class="simple">
@ -281,8 +288,8 @@ git checkout -b &lt;localbranchname&gt; origin/&lt;branchname&gt;
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>git checkout -b <span class="m">4</span>.1 origin/4.1
</pre></div>
</div>
</section>
<section id="building-and-using-documentation-man-and-html">
</div>
<div class="section" id="building-and-using-documentation-man-and-html">
<h4><span class="section-number">4.2.1.2. </span>Building and using documentation (man and html)<a class="headerlink" href="#building-and-using-documentation-man-and-html" title="Permalink to this headline"></a></h4>
<p>If you want to build and use the documentation, run:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>make docs
@ -319,17 +326,17 @@ some other custom .cdist directory, e.g. /opt/cdist then use:</p>
</div>
<p>Note that <cite>dotman</cite>-target has to be built before a <cite>make docs</cite>-run, otherwise
the custom man-pages are not picked up.</p>
</section>
</section>
<section id="python-package">
</div>
</div>
<div class="section" id="python-package">
<h3><span class="section-number">4.2.2. </span>Python package<a class="headerlink" href="#python-package" title="Permalink to this headline"></a></h3>
<p>Cdist is available as a python package at
<a class="reference external" href="http://pypi.python.org/pypi/cdist/">PyPi</a>. You can install it using</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>pip install cdist
</pre></div>
</div>
</section>
<section id="installing-from-source-with-signature-verification">
</div>
<div class="section" id="installing-from-source-with-signature-verification">
<h3><span class="section-number">4.2.3. </span>Installing from source with signature verification<a class="headerlink" href="#installing-from-source-with-signature-verification" title="Permalink to this headline"></a></h3>
<p>If you want to install cdist from signed source and verify it, first you need to
download cdist archive and its detached signature.</p>
@ -346,38 +353,38 @@ gpg: Good signature from <span class="s2">&quot;ungleich GmbH (ungleich FOSS) &l
</pre></div>
</div>
<p>Further steps are the same as for <a class="reference external" href="cdist-install.html#from-git">installing from git</a>.</p>
</section>
</section>
</section>
</div>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="cdist-upgrade.html" class="btn btn-neutral float-right" title="5. How to upgrade cdist" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="cdist-os.html" class="btn btn-neutral float-left" title="3. Supported operating systems" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="cdist-upgrade.html" class="btn btn-neutral float-right" title="5. How to upgrade cdist" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="cdist-os.html" class="btn btn-neutral float-left" title="3. Supported operating systems" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -386,7 +393,6 @@ gpg: Good signature from <span class="s2">&quot;ungleich GmbH (ungleich FOSS) &l
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>24. cdist integration / using cdist as library &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>24. cdist integration / using cdist as library &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="25. Reference" href="cdist-reference.html" />
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -129,6 +133,7 @@
</div>
</div>
</nav>
@ -163,18 +168,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">24. </span>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>
@ -188,9 +195,9 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="cdist-integration-using-cdist-as-library">
<div class="section" id="cdist-integration-using-cdist-as-library">
<h1><span class="section-number">24. </span>cdist integration / using cdist as library<a class="headerlink" href="#cdist-integration-using-cdist-as-library" title="Permalink to this headline"></a></h1>
<section id="description">
<div class="section" id="description">
<h2><span class="section-number">24.1. </span>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
@ -209,8 +216,8 @@ 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>
</section>
<section id="examples">
</div>
<div class="section" id="examples">
<h2><span class="section-number">24.2. </span>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
@ -230,37 +237,37 @@ find it first from local lib directory and then in PATH.</p>
... <span class="s1">&#39;~/.cdist/manifest/init&#39;</span><span class="o">)</span>
</pre></div>
</div>
</section>
</section>
</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="25. Reference" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="cdist-scan.html" class="btn btn-neutral float-left" title="23. Scan" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="cdist-reference.html" class="btn btn-neutral float-right" title="25. Reference" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="cdist-scan.html" class="btn btn-neutral float-left" title="23. Scan" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -269,7 +276,6 @@ find it first from local lib directory and then in PATH.</p>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>20. Inventory &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>20. Inventory &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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. Trigger" href="cdist-trigger.html" />
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -134,6 +138,7 @@
</div>
</div>
</nav>
@ -168,18 +173,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">20. </span>Inventory</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-inventory.rst.txt" rel="nofollow"> View page source</a>
@ -193,16 +200,16 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="inventory">
<div class="section" id="inventory">
<h1><span class="section-number">20. </span>Inventory<a class="headerlink" href="#inventory" title="Permalink to this headline"></a></h1>
<section id="introduction">
<div class="section" id="introduction">
<h2><span class="section-number">20.1. </span>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline"></a></h2>
<p>cdist comes with simple built-in tag based inventory. It is a simple inventory
with list of hosts and a host has a list of tags.
Inventory functionality is still in <strong>beta</strong> so it can be used only if beta
command line flag is specified (-b, --beta) or setting CDIST_BETA env var.</p>
</section>
<section id="description">
</div>
<div class="section" id="description">
<h2><span class="section-number">20.2. </span>Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2>
<p>The idea is to have simple tagging inventory. There is a list of hosts and for
each host there are tags. Inventory database is a set of files under inventory
@ -214,21 +221,21 @@ context mean that host has two tags and it is selected by specifying that both
tags are present.</p>
<p>This inventory is <strong>KISS</strong> cdist built-in inventory database. You can maintain it
using cdist inventory interface or using standard UNIX tools.</p>
</section>
<section id="cdist-inventory-interface">
</div>
<div class="section" id="cdist-inventory-interface">
<h2><span class="section-number">20.3. </span>cdist inventory interface<a class="headerlink" href="#cdist-inventory-interface" title="Permalink to this headline"></a></h2>
<p>With cdist inventory interface you can list host(s) and tag(s), add host(s),
add tag(s), delete host(s) and delete tag(s).</p>
</section>
<section id="configuring-hosts-using-inventory">
</div>
<div class="section" id="configuring-hosts-using-inventory">
<h2><span class="section-number">20.4. </span>Configuring hosts using inventory<a class="headerlink" href="#configuring-hosts-using-inventory" title="Permalink to this headline"></a></h2>
<p>config command now has new options, <strong>-t</strong>, <strong>-a</strong> and <strong>-A</strong>.</p>
<p><strong>-A</strong> means that all hosts in tag db is selected.</p>
<p><strong>-a</strong> means that selected hosts must contain ALL specified tags.</p>
<p><strong>-t</strong> means that host specifies tag - all hosts that have specified tags are
selected.</p>
</section>
<section id="examples">
</div>
<div class="section" id="examples">
<h2><span class="section-number">20.5. </span>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"># List inventory content</span>
$ cdist inventory list -b
@ -267,8 +274,8 @@ $ cdist config -b -t -a web dynamic
$ cdist config -b -A
</pre></div>
</div>
</section>
<section id="example-of-manipulating-database">
</div>
<div class="section" id="example-of-manipulating-database">
<h2><span class="section-number">20.6. </span>Example of manipulating database<a class="headerlink" href="#example-of-manipulating-database" title="Permalink to this headline"></a></h2>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ python3 scripts/cdist inventory list -b
$ python3 scripts/cdist inventory add-host -b localhost
@ -376,8 +383,8 @@ cloud
</pre></div>
</div>
<p>For more info about inventory commands and options see <a class="reference external" href="man1/cdist.html">cdist</a>(1).</p>
</section>
<section id="using-external-inventory">
</div>
<div class="section" id="using-external-inventory">
<h2><span class="section-number">20.7. </span>Using external inventory<a class="headerlink" href="#using-external-inventory" title="Permalink to this headline"></a></h2>
<p>cdist can be used with any external inventory where external inventory is
some storage or database from which you can get a list of hosts to configure.
@ -388,37 +395,37 @@ can use it with cdist like:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sqlite3 hosts.db <span class="s2">&quot;select hostname from hosts where purpose = &#39;django&#39;;&quot;</span> <span class="p">|</span> cdist config
</pre></div>
</div>
</section>
</section>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="cdist-trigger.html" class="btn btn-neutral float-right" title="21. Trigger" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="cdist-parallelization.html" class="btn btn-neutral float-left" title="19. Parallelization" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="cdist-trigger.html" class="btn btn-neutral float-right" title="21. Trigger" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="cdist-parallelization.html" class="btn btn-neutral float-left" title="19. Parallelization" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -427,7 +434,6 @@ can use it with cdist like:</p>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>14. Manifest &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>14. Manifest &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="15. cdist type" href="cdist-type.html" />
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -135,6 +139,7 @@
</div>
</div>
</nav>
@ -169,18 +174,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">14. </span>Manifest</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-manifest.rst.txt" rel="nofollow"> View page source</a>
@ -194,9 +201,9 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="manifest">
<div class="section" id="manifest">
<h1><span class="section-number">14. </span>Manifest<a class="headerlink" href="#manifest" title="Permalink to this headline"></a></h1>
<section id="description">
<div class="section" id="description">
<h2><span class="section-number">14.1. </span>Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2>
<p>Manifests are used to define which objects to create.
Objects are instances of <strong>types</strong>, like in object oriented programming languages.
@ -224,15 +231,15 @@ The resulting objects are stored in an internal database.</p>
the parameters are exactly the same.</p>
<p>In general, manifests are used to define which types are used depending
on given conditions.</p>
</section>
<section id="initial-and-type-manifests">
</div>
<div class="section" id="initial-and-type-manifests">
<h2><span class="section-number">14.2. </span>Initial and type manifests<a class="headerlink" href="#initial-and-type-manifests" title="Permalink to this headline"></a></h2>
<p>Cdist knows about two types of manifests: The initial manifest and type
manifests. The initial manifest is used to define, which configurations
to apply to which hosts. The type manifests are used to create objects
from types. More about manifests in types can be found in <a class="reference external" href="cdist-type.html">cdist type</a>.</p>
</section>
<section id="define-state-in-the-initial-manifest">
</div>
<div class="section" id="define-state-in-the-initial-manifest">
<h2><span class="section-number">14.3. </span>Define state in the initial manifest<a class="headerlink" href="#define-state-in-the-initial-manifest" title="Permalink to this headline"></a></h2>
<p>The <strong>initial manifest</strong> is the entry point for cdist to find out, which
<strong>objects</strong> to configure on the selected host.
@ -258,8 +265,8 @@ is only created on the host <strong>localhost</strong>.</p>
<p>As you can see, there is no magic involved, the manifest is simple shell code that
utilises cdist types. Every available type can be executed like a normal
command.</p>
</section>
<section id="splitting-up-the-initial-manifest">
</div>
<div class="section" id="splitting-up-the-initial-manifest">
<h2><span class="section-number">14.4. </span>Splitting up the initial manifest<a class="headerlink" href="#splitting-up-the-initial-manifest" title="Permalink to this headline"></a></h2>
<p>If you want to split up your initial manifest, you can create other shell
scripts in <strong>cdist/conf/manifest/</strong> and include them in <strong>cdist/conf/manifest/init</strong>.
@ -273,8 +280,8 @@ for manifest in $__manifest/*.sh; do
done
</pre></div>
</div>
</section>
<section id="dependencies">
</div>
<div class="section" id="dependencies">
<h2><span class="section-number">14.5. </span>Dependencies<a class="headerlink" href="#dependencies" title="Permalink to this headline"></a></h2>
<p>If you want to describe that something requires something else, just
setup the variable &quot;require&quot; to contain the requirements. Multiple
@ -325,8 +332,8 @@ from the type that is calling them. This is called &quot;autorequirement&quot; i
cdist jargon.</p>
<p>You can find a more in depth description of the flow execution of manifests
in <a class="reference external" href="cdist-stages.html">cdist execution stages</a> and of how types work in <a class="reference external" href="cdist-type.html">cdist type</a>.</p>
</section>
<section id="create-dependencies-from-execution-order">
</div>
<div class="section" id="create-dependencies-from-execution-order">
<h2><span class="section-number">14.6. </span>Create dependencies from execution order<a class="headerlink" href="#create-dependencies-from-execution-order" title="Permalink to this headline"></a></h2>
<p>You can tell cdist to execute all types in the order in which they are created
in the manifest by setting up the variable CDIST_ORDER_DEPENDENCY.
@ -436,8 +443,8 @@ __file /tmp/fileI
<li><p>H depends on G</p></li>
</ul>
<p>and there are no other dependencies from this manifest.</p>
</section>
<section id="overrides">
</div>
<div class="section" id="overrides">
<h2><span class="section-number">14.7. </span>Overrides<a class="headerlink" href="#overrides" title="Permalink to this headline"></a></h2>
<p>In some special cases, you would like to create an already defined object
with different parameters. In normal situations this leads to an error in cdist.
@ -450,8 +457,8 @@ in an undefined situation.</p>
<p>If CDIST_OVERRIDE and CDIST_ORDER_DEPENDENCY are set for an object,
CDIST_ORDER_DEPENDENCY will be ignored, because adding a dependency in case of
overrides would result in circular dependencies, which is an error.</p>
</section>
<section id="examples">
</div>
<div class="section" id="examples">
<h2><span class="section-number">14.8. </span>Examples<a class="headerlink" href="#examples" title="Permalink to this headline"></a></h2>
<p>The initial manifest may for instance contain the following code:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="c1"># Always create this file, so other sysadmins know cdist is used.</span>
@ -515,37 +522,37 @@ __sample_type <span class="m">1</span>
__not_in_order_type <span class="m">42</span>
</pre></div>
</div>
</section>
</section>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="cdist-type.html" class="btn btn-neutral float-right" title="15. cdist type" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="cdist-configuration.html" class="btn btn-neutral float-left" title="13. Configuration" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="cdist-type.html" class="btn btn-neutral float-right" title="15. cdist type" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="cdist-configuration.html" class="btn btn-neutral float-left" title="13. Configuration" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -554,7 +561,6 @@ __not_in_order_type <span class="m">42</span>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>18. Messaging &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>18. Messaging &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="19. Parallelization" href="cdist-parallelization.html" />
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -130,6 +134,7 @@
</div>
</div>
</nav>
@ -164,18 +169,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">18. </span>Messaging</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-messaging.rst.txt" rel="nofollow"> View page source</a>
@ -189,9 +196,9 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="messaging">
<div class="section" id="messaging">
<h1><span class="section-number">18. </span>Messaging<a class="headerlink" href="#messaging" title="Permalink to this headline"></a></h1>
<section id="description">
<div class="section" id="description">
<h2><span class="section-number">18.1. </span>Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2>
<p>cdist has a simple but powerful way of allowing communication between
the initial manifest and types as well as types and types.</p>
@ -208,8 +215,8 @@ interfere with other types.</p>
<p>The order of execution is not defined unless you create dependencies
between the different objects (see <a class="reference external" href="cdist-manifest.html">cdist manifest</a>) and thus you
can only react reliably on messages by objects that you depend on.</p>
</section>
<section id="availability">
</div>
<div class="section" id="availability">
<h2><span class="section-number">18.2. </span>Availability<a class="headerlink" href="#availability" title="Permalink to this headline"></a></h2>
<p>Messaging is possible between all <strong>local</strong> scripts:</p>
<ul class="simple">
@ -218,8 +225,8 @@ can only react reliably on messages by objects that you depend on.</p>
<li><p>type/gencode-local</p></li>
<li><p>type/gencode-remote</p></li>
</ul>
</section>
<section id="examples">
</div>
<div class="section" id="examples">
<h2><span class="section-number">18.3. </span>Examples<a class="headerlink" href="#examples" title="Permalink to this headline"></a></h2>
<p>When you want to emit a message use:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="nb">echo</span> <span class="s2">&quot;something&quot;</span> &gt;&gt; <span class="s2">&quot;</span><span class="nv">$__messages_out</span><span class="s2">&quot;</span>
@ -269,37 +276,37 @@ can only react reliably on messages by objects that you depend on.</p>
<span class="k">fi</span>
</pre></div>
</div>
</section>
</section>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="cdist-parallelization.html" class="btn btn-neutral float-right" title="19. Parallelization" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="cdist-explorer.html" class="btn btn-neutral float-left" title="17. Explorer" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="cdist-parallelization.html" class="btn btn-neutral float-right" title="19. Parallelization" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="cdist-explorer.html" class="btn btn-neutral float-left" title="17. Explorer" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -308,7 +315,6 @@ can only react reliably on messages by objects that you depend on.</p>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>3. Supported operating systems &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>3. Supported operating systems &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="4. How to install cdist" href="cdist-install.html" />
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -125,6 +129,7 @@
</div>
</div>
</nav>
@ -159,18 +164,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">3. </span>Supported operating systems</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-os.rst.txt" rel="nofollow"> View page source</a>
@ -184,7 +191,7 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="supported-operating-systems">
<div class="section" id="supported-operating-systems">
<h1><span class="section-number">3. </span>Supported operating systems<a class="headerlink" href="#supported-operating-systems" title="Permalink to this headline"></a></h1>
<p>cdist was tested or is know to run on at least</p>
<ul class="simple">
@ -203,36 +210,36 @@
<li><p><a class="reference external" href="http://www.ubuntu.com">Ubuntu</a></p></li>
<li><p><a class="reference external" href="http://www.citrix.com/xenserver">XenServer</a></p></li>
</ul>
</section>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="cdist-install.html" class="btn btn-neutral float-right" title="4. How to install cdist" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="cdist-features.html" class="btn btn-neutral float-left" title="2. Features" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="cdist-install.html" class="btn btn-neutral float-right" title="4. How to install cdist" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="cdist-features.html" class="btn btn-neutral float-left" title="2. Features" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -241,7 +248,6 @@
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>19. Parallelization &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>19. Parallelization &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="20. Inventory" href="cdist-inventory.html" />
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -130,6 +134,7 @@
</div>
</div>
</nav>
@ -164,18 +169,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">19. </span>Parallelization</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-parallelization.rst.txt" rel="nofollow"> View page source</a>
@ -189,9 +196,9 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="parallelization">
<div class="section" id="parallelization">
<h1><span class="section-number">19. </span>Parallelization<a class="headerlink" href="#parallelization" title="Permalink to this headline"></a></h1>
<section id="description">
<div class="section" id="description">
<h2><span class="section-number">19.1. </span>Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2>
<p>cdist has two modes of parallel operation.</p>
<p>One of them is to operate on each host in separate process. This is enabled
@ -205,8 +212,8 @@ object preparation and object run are supported.</p>
will be processed by its own process. Within each process cdist will operate
using specified number of parallel jobs.</p>
<p>For more info on those options see <strong>cdist</strong>(1).</p>
</section>
<section id="examples">
</div>
<div class="section" id="examples">
<h2><span class="section-number">19.2. </span>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 hosts read from file hosts.file in parallel</span>
$ cdist config -p -f hosts.file
@ -220,8 +227,8 @@ $ cdist config -j -f hosts.file
$ cdist config -j <span class="m">16</span> -p -f hosts.file
</pre></div>
</div>
</section>
<section id="caveats">
</div>
<div class="section" id="caveats">
<h2><span class="section-number">19.3. </span>Caveats<a class="headerlink" href="#caveats" title="Permalink to this headline"></a></h2>
<p>When operating in parallel, either by operating in parallel for each host
(-p/--parallel) or by parallel jobs within a host (-j/--jobs), and depending
@ -252,37 +259,37 @@ INFO: <span class="m">78</span>.47.116.244: Finished successful run in <span cla
INFO: cdist: Total processing <span class="nb">time</span> <span class="k">for</span> <span class="m">1</span> host<span class="o">(</span>s<span class="o">)</span>: <span class="m">19</span>.159148693084717
</pre></div>
</div>
</section>
</section>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="cdist-inventory.html" class="btn btn-neutral float-right" title="20. Inventory" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="cdist-messaging.html" class="btn btn-neutral float-left" title="18. Messaging" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="cdist-inventory.html" class="btn btn-neutral float-right" title="20. Inventory" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="cdist-messaging.html" class="btn btn-neutral float-left" title="18. Messaging" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -291,7 +298,6 @@ INFO: cdist: Total processing <span class="nb">time</span> <span class="k">for</
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>22. PreOS &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>22. PreOS &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="23. Scan" href="cdist-scan.html" />
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -138,6 +142,7 @@
</div>
</div>
</nav>
@ -172,18 +177,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">22. </span>PreOS</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-preos.rst.txt" rel="nofollow"> View page source</a>
@ -197,16 +204,16 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="preos">
<div class="section" id="preos">
<h1><span class="section-number">22. </span>PreOS<a class="headerlink" href="#preos" title="Permalink to this headline"></a></h1>
<section id="description">
<div class="section" id="description">
<h2><span class="section-number">22.1. </span>Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2>
<p>With cdist you can install and configure new machines. You can use cdist to
create PreOS, minimal OS whose purpose is to boot a new machine.
After PreOS is booted, the machine is ready for installing the desired OS and
afterwards it is ready for configuration.</p>
</section>
<section id="preos-creation">
</div>
<div class="section" id="preos-creation">
<h2><span class="section-number">22.2. </span>PreOS creation<a class="headerlink" href="#preos-creation" title="Permalink to this headline"></a></h2>
<p>With cdist you can create PreOS.
Currently supported PreOS-es include:</p>
@ -240,8 +247,8 @@ in the previous chapter.</p>
Machine will connect to cdist trigger server. If the request is, for example,
for installation then cdist trigger server will start install command for the
client host using parameters specified at trigger server startup.</p>
</section>
<section id="implementing-new-preos-sub-command">
</div>
<div class="section" id="implementing-new-preos-sub-command">
<h2><span class="section-number">22.3. </span>Implementing new PreOS sub-command<a class="headerlink" href="#implementing-new-preos-sub-command" title="Permalink to this headline"></a></h2>
<p>preos command is implemented as a plugin system. This plugin system scans for
preos subcommands in the <code class="docutils literal notranslate"><span class="pre">cdist/preos/</span></code> distribution directory and also in
@ -264,9 +271,9 @@ attribute if defined in the module/class, defaulting to the module/class name in
When a registered preos subcommand is specified, <code class="docutils literal notranslate"><span class="pre">commandline</span></code>
will be called with the first argument set to module/class and the second
argument set to <code class="docutils literal notranslate"><span class="pre">sys.argv[2:]</span></code>.</p>
<section id="example-of-writing-new-dummy-preos-sub-command">
<div class="section" id="example-of-writing-new-dummy-preos-sub-command">
<h3><span class="section-number">22.3.1. </span>Example of writing new dummy preos sub-command<a class="headerlink" href="#example-of-writing-new-dummy-preos-sub-command" title="Permalink to this headline"></a></h3>
<section id="module-based-preos">
<div class="section" id="module-based-preos">
<h4><span class="section-number">22.3.1.1. </span>Module-based preos:<a class="headerlink" href="#module-based-preos" title="Permalink to this headline"></a></h4>
<ol class="arabic simple">
<li><p>Create directory <code class="docutils literal notranslate"><span class="pre">~/.cdist/preos/</span></code> if it does not exist</p></li>
@ -290,8 +297,8 @@ $ cdist preos netbsd
NetBSD PreOS: <span class="o">[]</span>
</pre></div>
</div>
</section>
<section id="class-based-preos">
</div>
<div class="section" id="class-based-preos">
<h4><span class="section-number">22.3.1.2. </span>Class based preos:<a class="headerlink" href="#class-based-preos" title="Permalink to this headline"></a></h4>
<ol class="arabic simple">
<li><p>Create directory <code class="docutils literal notranslate"><span class="pre">~/.cdist/preos/</span></code> if it does not exist</p></li>
@ -318,10 +325,10 @@ FreeBSD dummy preos: <span class="o">[]</span>
</div>
<p>In the <code class="docutils literal notranslate"><span class="pre">commandline</span></code> function/method you have all the freedom to actually create
a PreOS.</p>
</section>
</section>
</section>
<section id="simple-tipical-use-case-for-using-preos-and-trigger">
</div>
</div>
</div>
<div class="section" id="simple-tipical-use-case-for-using-preos-and-trigger">
<h2><span class="section-number">22.4. </span>Simple tipical use case for using PreOS and trigger<a class="headerlink" href="#simple-tipical-use-case-for-using-preos-and-trigger" title="Permalink to this headline"></a></h2>
<p>Tipical use case for using PreOS and trigger command include the following steps.</p>
<ol class="arabic">
@ -348,37 +355,37 @@ default init manifest for installation).</p>
<li><p>Cdist trigger server starts installing host that has triggered it.</p></li>
<li><p>After cdist install is finished new host is installed.</p></li>
</ol>
</section>
</section>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="cdist-scan.html" class="btn btn-neutral float-right" title="23. Scan" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="cdist-trigger.html" class="btn btn-neutral float-left" title="21. Trigger" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="cdist-scan.html" class="btn btn-neutral float-right" title="23. Scan" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="cdist-trigger.html" class="btn btn-neutral float-left" title="21. Trigger" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -387,7 +394,6 @@ default init manifest for installation).</p>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>7. Quickstart &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>7. Quickstart &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="8. Dive into real world cdist" href="cdist-real-world.html" />
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -125,6 +129,7 @@
</div>
</div>
</nav>
@ -159,18 +164,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">7. </span>Quickstart</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-quickstart.rst.txt" rel="nofollow"> View page source</a>
@ -184,7 +191,7 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="quickstart">
<div class="section" id="quickstart">
<h1><span class="section-number">7. </span>Quickstart<a class="headerlink" href="#quickstart" title="Permalink to this headline"></a></h1>
<p>This tutorial is aimed at people learning cdist and shows
typical approaches as well as gives an easy start into
@ -255,36 +262,36 @@ then ~/.cdist/manifest sub-directory and create init manifest
<p>That's it, you've successfully used cdist to configure your first host!
Continue reading the next sections, to understand what you did and how
to create a more sophisticated configuration.</p>
</section>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="cdist-real-world.html" class="btn btn-neutral float-right" title="8. Dive into real world cdist" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="cdist-support.html" class="btn btn-neutral float-left" title="6. Support" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="cdist-real-world.html" class="btn btn-neutral float-right" title="8. Dive into real world cdist" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="cdist-support.html" class="btn btn-neutral float-left" title="6. Support" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -293,7 +300,6 @@ to create a more sophisticated configuration.</p>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>8. Dive into real world cdist &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>8. Dive into real world cdist &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="9. cdist(1)" href="man1/cdist.html" />
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -152,6 +156,7 @@
</div>
</div>
</nav>
@ -186,18 +191,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">8. </span>Dive into real world cdist</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-real-world.rst.txt" rel="nofollow"> View page source</a>
@ -211,9 +218,9 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="dive-into-real-world-cdist">
<div class="section" id="dive-into-real-world-cdist">
<h1><span class="section-number">8. </span>Dive into real world cdist<a class="headerlink" href="#dive-into-real-world-cdist" title="Permalink to this headline"></a></h1>
<section id="introduction">
<div class="section" id="introduction">
<h2><span class="section-number">8.1. </span>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline"></a></h2>
<p>This walkthrough shows real world cdist configuration example.</p>
<p>Sample target host is named <strong>test.ungleich.ch</strong>.
@ -238,8 +245,8 @@ for that. This type will:</p>
to configure hosting for specified user and project. It is up to the user to
create his/her applications.</p>
<p>So let's start.</p>
</section>
<section id="creating-type-layout">
</div>
<div class="section" id="creating-type-layout">
<h2><span class="section-number">8.2. </span>Creating type layout<a class="headerlink" href="#creating-type-layout" title="Permalink to this headline"></a></h2>
<p>We will create a new custom type. Let's call it <strong>__sample_bottle_hosting</strong>.</p>
<p>Go to <strong>~/.cdist/type</strong> directory (create it if it does not exist) and create
@ -252,8 +259,8 @@ new type layout:</p>
<span class="n">touch</span> <span class="n">parameter</span><span class="o">/</span><span class="n">required</span>
</pre></div>
</div>
</section>
<section id="creating-sample-bottle-hosting-type-parameters">
</div>
<div class="section" id="creating-sample-bottle-hosting-type-parameters">
<h2><span class="section-number">8.3. </span>Creating __sample_bottle_hosting type parameters<a class="headerlink" href="#creating-sample-bottle-hosting-type-parameters" title="Permalink to this headline"></a></h2>
<p>Our type will be configurable through the means of parameters. Let's define
the following parameters:</p>
@ -273,8 +280,8 @@ the following parameters:</p>
</pre></div>
</div>
<p>For details on type parameters see <a class="reference external" href="cdist-type.html#defining-parameters">Defining parameters</a>.</p>
</section>
<section id="creating-sample-bottle-hosting-type-manifest">
</div>
<div class="section" id="creating-sample-bottle-hosting-type-manifest">
<h2><span class="section-number">8.4. </span>Creating __sample_bottle_hosting type manifest<a class="headerlink" href="#creating-sample-bottle-hosting-type-manifest" title="Permalink to this headline"></a></h2>
<p>Next step is to define manifest (~/.cdist/type/__sample_bottle_hosting/manifest).
We also want our type to currently support only Devuan. So we will start by
@ -300,7 +307,7 @@ OS distributions like GNU/Linux distributions. There can also be a different
configuration locations (e.g. nginx config directory could be in /usr/local tree).
If we detected unsupported OS we should error out. cdist will stop configuration
process and output error message.</p>
<section id="creating-user-and-user-directories">
<div class="section" id="creating-user-and-user-directories">
<h3><span class="section-number">8.4.1. </span>Creating user and user directories<a class="headerlink" href="#creating-user-and-user-directories" title="Permalink to this headline"></a></h3>
<p>Then we create user and his/her home directory and application home directory.
We will use existing cdist types <a class="reference external" href="man7/cdist-type__user.html">__user</a> and <a class="reference external" href="man7/cdist-type__directory.html">__directory</a>:</p>
@ -323,8 +330,8 @@ require=&quot;__user/$user __directory/$home&quot; __directory &quot;$apphome&qu
User home directory should be created <strong>after</strong> user is created. And application
home directory is created <strong>after</strong> both user and user home directory are created.
For details on <strong>require</strong> see <a class="reference external" href="cdist-manifest.html#dependencies">Dependencies</a>.</p>
</section>
<section id="installing-packages">
</div>
<div class="section" id="installing-packages">
<h3><span class="section-number">8.4.2. </span>Installing packages<a class="headerlink" href="#installing-packages" title="Permalink to this headline"></a></h3>
<p>Install required packages using existing <a class="reference external" href="man7/cdist-type__package.html">__package</a> type.
Before installing package we want to update apt package index using
@ -351,8 +358,8 @@ for package in bottle bottle-pgsql; do
done
</pre></div>
</div>
</section>
<section id="creating-postgresql-database">
</div>
<div class="section" id="creating-postgresql-database">
<h3><span class="section-number">8.4.3. </span>Creating PostgreSQL database<a class="headerlink" href="#creating-postgresql-database" title="Permalink to this headline"></a></h3>
<p>Create PostgreSQL database using <a class="reference external" href="man7/cdist-type__postgres_database.html">__postgres_database</a>
and <a class="reference external" href="man7/cdist-type__postgres_role.html">__postgres_role</a> for creating database user:</p>
@ -366,8 +373,8 @@ require=&quot;__postgres_role/$user __package/postgresql&quot; __postgres_databa
--owner $user
</pre></div>
</div>
</section>
<section id="configuring-uwsgi">
</div>
<div class="section" id="configuring-uwsgi">
<h3><span class="section-number">8.4.4. </span>Configuring uWSGI<a class="headerlink" href="#configuring-uwsgi" title="Permalink to this headline"></a></h3>
<p>Configure uWSGI using <a class="reference external" href="man7/cdist-type__file.html">__file</a> type:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span># configure uWSGI
@ -398,8 +405,8 @@ We also use stdin as file content source. For details see <a class="reference ex
For feeding stdin we use here-document (<strong>&lt;&lt;</strong> operator). It allows redirection of subsequent
lines read by the shell to the input of a command until a line containing only the delimiter
and a newline, with no blank characters in between (EOF in our case).</p>
</section>
<section id="configuring-nginx-for-let-s-encrypt-and-https-redirection">
</div>
<div class="section" id="configuring-nginx-for-let-s-encrypt-and-https-redirection">
<h3><span class="section-number">8.4.5. </span>Configuring nginx for Let's Encrypt and HTTPS redirection<a class="headerlink" href="#configuring-nginx-for-let-s-encrypt-and-https-redirection" title="Permalink to this headline"></a></h3>
<p>Next configure nginx for Let's Encrypt and for HTTP -&gt; HTTPS redirection. For this
purpose we will create new type <strong>__sample_nginx_http_letsencrypt_and_ssl_redirect</strong>
@ -409,8 +416,8 @@ webroot=&quot;/var/www/html&quot;
__sample_nginx_http_letsencrypt_and_ssl_redirect &quot;$domain&quot; --webroot &quot;$webroot&quot;
</pre></div>
</div>
</section>
<section id="configuring-certificate-creation">
</div>
<div class="section" id="configuring-certificate-creation">
<h3><span class="section-number">8.4.6. </span>Configuring certificate creation<a class="headerlink" href="#configuring-certificate-creation" title="Permalink to this headline"></a></h3>
<p>After HTTP nginx configuration we will create Let's Encrypt certificate using
<a class="reference external" href="man7/cdist-type__letsencrypt_cert.html">__letsencrypt_cert</a> type.
@ -427,8 +434,8 @@ for Let's Encrypt to work:</p>
<span class="s2">&quot;$domain&quot;</span>
</pre></div>
</div>
</section>
<section id="configuring-nginx-https-server-with-uwsgi-upstream">
</div>
<div class="section" id="configuring-nginx-https-server-with-uwsgi-upstream">
<h3><span class="section-number">8.4.7. </span>Configuring nginx HTTPS server with uWSGI upstream<a class="headerlink" href="#configuring-nginx-https-server-with-uwsgi-upstream" title="Permalink to this headline"></a></h3>
<p>Then we can configure nginx HTTPS server that will use created Let's Encrypt certificate:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span># configure nginx
@ -466,8 +473,8 @@ EOF
</pre></div>
</div>
<p>Now our manifest is finished.</p>
</section>
<section id="complete-sample-bottle-hosting-type-manifest-listing">
</div>
<div class="section" id="complete-sample-bottle-hosting-type-manifest-listing">
<h3><span class="section-number">8.4.8. </span>Complete __sample_bottle_hosting type manifest listing<a class="headerlink" href="#complete-sample-bottle-hosting-type-manifest-listing" title="Permalink to this headline"></a></h3>
<p>Here is complete __sample_bottle_hosting type manifest listing,
located in ~/.cdist/type/__sample_bottle_hosting/manifest:</p>
@ -589,9 +596,9 @@ server {
EOF
</pre></div>
</div>
</section>
</section>
<section id="creating-sample-bottle-hosting-type-gencode-remote">
</div>
</div>
<div class="section" id="creating-sample-bottle-hosting-type-gencode-remote">
<h2><span class="section-number">8.5. </span>Creating __sample_bottle_hosting type gencode-remote<a class="headerlink" href="#creating-sample-bottle-hosting-type-gencode-remote" title="Permalink to this headline"></a></h2>
<p>Now define <strong>gencode-remote</strong> script: ~/.cdist/type/__sample_bottle_hosting/gencode-remote.
After manifest is applied it should restart uWSGI and nginx services so that our
@ -601,8 +608,8 @@ configuration is active. Our gencode-remote looks like the following:</p>
</pre></div>
</div>
<p>Our <strong>__sample_bottle_hosting</strong> type is now finished.</p>
</section>
<section id="creating-sample-nginx-http-letsencrypt-and-ssl-redirect-type">
</div>
<div class="section" id="creating-sample-nginx-http-letsencrypt-and-ssl-redirect-type">
<h2><span class="section-number">8.6. </span>Creating __sample_nginx_http_letsencrypt_and_ssl_redirect type<a class="headerlink" href="#creating-sample-nginx-http-letsencrypt-and-ssl-redirect-type" title="Permalink to this headline"></a></h2>
<p>Let's now create <strong>__sample_nginx_http_letsencrypt_and_ssl_redirect</strong> type:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">~/.</span><span class="n">cdist</span><span class="o">/</span><span class="nb">type</span>
@ -646,8 +653,8 @@ EOF
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">echo</span> <span class="s2">&quot;service nginx reload&quot;</span>
</pre></div>
</div>
</section>
<section id="creating-init-manifest">
</div>
<div class="section" id="creating-init-manifest">
<h2><span class="section-number">8.7. </span>Creating init manifest<a class="headerlink" href="#creating-init-manifest" title="Permalink to this headline"></a></h2>
<p>Next create init manifest:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">~/.</span><span class="n">cdist</span><span class="o">/</span><span class="n">manifest</span>
@ -660,16 +667,16 @@ Here the last positional argument <em>sample</em> is type's object id. For detai
<strong>__target_host</strong> and <strong>__object_id</strong> see
<a class="reference external" href="cdist-reference.html#environment-variables-for-reading">Environment variables (for reading)</a>
reference.</p>
</section>
<section id="configuring-host">
</div>
<div class="section" id="configuring-host">
<h2><span class="section-number">8.8. </span>Configuring host<a class="headerlink" href="#configuring-host" title="Permalink to this headline"></a></h2>
<p>Finally configure test.ungleich.ch:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cdist</span> <span class="n">config</span> <span class="o">-</span><span class="n">v</span> <span class="o">-</span><span class="n">i</span> <span class="o">~/.</span><span class="n">cdist</span><span class="o">/</span><span class="n">manifest</span><span class="o">/</span><span class="n">sample</span> <span class="n">test</span><span class="o">.</span><span class="n">ungleich</span><span class="o">.</span><span class="n">ch</span>
</pre></div>
</div>
<p>After cdist configuration is successfully finished our host is ready.</p>
</section>
<section id="creating-python-bottle-application">
</div>
<div class="section" id="creating-python-bottle-application">
<h2><span class="section-number">8.9. </span>Creating python bottle application<a class="headerlink" href="#creating-python-bottle-application" title="Permalink to this headline"></a></h2>
<p>We now need to create Bottle application. As you remember from the beginning
of this walkthrough our type does not create the actual python application,
@ -679,7 +686,7 @@ It is up to the user to create his/her applications.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">su</span> <span class="o">-</span><span class="n">l</span> <span class="n">app</span>
</pre></div>
</div>
<section id="preparing-database">
<div class="section" id="preparing-database">
<h3><span class="section-number">8.9.1. </span>Preparing database<a class="headerlink" href="#preparing-database" title="Permalink to this headline"></a></h3>
<p>We need to prepare database for our application. Create table and
insert some items:</p>
@ -690,8 +697,8 @@ insert some items:</p>
<span class="n">psql</span> <span class="o">-</span><span class="n">c</span> <span class="s2">&quot;insert into items(item) values(&#39;sausage&#39;);&quot;</span>
</pre></div>
</div>
</section>
<section id="creating-application">
</div>
<div class="section" id="creating-application">
<h3><span class="section-number">8.9.2. </span>Creating application<a class="headerlink" href="#creating-application" title="Permalink to this headline"></a></h3>
<p>Next create sample app:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">/</span><span class="n">home</span><span class="o">/</span><span class="n">app</span><span class="o">/</span><span class="n">app</span>
@ -735,8 +742,8 @@ insert some items:</p>
<p>We have configured uWSGI with <strong>touch-reload = $projectname/wsgi.py</strong> so after
we have changed our <strong>wsgi.py</strong> file uWSGI reloads the application.</p>
<p>Our application selects and lists items from <strong>items</strong> table.</p>
</section>
<section id="opening-application">
</div>
<div class="section" id="opening-application">
<h3><span class="section-number">8.9.3. </span>Opening application<a class="headerlink" href="#opening-application" title="Permalink to this headline"></a></h3>
<p>Finally try the application:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">test</span><span class="o">.</span><span class="n">ungleich</span><span class="o">.</span><span class="n">ch</span><span class="o">/</span>
@ -751,42 +758,42 @@ we have changed our <strong>wsgi.py</strong> file uWSGI reloads the application.
<li>eggs</li>
<li>sausage</li>
</ul></div>
</section>
</section>
<section id="what-s-next">
</div>
</div>
<div class="section" id="what-s-next">
<h2><span class="section-number">8.10. </span>What's next?<a class="headerlink" href="#what-s-next" title="Permalink to this headline"></a></h2>
<p>Continue reading next sections ;)</p>
</section>
</section>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="man1/cdist.html" class="btn btn-neutral float-right" title="9. cdist(1)" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="cdist-quickstart.html" class="btn btn-neutral float-left" title="7. Quickstart" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="man1/cdist.html" class="btn btn-neutral float-right" title="9. cdist(1)" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="cdist-quickstart.html" class="btn btn-neutral float-left" title="7. Quickstart" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -795,7 +802,6 @@ we have changed our <strong>wsgi.py</strong> file uWSGI reloads the application.
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>25. Reference &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>25. Reference &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="26. Best practice" href="cdist-best-practice.html" />
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -133,6 +137,7 @@
</div>
</div>
</nav>
@ -167,18 +172,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">25. </span>Reference</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-reference.rst.txt" rel="nofollow"> View page source</a>
@ -192,10 +199,10 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="reference">
<div class="section" id="reference">
<h1><span class="section-number">25. </span>Reference<a class="headerlink" href="#reference" title="Permalink to this headline"></a></h1>
<p>Variable, path and type reference for cdist</p>
<section id="explorers">
<div class="section" id="explorers">
<h2><span class="section-number">25.1. </span>Explorers<a class="headerlink" href="#explorers" title="Permalink to this headline"></a></h2>
<p>The following global explorers are available:</p>
<ul class="simple">
@ -219,8 +226,8 @@
<li><p>os_version</p></li>
<li><p>runlevel</p></li>
</ul>
</section>
<section id="paths">
</div>
<div class="section" id="paths">
<h2><span class="section-number">25.2. </span>Paths<a class="headerlink" href="#paths" title="Permalink to this headline"></a></h2>
<dl class="simple">
<dt>$HOME/.cdist</dt><dd><p>The standard cdist configuration directory relative to your home directory.
@ -302,8 +309,8 @@ This directory is referenced by the variable __object (see below).</p>
<dt>out/object/&lt;object&gt;/explorers</dt><dd><p>Output of type specific explorers, per object.</p>
</dd>
</dl>
</section>
<section id="types">
</div>
<div class="section" id="types">
<h2><span class="section-number">25.3. </span>Types<a class="headerlink" href="#types" title="Permalink to this headline"></a></h2>
<p>The following types are available:</p>
<ul class="simple">
@ -314,6 +321,7 @@ This directory is referenced by the variable __object (see below).</p>
<li><p>__apt_key_uri (<a class="reference external" href="man7/cdist-type__apt_key_uri.html">cdist-type__apt_key_uri(7)</a>)</p></li>
<li><p>__apt_mark (<a class="reference external" href="man7/cdist-type__apt_mark.html">cdist-type__apt_mark(7)</a>)</p></li>
<li><p>__apt_norecommends (<a class="reference external" href="man7/cdist-type__apt_norecommends.html">cdist-type__apt_norecommends(7)</a>)</p></li>
<li><p>__apt_pin (<a class="reference external" href="man7/cdist-type__apt_pin.html">cdist-type__apt_pin(7)</a>)</p></li>
<li><p>__apt_ppa (<a class="reference external" href="man7/cdist-type__apt_ppa.html">cdist-type__apt_ppa(7)</a>)</p></li>
<li><p>__apt_source (<a class="reference external" href="man7/cdist-type__apt_source.html">cdist-type__apt_source(7)</a>)</p></li>
<li><p>__apt_unattended_upgrades (<a class="reference external" href="man7/cdist-type__apt_unattended_upgrades.html">cdist-type__apt_unattended_upgrades(7)</a>)</p></li>
@ -479,8 +487,8 @@ This directory is referenced by the variable __object (see below).</p>
<li><p>__zypper_repo (<a class="reference external" href="man7/cdist-type__zypper_repo.html">cdist-type__zypper_repo(7)</a>)</p></li>
<li><p>__zypper_service (<a class="reference external" href="man7/cdist-type__zypper_service.html">cdist-type__zypper_service(7)</a>)</p></li>
</ul>
</section>
<section id="objects">
</div>
<div class="section" id="objects">
<h2><span class="section-number">25.4. </span>Objects<a class="headerlink" href="#objects" title="Permalink to this headline"></a></h2>
<p>For object to object communication and tests, the following paths are
usable within a object directory:</p>
@ -496,8 +504,8 @@ code to be executed (either remote or local).</p>
when the type was called.</p>
</dd>
</dl>
</section>
<section id="environment-variables-for-reading">
</div>
<div class="section" id="environment-variables-for-reading">
<h2><span class="section-number">25.5. </span>Environment variables (for reading)<a class="headerlink" href="#environment-variables-for-reading" title="Permalink to this headline"></a></h2>
<p>The following environment variables are exported by cdist:</p>
<dl>
@ -606,8 +614,8 @@ This variable is derived from <strong>__target_host</strong>
<p>Available for: type explorer.</p>
</dd>
</dl>
</section>
<section id="environment-variables-for-writing">
</div>
<div class="section" id="environment-variables-for-writing">
<h2><span class="section-number">25.6. </span>Environment variables (for writing)<a class="headerlink" href="#environment-variables-for-writing" title="Permalink to this headline"></a></h2>
<p>The following environment variables influence the behaviour of cdist:</p>
<dl>
@ -679,37 +687,37 @@ Recognized values are 'always', 'never', and 'auto' (the default).</p>
<dt>CDIST_CACHE_PATH_PATTERN</dt><dd><p>Custom cache path pattern.</p>
</dd>
</dl>
</section>
</section>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="cdist-best-practice.html" class="btn btn-neutral float-right" title="26. Best practice" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="cdist-integration.html" class="btn btn-neutral float-left" title="24. cdist integration / using cdist as library" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="cdist-best-practice.html" class="btn btn-neutral float-right" title="26. Best practice" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="cdist-integration.html" class="btn btn-neutral float-left" title="24. cdist integration / using cdist as library" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -718,7 +726,6 @@ Recognized values are 'always', 'never', and 'auto' (the default).</p>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>30. Remote exec and copy commands &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>30. Remote exec and copy commands &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="31. Hacking" href="cdist-hacker.html" />
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -137,6 +141,7 @@
</div>
</div>
</nav>
@ -171,18 +176,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">30. </span>Remote exec and copy commands</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-remote-exec-copy.rst.txt" rel="nofollow"> View page source</a>
@ -196,7 +203,7 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="remote-exec-and-copy-commands">
<div class="section" id="remote-exec-and-copy-commands">
<h1><span class="section-number">30. </span>Remote exec and copy commands<a class="headerlink" href="#remote-exec-and-copy-commands" title="Permalink to this headline"></a></h1>
<p>Cdist interacts with the target host in two ways:</p>
<ul class="simple">
@ -221,12 +228,12 @@ specified by enclosed in square brackets (see <strong>ssh</strong>(1) and
<p>With this simple interface the user can take total control of how cdist
interacts with the target when required, while the default implementation
remains as simple as possible.</p>
<section id="examples">
<div class="section" id="examples">
<h2><span class="section-number">30.1. </span>Examples<a class="headerlink" href="#examples" title="Permalink to this headline"></a></h2>
<p>Here are examples of using alternative __remote_copy and __remote_exec scripts.</p>
<p>All scripts from below are present in cdist sources in <cite>other/examples/remote</cite>
directory.</p>
<section id="ssh">
<div class="section" id="ssh">
<h3><span class="section-number">30.1.1. </span>ssh<a class="headerlink" href="#ssh" title="Permalink to this headline"></a></h3>
<p>Same as cdist default.</p>
<p><strong>copy</strong></p>
@ -241,8 +248,8 @@ scp -o <span class="nv">User</span><span class="o">=</span>root -q <span class="
ssh -o <span class="nv">User</span><span class="o">=</span>root <span class="nv">$@</span>
</pre></div>
</div>
</section>
<section id="local">
</div>
<div class="section" id="local">
<h3><span class="section-number">30.1.2. </span>local<a class="headerlink" href="#local" title="Permalink to this headline"></a></h3>
<p>This effectively turns remote calling into local calling. Probably most useful
for the unit testing.</p>
@ -256,8 +263,8 @@ cp -L <span class="nv">$code</span>
<span class="nb">echo</span> <span class="s2">&quot;</span><span class="nv">$@</span><span class="s2">&quot;</span> <span class="p">|</span> /bin/sh
</pre></div>
</div>
</section>
<section id="chroot">
</div>
<div class="section" id="chroot">
<h3><span class="section-number">30.1.3. </span>chroot<a class="headerlink" href="#chroot" title="Permalink to this headline"></a></h3>
<p><strong>copy</strong></p>
<p>Usage: cdist config --remote-copy &quot;/path/to/this/script /path/to/your/chroot&quot; target-id</p>
@ -315,8 +322,8 @@ chroot <span class="s2">&quot;</span><span class="nv">$chroot</span><span class=
log <span class="s2">&quot;-----&quot;</span>
</pre></div>
</div>
</section>
<section id="rsync">
</div>
<div class="section" id="rsync">
<h3><span class="section-number">30.1.4. </span>rsync<a class="headerlink" href="#rsync" title="Permalink to this headline"></a></h3>
<p><strong>copy</strong></p>
<p>Usage: cdist config --remote-copy /path/to/this/script target_host</p>
@ -341,8 +348,8 @@ log <span class="s2">&quot;-----&quot;</span>
rsync --backup --suffix<span class="o">=</span>~cdist -e <span class="s1">&#39;ssh -o User=root&#39;</span> <span class="nv">$@</span>
</pre></div>
</div>
</section>
<section id="schroot">
</div>
<div class="section" id="schroot">
<h3><span class="section-number">30.1.5. </span>schroot<a class="headerlink" href="#schroot" title="Permalink to this headline"></a></h3>
<p>__remote_copy and __remote_exec scripts to run cdist against a chroot on the
target host over ssh.</p>
@ -397,8 +404,8 @@ log <span class="s2">&quot;code: </span><span class="nv">$code</span><span class
log <span class="s2">&quot;-----&quot;</span>
</pre></div>
</div>
</section>
<section id="schroot-uri">
</div>
<div class="section" id="schroot-uri">
<h3><span class="section-number">30.1.6. </span>schroot-uri<a class="headerlink" href="#schroot-uri" title="Permalink to this headline"></a></h3>
<p>__remote_exec/__remote_copy script to run cdist against a schroot target URI.</p>
<p>Usage:</p>
@ -524,8 +531,8 @@ log <span class="s2">&quot;code: </span><span class="nv">$code</span><span class
log <span class="s2">&quot;-----&quot;</span>
</pre></div>
</div>
</section>
<section id="sudo">
</div>
<div class="section" id="sudo">
<h3><span class="section-number">30.1.7. </span>sudo<a class="headerlink" href="#sudo" title="Permalink to this headline"></a></h3>
<p><strong>copy</strong></p>
<p>Use rsync over ssh to copy files. Uses the &quot;--rsync-path&quot; option
@ -561,38 +568,38 @@ rsync --copy-links --rsync-path<span class="o">=</span><span class="s2">&quot;su
ssh -q <span class="s2">&quot;</span><span class="nv">$host</span><span class="s2">&quot;</span> sudo sh -c <span class="se">\&quot;</span><span class="s2">&quot;</span><span class="nv">$@</span><span class="s2">&quot;</span><span class="se">\&quot;</span>
</pre></div>
</div>
</section>
</section>
</section>
</div>
</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="31. Hacking" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="cdist-saving-output-streams.html" class="btn btn-neutral float-left" title="29. Saving output streams" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="cdist-hacker.html" class="btn btn-neutral float-right" title="31. Hacking" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="cdist-saving-output-streams.html" class="btn btn-neutral float-left" title="29. Saving output streams" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -601,7 +608,6 @@ ssh -q <span class="s2">&quot;</span><span class="nv">$host</span><span class="s
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>29. Saving output streams &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>29. Saving output streams &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="30. Remote exec and copy commands" href="cdist-remote-exec-copy.html" />
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -128,6 +132,7 @@
</div>
</div>
</nav>
@ -162,18 +167,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">29. </span>Saving output streams</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-saving-output-streams.rst.txt" rel="nofollow"> View page source</a>
@ -187,9 +194,9 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="saving-output-streams">
<div class="section" id="saving-output-streams">
<h1><span class="section-number">29. </span>Saving output streams<a class="headerlink" href="#saving-output-streams" title="Permalink to this headline"></a></h1>
<section id="description">
<div class="section" id="description">
<h2><span class="section-number">29.1. </span>Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2>
<p>Since version 4.8.0 cdist, by default, saves output streams to local cache.
Saving output streams is implemented because important information was lost
@ -267,37 +274,37 @@ type: /tmp/tmpzomy0wis/75ee6a79e32da093da23fe4a13dd104b/data/conf/type/__myline
ERROR: cdist: Failed to configure the following hosts: <span class="m">185</span>.203.112.42
</pre></div>
</div>
</section>
</section>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="cdist-remote-exec-copy.html" class="btn btn-neutral float-right" title="30. Remote exec and copy commands" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="cdist-cache.html" class="btn btn-neutral float-left" title="28. Local cache overview" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="cdist-remote-exec-copy.html" class="btn btn-neutral float-right" title="30. Remote exec and copy commands" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="cdist-cache.html" class="btn btn-neutral float-left" title="28. Local cache overview" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -306,7 +313,6 @@ ERROR: cdist: Failed to configure the following hosts: <span class="m">185</span
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>23. Scan &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>23. Scan &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="24. cdist integration / using cdist as library" href="cdist-integration.html" />
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -131,6 +135,7 @@
</div>
</div>
</nav>
@ -165,18 +170,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">23. </span>Scan</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-scan.rst.txt" rel="nofollow"> View page source</a>
@ -190,9 +197,9 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="scan">
<div class="section" id="scan">
<h1><span class="section-number">23. </span>Scan<a class="headerlink" href="#scan" title="Permalink to this headline"></a></h1>
<section id="description">
<div class="section" id="description">
<h2><span class="section-number">23.1. </span>Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2>
<p>Runs cdist as a daemon that discover/watch on hosts and reconfigure them
periodically. It is especially useful in netboot-based environment where hosts
@ -200,8 +207,8 @@ boot unconfigured, and to ensure your infrastructure stays in sync with your
configuration.</p>
<p>This feature is still consider to be in <strong>beta</strong> stage, and only operate on
IPv6 (including link-local).</p>
</section>
<section id="usage-examples">
</div>
<div class="section" id="usage-examples">
<h2><span class="section-number">23.2. </span>Usage (Examples)<a class="headerlink" href="#usage-examples" title="Permalink to this headline"></a></h2>
<p>Discover hosts on local network and configure those whose name is resolved by
the name mapper script.</p>
@ -215,8 +222,8 @@ the name mapper script.</p>
</pre></div>
</div>
<p>Please refer to <cite>cdist(1)</cite> for a detailed list of parameters.</p>
</section>
<section id="modes">
</div>
<div class="section" id="modes">
<h2><span class="section-number">23.3. </span>Modes<a class="headerlink" href="#modes" title="Permalink to this headline"></a></h2>
<p>The scanner has 3 modes that can be independently toggled. If the <cite>--mode</cite>
parameter is not specified, only <cite>tigger</cite> and <cite>scan</cite> are enabled (= hosts are
@ -230,44 +237,67 @@ trigger detection by the <cite>scan</cite> module.</p>
<dt>config</dt><dd><p>Enable configuration of hosts detected by <cite>scan</cite>.</p>
</dd>
</dl>
</section>
<section id="name-mapper-script">
</div>
<div class="section" id="name-mapper-script">
<h2><span class="section-number">23.4. </span>Name Mapper Script<a class="headerlink" href="#name-mapper-script" title="Permalink to this headline"></a></h2>
<p>The name mapper script takes an IPv6 address as first argument and writes the
resolved name to stdout - if any. The script must be executable.</p>
<p>Simplest script:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="ch">#!/bin/sh</span>
<span class="k">case</span> <span class="s2">&quot;</span><span class="nv">$1</span><span class="s2">&quot;</span> in
<span class="s2">&quot;fe80::20d:b9ff:fe57:3524&quot;</span><span class="o">)</span>
<span class="nb">printf</span> <span class="s2">&quot;my-host-01&quot;</span>
<span class="p">;;</span>
<span class="s2">&quot;fe80::7603:bdff:fe05:89bb&quot;</span><span class="o">)</span>
<span class="nb">printf</span> <span class="s2">&quot;my-host-02&quot;</span>
<span class="p">;;</span>
<span class="k">esac</span>
</pre></div>
</div>
<p>Resolving name from <cite>PTR</cite> DNS record:</p>
</section>
</section>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="ch">#!/bin/sh</span>
<span class="k">for</span> cmd in dig sed<span class="p">;</span> <span class="k">do</span>
<span class="k">if</span> ! <span class="nb">command</span> -v <span class="nv">$cmd</span> &gt; /dev/null<span class="p">;</span> <span class="k">then</span>
<span class="nb">exit</span> <span class="m">1</span>
<span class="k">fi</span>
<span class="k">done</span>
dig +short -x <span class="s2">&quot;</span><span class="nv">$1</span><span class="s2">&quot;</span> <span class="p">|</span> sed -e <span class="s1">&#39;s/.$//&#39;</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="cdist-integration.html" class="btn btn-neutral float-right" title="24. cdist integration / using cdist as library" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="cdist-preos.html" class="btn btn-neutral float-left" title="22. PreOS" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="cdist-integration.html" class="btn btn-neutral float-right" title="24. cdist integration / using cdist as library" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="cdist-preos.html" class="btn btn-neutral float-left" title="22. PreOS" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -276,7 +306,6 @@ resolved name to stdout - if any. The script must be executable.</p>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>27. Execution stages &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>27. Execution stages &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="28. Local cache overview" href="cdist-cache.html" />
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -136,6 +140,7 @@
</div>
</div>
</nav>
@ -170,18 +175,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">27. </span>Execution stages</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-stages.rst.txt" rel="nofollow"> View page source</a>
@ -195,35 +202,35 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="execution-stages">
<div class="section" id="execution-stages">
<h1><span class="section-number">27. </span>Execution stages<a class="headerlink" href="#execution-stages" title="Permalink to this headline"></a></h1>
<section id="description">
<div class="section" id="description">
<h2><span class="section-number">27.1. </span>Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2>
<p>When cdist is started, it passes through different stages.</p>
</section>
<section id="stage-1-target-information-retrieval">
</div>
<div class="section" id="stage-1-target-information-retrieval">
<h2><span class="section-number">27.2. </span>Stage 1: target information retrieval<a class="headerlink" href="#stage-1-target-information-retrieval" title="Permalink to this headline"></a></h2>
<p>In this stage information is collected about the target host using so called
explorers. Every existing explorer is run on the target and the output of all
explorers are copied back into the local cache. The results can be used by
manifests and types.</p>
</section>
<section id="stage-2-run-the-initial-manifest">
</div>
<div class="section" id="stage-2-run-the-initial-manifest">
<h2><span class="section-number">27.3. </span>Stage 2: run the initial manifest<a class="headerlink" href="#stage-2-run-the-initial-manifest" title="Permalink to this headline"></a></h2>
<p>The initial manifest, which should be used for mappings of hosts to types,
is executed. This stage creates objects in a cconfig database that contains
the objects as defined in the manifest for the specific host. In this stage,
no conflicts may occur, i.e. no object of the same type with the same id may
be created, if it has different parameters.</p>
</section>
<section id="stage-3-object-information-retrieval">
</div>
<div class="section" id="stage-3-object-information-retrieval">
<h2><span class="section-number">27.4. </span>Stage 3: object information retrieval<a class="headerlink" href="#stage-3-object-information-retrieval" title="Permalink to this headline"></a></h2>
<p>Every object is checked whether its type has explorers and if so, these are
executed on the target host. The results are transferred back
and can be used in the following stages to decide what changes need to be made
on the target to implement the desired state.</p>
</section>
<section id="stage-4-run-the-object-manifest">
</div>
<div class="section" id="stage-4-run-the-object-manifest">
<h2><span class="section-number">27.5. </span>Stage 4: run the object manifest<a class="headerlink" href="#stage-4-run-the-object-manifest" title="Permalink to this headline"></a></h2>
<p>Every object is checked whether its type has a executable manifest. The
manifest script may generate and change the created objects. In other words,
@ -233,58 +240,58 @@ contain a manifest script, which creates new objects of type __file.</p>
<p>The newly created objects are merged back into the existing tree. No conflicts
may occur during the merge. A conflict would mean that two different objects
try to create the same object, which indicates a broken configuration.</p>
</section>
<section id="stage-5-code-generation">
</div>
<div class="section" id="stage-5-code-generation">
<h2><span class="section-number">27.6. </span>Stage 5: code generation<a class="headerlink" href="#stage-5-code-generation" title="Permalink to this headline"></a></h2>
<p>In this stage for every created object its type is checked for executable
gencode scripts. The gencode scripts generate the code to be executed on the
target on stdout. If the gencode executables fail, they must print diagnostic
messages on stderr and exit non-zero.</p>
</section>
<section id="stage-6-code-execution">
</div>
<div class="section" id="stage-6-code-execution">
<h2><span class="section-number">27.7. </span>Stage 6: code execution<a class="headerlink" href="#stage-6-code-execution" title="Permalink to this headline"></a></h2>
<p>For every object the resulting code from the previous stage is transferred to
the target host and executed there to apply the configuration changes.</p>
</section>
<section id="stage-7-cache">
</div>
<div class="section" id="stage-7-cache">
<h2><span class="section-number">27.8. </span>Stage 7: cache<a class="headerlink" href="#stage-7-cache" title="Permalink to this headline"></a></h2>
<p>The cache stores the information from the current run for later use.</p>
</section>
<section id="summary">
</div>
<div class="section" id="summary">
<h2><span class="section-number">27.9. </span>Summary<a class="headerlink" href="#summary" title="Permalink to this headline"></a></h2>
<p>If, and only if, all the stages complete without errors, the configuration
will be applied to the target.</p>
</section>
</section>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="cdist-cache.html" class="btn btn-neutral float-right" title="28. Local cache overview" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="cdist-best-practice.html" class="btn btn-neutral float-left" title="26. Best practice" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="cdist-cache.html" class="btn btn-neutral float-right" title="28. Local cache overview" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="cdist-best-practice.html" class="btn btn-neutral float-left" title="26. Best practice" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -293,7 +300,6 @@ will be applied to the target.</p>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>6. Support &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>6. Support &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="7. Quickstart" href="cdist-quickstart.html" />
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -131,6 +135,7 @@
</div>
</div>
</nav>
@ -165,18 +170,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">6. </span>Support</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-support.rst.txt" rel="nofollow"> View page source</a>
@ -190,59 +197,59 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="support">
<div class="section" id="support">
<h1><span class="section-number">6. </span>Support<a class="headerlink" href="#support" title="Permalink to this headline"></a></h1>
<section id="chat">
<div class="section" id="chat">
<h2><span class="section-number">6.1. </span>Chat<a class="headerlink" href="#chat" title="Permalink to this headline"></a></h2>
<p>Chat with us on <a class="reference external" href="https://ungleich.ch/u/projects/open-chat/">#cdist:ungleich.ch</a>.</p>
</section>
<section id="mailing-list">
</div>
<div class="section" id="mailing-list">
<h2><span class="section-number">6.2. </span>Mailing list<a class="headerlink" href="#mailing-list" title="Permalink to this headline"></a></h2>
<p>Bug reports, questions, patches, etc. should be send to the
<a class="reference external" href="https://groups.google.com/forum/#!forum/cdist-configuration-management">cdist mailing list</a>.</p>
</section>
<section id="linkedin">
</div>
<div class="section" id="linkedin">
<h2><span class="section-number">6.3. </span>Linkedin<a class="headerlink" href="#linkedin" title="Permalink to this headline"></a></h2>
<p>If you have an account
at <a class="reference external" href="http://www.linkedin.com/">Linked in</a>,
you can join the
<a class="reference external" href="http://www.linkedin.com/groups/cdist-configuration-management-3952797">cdist group</a>.</p>
</section>
<section id="commercial-support">
</div>
<div class="section" id="commercial-support">
<h2><span class="section-number">6.4. </span>Commercial support<a class="headerlink" href="#commercial-support" title="Permalink to this headline"></a></h2>
<p>You can request commercial support for cdist from
<a class="reference external" href="http://www.ungleich.ch/">ungleich</a>.</p>
</section>
</section>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="cdist-quickstart.html" class="btn btn-neutral float-right" title="7. Quickstart" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="cdist-upgrade.html" class="btn btn-neutral float-left" title="5. How to upgrade cdist" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="cdist-quickstart.html" class="btn btn-neutral float-right" title="7. Quickstart" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="cdist-upgrade.html" class="btn btn-neutral float-left" title="5. How to upgrade cdist" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -251,7 +258,6 @@ you can join the
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>21. Trigger &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>21. Trigger &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="22. PreOS" href="cdist-preos.html" />
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -128,6 +132,7 @@
</div>
</div>
</nav>
@ -162,18 +167,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">21. </span>Trigger</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-trigger.rst.txt" rel="nofollow"> View page source</a>
@ -187,9 +194,9 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="trigger">
<div class="section" id="trigger">
<h1><span class="section-number">21. </span>Trigger<a class="headerlink" href="#trigger" title="Permalink to this headline"></a></h1>
<section id="description">
<div class="section" id="description">
<h2><span class="section-number">21.1. </span>Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2>
<p>cdist supports triggering for host installation/configuration using trigger command.
This command starts trigger server at management node, for example:</p>
@ -217,37 +224,37 @@ host name is resolved then IP address is used.</p>
<li><p>599 for cdist run errors</p></li>
<li><p>500 for cdist/server errors.</p></li>
</ul>
</section>
</section>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="cdist-preos.html" class="btn btn-neutral float-right" title="22. PreOS" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="cdist-inventory.html" class="btn btn-neutral float-left" title="20. Inventory" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="cdist-preos.html" class="btn btn-neutral float-right" title="22. PreOS" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="cdist-inventory.html" class="btn btn-neutral float-left" title="20. Inventory" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -256,7 +263,6 @@ host name is resolved then IP address is used.</p>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>32. Troubleshooting &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>32. Troubleshooting &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="prev" title="31. Hacking" href="cdist-hacker.html" />
@ -62,7 +65,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -79,6 +82,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -128,6 +132,7 @@
</div>
</div>
</nav>
@ -162,18 +167,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">32. </span>Troubleshooting</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-troubleshooting.rst.txt" rel="nofollow"> View page source</a>
@ -187,9 +194,9 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="troubleshooting">
<div class="section" id="troubleshooting">
<h1><span class="section-number">32. </span>Troubleshooting<a class="headerlink" href="#troubleshooting" title="Permalink to this headline"></a></h1>
<section id="error-in-manifest-is-not-considered-an-error-by-cdist">
<div class="section" id="error-in-manifest-is-not-considered-an-error-by-cdist">
<h2><span class="section-number">32.1. </span>Error in manifest is not considered an error by cdist<a class="headerlink" href="#error-in-manifest-is-not-considered-an-error-by-cdist" title="Permalink to this headline"></a></h2>
<p>Situation: You are executing other scripts from a manifest.
This script fails, but cdist does not recognise the error.
@ -225,8 +232,8 @@ you write to use the -e flag:</p>
...
</pre></div>
</div>
</section>
<section id="using-debug-dump-helper-script">
</div>
<div class="section" id="using-debug-dump-helper-script">
<h2><span class="section-number">32.2. </span>Using debug dump helper script<a class="headerlink" href="#using-debug-dump-helper-script" title="Permalink to this headline"></a></h2>
<p>Since cdist stores data to local cache that can be used for debugging there
is a helper script that dumps data from local cache,
@ -239,35 +246,36 @@ is a helper script that dumps data from local cache,
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>./scripts/cdist-dump -h
</pre></div>
</div>
</section>
</section>
</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-left" title="31. Hacking" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="cdist-hacker.html" class="btn btn-neutral float-left" title="31. Hacking" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright ungleich GmbH 2021
&#169; Copyright ungleich GmbH 2021.
</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>.
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
@ -276,7 +284,6 @@ is a helper script that dumps data from local cache,
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);

View file

@ -1,24 +1,31 @@
<!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]-->
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>15. cdist type &mdash; cdist 6.9.8 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<title>15. cdist type &mdash; cdist 6.9.7 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
@ -29,10 +36,6 @@
<script type="text/javascript" src="_static/js/theme.js"></script>
<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="16. cdist types" href="cdist-types.html" />
@ -63,7 +66,7 @@
<div class="version">
6.9.7
6.9.8
</div>
@ -80,6 +83,7 @@
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
@ -156,6 +160,7 @@
</div>
</div>
</nav>
@ -190,18 +195,20 @@
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">15. </span>cdist type</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/cdist-type.rst.txt" rel="nofollow"> View page source</a>
@ -215,22 +222,22 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="cdist-type">
<div class="section" id="cdist-type">
<h1><span class="section-number">15. </span>cdist type<a class="headerlink" href="#cdist-type" title="Permalink to this headline"></a></h1>
<section id="description">
<div class="section" id="description">
<h2><span class="section-number">15.1. </span>Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2>
<p>Types are the main component of cdist and define functionality. If you
use cdist, you'll write a type for every functionality you would like
to use.</p>
</section>
<section id="synopsis">
</div>
<div class="section" id="synopsis">
<h2><span class="section-number">15.2. </span>Synopsis<a class="headerlink" href="#synopsis" title="Permalink to this headline"></a></h2>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>__TYPE ID --parameter value <span class="o">[</span>--parameter value ...<span class="o">]</span>
__TYPE --parameter value <span class="o">[</span>--parameter value ...<span class="o">]</span> <span class="o">(</span><span class="k">for</span> singletons<span class="o">)</span>
</pre></div>
</div>
</section>
<section id="how-to-use-a-type">
</div>
<div class="section" id="how-to-use-a-type">
<h2><span class="section-number">15.3. </span>How to use a type<a class="headerlink" href="#how-to-use-a-type" title="Permalink to this headline"></a></h2>
<p>You can use types from the initial manifest or the type manifest like a
normal shell command:</p>
@ -242,8 +249,8 @@ __package tree --state installed
</pre></div>
</div>
<p>A list of supported types can be found in the <a class="reference external" href="cdist-reference.html">cdist reference</a> manpage.</p>
</section>
<section id="singleton-types">
</div>
<div class="section" id="singleton-types">
<h2><span class="section-number">15.4. </span>Singleton types<a class="headerlink" href="#singleton-types" title="Permalink to this headline"></a></h2>
<p>If a type is flagged as a singleton, it may be used only
once per host. This is useful for types which can be used only once on a
@ -256,25 +263,25 @@ __issue
__myfancysingleton --colour green
</pre></div>
</div>
</section>
<section id="config-types">
</div>
<div class="section" id="config-types">
<h2><span class="section-number">15.5. </span>Config types<a class="headerlink" href="#config-types" title="Permalink to this headline"></a></h2>
<p>By default types are used with config command. These are types that are not
flagged by any known command flag. If a type is marked then it will be skipped
with config command.</p>
</section>
<section id="install-types">
</div>
<div class="section" id="install-types">
<h2><span class="section-number">15.6. </span>Install types<a class="headerlink" href="#install-types" title="Permalink to this headline"></a></h2>
<p>If a type is flagged with 'install' flag then it is used only with install command.
With other commands, i.e. config, these types are skipped if used.</p>
</section>
<section id="nonparallel-types">
</div>
<div class="section" id="nonparallel-types">
<h2><span class="section-number">15.7. </span>Nonparallel types<a class="headerlink" href="#nonparallel-types" title="Permalink to this headline"></a></h2>
<p>If a type is flagged with 'nonparallel' flag then its objects cannot be run in parallel
when using -j option. Example of such a type is __package_dpkg type where dpkg itself
prevents to be run in more than one instance.</p>
</section>
<section id="deprecated-types">
</div>
<div class="section" id="deprecated-types">
<h2><span class="section-number">15.8. </span>Deprecated types<a class="headerlink" href="#deprecated-types" title="Permalink to this headline"></a></h2>
<p>If a type is flagged with 'deprecated' marker then it is considered deprecated.
When it is used cdist writes warning line. If 'deprecated' marker has content
@ -294,8 +301,8 @@ $ <span class="nb">echo</span> <span class="s1">&#39;__bar foo&#39;</span> <span
WARNING: <span class="m">185</span>.203.112.26: Type __bar is deprecated.
</pre></div>
</div>
</section>
<section id="how-to-write-a-new-type">
</div>
<div class="section" id="how-to-write-a-new-type">
<h2><span class="section-number">15.9. </span>How to write a new type<a class="headerlink" href="#how-to-write-a-new-type" title="Permalink to this headline"></a></h2>
<p>A type consists of</p>
<ul class="simple">
@ -315,8 +322,8 @@ they are written in shell so they are executed using '/bin/sh -e' or 'CDIST_LOCA
<p>For executable shell code it is suggested that shebang is '#!/bin/sh -e'.</p>
<p>For creating type skeleton you can use helper script
<a class="reference external" href="man1/cdist-new-type.html">cdist-new-type</a>.</p>
</section>
<section id="defining-parameters">
</div>
<div class="section" id="defining-parameters">
<h2><span class="section-number">15.10. </span>Defining parameters<a class="headerlink" href="#defining-parameters" title="Permalink to this headline"></a></h2>
<p>Every type consists of required, optional and boolean parameters, which must
each be declared in a newline separated file in <strong>parameter/required</strong>,
@ -339,8 +346,8 @@ mkdir cdist/conf/type/__nginx_vhost/parameter/default
<span class="nb">echo</span> use_ssl &gt;&gt; cdist/conf/type/__nginx_vhost/parameter/boolean
</pre></div>
</div>
</section>
<section id="using-parameters">
</div>
<div class="section" id="using-parameters">
<h2><span class="section-number">15.11. </span>Using parameters<a class="headerlink" href="#using-parameters" title="Permalink to this headline"></a></h2>
<p>The parameters given to a type can be accessed and used in all type scripts
(e.g manifest, gencode, explorer). Note that boolean parameters are
@ -372,8 +379,8 @@ file does not exist -&gt; False</p>
<span class="k">fi</span>
</pre></div>
</div>
</section>
<section id="deprecated-parameters">
</div>
<div class="section" id="deprecated-parameters">
<h2><span class="section-number">15.12. </span>Deprecated parameters<a class="headerlink" href="#deprecated-parameters" title="Permalink to this headline"></a></h2>
<p>To deprecate type parameters one can declare a file for each deprecated
parameter under <strong>parameter/deprecated</strong> directory.</p>
@ -393,8 +400,8 @@ WARNING: <span class="m">185</span>.203.112.26: spam parameter of <span class="n
WARNING: <span class="m">185</span>.203.112.26: eggs parameter of <span class="nb">type</span> __foo is deprecated: eggs parameter is deprecated, please use multiple egg parameter.
</pre></div>
</div>
</section>
<section id="input-from-stdin">
</div>
<div class="section" id="input-from-stdin">
<h2><span class="section-number">15.13. </span>Input from stdin<a class="headerlink" href="#input-from-stdin" title="Permalink to this headline"></a></h2>
<p>Every type can access what has been written on stdin when it has been called.
The result is saved into the <strong>stdin</strong> file in the object directory.</p>
@ -417,7 +424,7 @@ about &quot;here documents&quot;.</p>
....
</pre></div>
</div>
<section id="stdin-inside-a-loop">
<div class="section" id="stdin-inside-a-loop">
<h3><span class="section-number">15.13.1. </span>Stdin inside a loop<a class="headerlink" href="#stdin-inside-a-loop" title="Permalink to this headline"></a></h3>
<p>Since cdist saves type's stdin content in the object as <strong>$__object/stdin</strong>,
so it can be accessed in manifest and gencode-* scripts, this can lead to
@ -470,9 +477,9 @@ stdin from <em>/dev/null</em>:</p>
<span class="k">fi</span>
</pre></div>
</div>
</section>
</section>
<section id="writing-the-manifest">
</div>
</div>
<div class="section" id="writing-the-manifest">
<h2><span class="section-number">15.14. </span>Writing the manifest<a class="headerlink" href="#writing-the-manifest" title="Permalink to this headline"></a></h2>
<p>In the manifest of a type you can use other types, so your type extends
their functionality. A good example is the __package type, which in
@ -495,8 +502,8 @@ __package_<span class="nv">$type</span> <span class="s2">&quot;</span><span clas
which are documented in <a class="reference external" href="cdist-reference.html">cdist reference</a>.</p>
<p>Always ensure the manifest is executable, otherwise cdist will not be able
to execute it. For more information about manifests see <a class="reference external" href="cdist-manifest.html">cdist manifest</a>.</p>
</section>
<section id="singleton-one-instance-only">
</div>
<div class="section" id="singleton-one-instance-only">
<h2><span class="section-number">15.15. </span>Singleton - one instance only<a class="headerlink" href="#singleton-one-instance-only" title="Permalink to this headline"></a></h2>
<p>If you want to ensure that a type can only be used once per target, you can
mark it as a singleton: Just create the (empty) file &quot;singleton&quot; in your type
@ -510,8 +517,8 @@ directory:</p>
</div>
<p>As you can see, the object ID is omitted, because it does not make any sense,
if your type can be used only once.</p>
</section>
<section id="install-type-with-install-command">
</div>
<div class="section" id="install-type-with-install-command">
<h2><span class="section-number">15.16. </span>Install - type with install command<a class="headerlink" href="#install-type-with-install-command" title="Permalink to this headline"></a></h2>
<p>If you want a type to be used with install command, you must mark it as
install: create the (empty) file &quot;install&quot; in your type directory:</p>
@ -519,8 +526,8 @@ install: create the (empty) file &quot;install&quot; in your type directory:</p>
</pre></div>
</div>
<p>With other commands, i.e. config, it will be skipped if used.</p>
</section>
<section id="nonparallel-only-one-instance-can-be-run-at-a-time">
</div>
<div class="section" id="nonparallel-only-one-instance-can-be-run-at-a-time">
<h2><span class="section-number">15.17. </span>Nonparallel - only one instance can be run at a time<a class="headerlink" href="#nonparallel-only-one-instance-can-be-run-at-a-time" title="Permalink to this headline"></a></h2>
<p>If objects of a type must not or cannot be run in parallel when using -j
option, you must mark it as nonparallel: create the (empty) file &quot;nonparallel&quot;
@ -529,8 +536,8 @@ in your type directory:</p>
</pre></div>
</div>
<p>For example, package types are nonparallel types.</p>
</section>
<section id="the-type-explorers">
</div>
<div class="section" id="the-type-explorers">
<h2><span class="section-number">15.18. </span>The type explorers<a class="headerlink" href="#the-type-explorers" title="Permalink to this headline"></a></h2>
<p>If a type needs to explore specific details, it can provide type specific
explorers, which will be executed on the target for every created object.</p>
@ -548,8 +555,8 @@ client, like this (shortened version from the type __file):</p>
<span class="k">fi</span>
</pre></div>
</div>
</section>
<section id="writing-the-gencode-script">
</div>
<div class="section" id="writing-the-gencode-script">
<h2><span class="section-number">15.19. </span>Writing the gencode script<a class="headerlink" href="#writing-the-gencode-script" title="Permalink to this headline"></a></h2>
<p>There are two gencode scripts: <strong>gencode-local</strong> and <strong>gencode-remote</strong>.