2024-02-19 09:30:08 +00:00
<!DOCTYPE html>
< html class = "writer-html5" lang = "en" >
< head >
< meta charset = "utf-8" / > < meta name = "generator" content = "Docutils 0.19: https://docutils.sourceforge.io/" / >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" / >
2024-02-19 09:46:11 +00:00
< title > 4. How to install cdist — cdist 7.0.0 documentation< / title >
2024-02-19 09:30:08 +00:00
< link rel = "stylesheet" href = "_static/pygments.css" type = "text/css" / >
< link rel = "stylesheet" href = "_static/css/theme.css" type = "text/css" / >
< script data-url_root = "./" id = "documentation_options" src = "_static/documentation_options.js" > < / script >
< script src = "_static/doctools.js" > < / script >
< script src = "_static/sphinx_highlight.js" > < / script >
< script src = "_static/js/theme.js" > < / script >
< 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" / >
< link rel = "prev" title = "3. Supported operating systems" href = "cdist-os.html" / >
< / head >
< body class = "wy-body-for-nav" >
< div class = "wy-grid-for-nav" >
< nav data-toggle = "wy-nav-shift" class = "wy-nav-side" >
< div class = "wy-side-scroll" >
< div class = "wy-side-nav-search" >
< a href = "index.html" class = "icon icon-home" >
cdist
< img src = "_static/cdist-logo.jpeg" class = "logo" alt = "Logo" / >
< / a >
< div class = "version" >
2024-02-19 09:46:11 +00:00
7.0.0
2024-02-19 09:30:08 +00:00
< / div >
< div role = "search" >
< form id = "rtd-search-form" class = "wy-form" action = "search.html" method = "get" >
< input type = "text" name = "q" placeholder = "Search docs" aria-label = "Search docs" / >
< input type = "hidden" name = "check_keywords" value = "yes" / >
< input type = "hidden" name = "area" value = "default" / >
< / form >
< / div >
< / div > < div class = "wy-menu wy-menu-vertical" data-spy = "affix" role = "navigation" aria-label = "Navigation menu" >
< ul class = "current" >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-why.html" > 1. Why should I use cdist?< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-features.html" > 2. Features< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-os.html" > 3. Supported operating systems< / a > < / li >
< li class = "toctree-l1 current" > < a class = "current reference internal" href = "#" > 4. How to install cdist< / a > < ul >
< li class = "toctree-l2" > < a class = "reference internal" href = "#requirements" > 4.1. Requirements< / a > < ul >
< li class = "toctree-l3" > < a class = "reference internal" href = "#source-host" > 4.1.1. Source Host< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "#target-hosts" > 4.1.2. Target Hosts< / a > < / li >
< / ul >
< / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "#install-cdist" > 4.2. Install cdist< / a > < ul >
< li class = "toctree-l3" > < a class = "reference internal" href = "#from-git" > 4.2.1. From git< / a > < ul >
< li class = "toctree-l4" > < a class = "reference internal" href = "#available-versions-in-git" > 4.2.1.1. Available versions in git< / a > < / li >
< li class = "toctree-l4" > < a class = "reference internal" href = "#building-and-using-documentation-man-and-html" > 4.2.1.2. Building and using documentation (man and html)< / a > < / li >
< / ul >
< / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "#python-package" > 4.2.2. Python package< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "#installing-from-source-with-signature-verification" > 4.2.3. Installing from source with signature verification< / a > < / li >
< / ul >
< / li >
< / ul >
< / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-upgrade.html" > 5. How to upgrade cdist< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-support.html" > 6. Support< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-quickstart.html" > 7. Quickstart< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-real-world.html" > 8. Dive into real world cdist< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "man1/cdist.html" > 9. cdist(1)< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "man1/cdist-dump.html" > 10. cdist-dump(1)< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "man1/cdist-new-type.html" > 11. cdist-new-type(1)< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-bootstrap.html" > 12. Bootstrap< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-configuration.html" > 13. Configuration< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-manifest.html" > 14. Manifest< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-type.html" > 15. cdist type< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-types.html" > 16. cdist types< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-explorer.html" > 17. Explorer< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-messaging.html" > 18. Messaging< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-parallelization.html" > 19. Parallelization< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-inventory.html" > 20. Inventory< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-preos.html" > 21. PreOS< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-scan.html" > 22. Scan< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-integration.html" > 23. cdist integration / using cdist as library< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-reference.html" > 24. Reference< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-best-practice.html" > 25. Best practice< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-stages.html" > 26. Execution stages< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-cache.html" > 27. Local cache overview< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-saving-output-streams.html" > 28. Saving output streams< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-remote-exec-copy.html" > 29. Remote exec and copy commands< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-hacker.html" > 30. Hacking< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "cdist-troubleshooting.html" > 31. Troubleshooting< / a > < / li >
< / ul >
< / div >
< / div >
< / nav >
< section data-toggle = "wy-nav-shift" class = "wy-nav-content-wrap" > < nav class = "wy-nav-top" aria-label = "Mobile navigation menu" >
< i data-toggle = "wy-nav-top" class = "fa fa-bars" > < / i >
< a href = "index.html" > cdist< / a >
< / nav >
< div class = "wy-nav-content" >
< div class = "rst-content" >
< div role = "navigation" aria-label = "Page navigation" >
< ul class = "wy-breadcrumbs" >
< li > < a href = "index.html" class = "icon icon-home" aria-label = "Home" > < / a > < / li >
< li class = "breadcrumb-item active" > < 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 >
< / li >
< / ul >
< hr / >
< / div >
< div role = "main" class = "document" itemscope = "itemscope" itemtype = "http://schema.org/Article" >
< div itemprop = "articleBody" >
< 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 heading" > ¶< / a > < / h1 >
< section id = "requirements" >
< h2 > < span class = "section-number" > 4.1. < / span > Requirements< a class = "headerlink" href = "#requirements" title = "Permalink to this heading" > ¶< / a > < / h2 >
< 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 heading" > ¶< / a > < / h3 >
< p > This is the machine from which you will configure target hosts.< / p >
< blockquote >
< div > < ul class = "simple" >
< li > < p > /bin/sh: A POSIX like shell (for instance bash, dash, zsh)< / p > < / li >
< li > < p > Python > = 3.5< / p > < / li >
< li > < p > SSH client< / 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" >
< h3 > < span class = "section-number" > 4.1.2. < / span > Target Hosts< a class = "headerlink" href = "#target-hosts" title = "Permalink to this heading" > ¶< / a > < / h3 >
< blockquote >
< div > < ul class = "simple" >
< li > < p > /bin/sh: A POSIX like shell (for instance bash, dash, zsh)< / p > < / li >
< li > < p > SSH server< / p > < / li >
< / ul >
< / div > < / blockquote >
< / section >
< / section >
< section id = "install-cdist" >
< h2 > < span class = "section-number" > 4.2. < / span > Install cdist< a class = "headerlink" href = "#install-cdist" title = "Permalink to this heading" > ¶< / a > < / h2 >
< 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 heading" > ¶< / a > < / h3 >
< p > Cloning cdist from git gives you the advantage of having
a version control in place for development of your own stuff
immediately.< / p >
< p > To install cdist, execute the following commands:< / p >
< div class = "highlight-sh notranslate" > < div class = "highlight" > < pre > < span > < / span > git< span class = "w" > < / span > clone< span class = "w" > < / span > https://code.ungleich.ch/ungleich-public/cdist.git
< span class = "nb" > cd< / span > < span class = "w" > < / span > cdist
< span class = "nb" > export< / span > < span class = "w" > < / span > < span class = "nv" > PATH< / span > < span class = "o" > =< / span > < span class = "nv" > $PATH< / span > :< span class = "k" > $(< / span > < span class = "nb" > pwd< / span > < span class = "w" > < / span > -P< span class = "k" > )< / span > /bin
< / pre > < / div >
< / div >
< p > From version 4.2.0 cdist tags and releases are signed.
You can get GPG public key used for signing < a class = "reference external" href = "_static/pgp-key-EFD2AE4EC36B6901.asc" > here< / a > .
It is assumed that you are familiar with < em > git< / em > ways of signing and verification.< / p >
< p > You can also get cdist from < a class = "reference external" href = "https://github.com/ungleich/cdist" > github mirror< / a > .< / p >
< p > To install cdist with distutils from cloned repository, first you have to
create version.py:< / p >
< div class = "highlight-sh notranslate" > < div class = "highlight" > < pre > < span > < / span > ./bin/cdist-build-helper< span class = "w" > < / span > version
< / pre > < / div >
< / div >
< p > Then you install it with:< / p >
< div class = "highlight-sh notranslate" > < div class = "highlight" > < pre > < span > < / span > make< span class = "w" > < / span > install
< / pre > < / div >
< / div >
< p > or with:< / p >
< div class = "highlight-sh notranslate" > < div class = "highlight" > < pre > < span > < / span > make< span class = "w" > < / span > install-user
< / pre > < / div >
< / div >
< p > to install it into user < em > site-packages< / em > directory.
Or directly with distutils:< / p >
< div class = "highlight-sh notranslate" > < div class = "highlight" > < pre > < span > < / span > python< span class = "w" > < / span > setup.py< span class = "w" > < / span > install
< / 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" >
< 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 heading" > ¶< / a > < / h4 >
< blockquote >
< div > < ul class = "simple" >
< li > < p > The active development takes place in the < strong > master< / strong > branch< / p > < / li >
< li > < p > The released versions can be found in the tags< / p > < / li >
< / ul >
< / div > < / blockquote >
< p > Other branches may be available for features or bugfixes, but they
may vanish at any point. To select a specific branch use< / p >
< div class = "highlight-sh notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "c1" > # Generic code< / span >
git< span class = "w" > < / span > checkout< span class = "w" > < / span > -b< span class = "w" > < / span > < localbranchname> < span class = "w" > < / span > origin/< branchname>
< / pre > < / div >
< / div >
< p > So for instance if you want to use and stay with version 4.1, you can use< / p >
< div class = "highlight-sh notranslate" > < div class = "highlight" > < pre > < span > < / span > git< span class = "w" > < / span > checkout< span class = "w" > < / span > -b< span class = "w" > < / span > < span class = "m" > 4< / span > .1< span class = "w" > < / span > origin/4.1
< / pre > < / div >
< / div >
< / section >
< 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 heading" > ¶< / 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< span class = "w" > < / span > docs
< / pre > < / div >
< / div >
< p > Documentation comes in two formats, man pages and full HTML
documentation. Documentation is built into distribution's
docs/dist directory. man pages are in docs/dist/man and
HTML documentation in docs/dist/html.< / p >
< p > If you want to use man pages, run:< / p >
< div class = "highlight-sh notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "nb" > export< / span > < span class = "w" > < / span > < span class = "nv" > MANPATH< / span > < span class = "o" > =< / span > < span class = "nv" > $MANPATH< / span > :< span class = "k" > $(< / span > < span class = "nb" > pwd< / span > < span class = "w" > < / span > -P< span class = "k" > )< / span > /docs/dist/man
< / pre > < / div >
< / div >
< p > Or you can move man pages from docs/dist/man directory to some
other directory and add it to MANPATH.< / p >
< p > Full HTML documentation can be accessed at docs/dist/html/index.html.< / p >
< p > You can also build only man pages or only html documentation, for
only man pages run:< / p >
< div class = "highlight-sh notranslate" > < div class = "highlight" > < pre > < span > < / span > make< span class = "w" > < / span > man
< / pre > < / div >
< / div >
< p > for only html documentation run:< / p >
< div class = "highlight-sh notranslate" > < div class = "highlight" > < pre > < span > < / span > make< span class = "w" > < / span > html
< / pre > < / div >
< / div >
< p > You can also build man pages for types in your ~/.cdist directory:< / p >
< div class = "highlight-sh notranslate" > < div class = "highlight" > < pre > < span > < / span > make< span class = "w" > < / span > dotman
< / pre > < / div >
< / div >
< p > Built man pages are now in docs/dist/man directory. If you have
some other custom .cdist directory, e.g. /opt/cdist then use:< / p >
< div class = "highlight-sh notranslate" > < div class = "highlight" > < pre > < span > < / span > make< span class = "w" > < / span > < span class = "nv" > DOT_CDIST_PATH< / span > < span class = "o" > =< / span > /opt/cdist< span class = "w" > < / span > dotman
< / pre > < / div >
< / 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" >
< h3 > < span class = "section-number" > 4.2.2. < / span > Python package< a class = "headerlink" href = "#python-package" title = "Permalink to this heading" > ¶< / 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< span class = "w" > < / span > install< span class = "w" > < / span > cdist
< / pre > < / div >
< / div >
< / section >
< 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 heading" > ¶< / 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 >
< p > Get both, < em > cdist-x.y.z.tar.gz< / em > and < em > cdist-x.y.z.tar.gz.asc< / em > from release
notes of the desired tag < em > x.y.z< / em > at
< a class = "reference external" href = "https://code.ungleich.ch/ungleich-public/cdist/-/tags" > cdist git repository< / a > .< / p >
< p > Get GPG public key used for signing < a class = "reference external" href = "_static/pgp-key-EFD2AE4EC36B6901.asc" > here< / a >
and import it into GPG.< / p >
< p > Now cdist source archive can be verified using < cite > gpg< / cite > , e.g. to verify < cite > cdist-6.2.0< / cite > :< / p >
< div class = "highlight-sh notranslate" > < div class = "highlight" > < pre > < span > < / span > $< span class = "w" > < / span > gpg< span class = "w" > < / span > --verify< span class = "w" > < / span > cdist-6.2.0.tar.gz.asc< span class = "w" > < / span > cdist-6.2.0.targ.gz
gpg:< span class = "w" > < / span > Signature< span class = "w" > < / span > made< span class = "w" > < / span > Sat< span class = "w" > < / span > Nov< span class = "w" > < / span > < span class = "m" > 30< / span > < span class = "w" > < / span > < span class = "m" > 23< / span > :14:19< span class = "w" > < / span > < span class = "m" > 2019< / span > < span class = "w" > < / span > CET
gpg:< span class = "w" > < / span > using< span class = "w" > < / span > RSA< span class = "w" > < / span > key< span class = "w" > < / span > 69767822F3ECC3C349C1EFFFEFD2AE4EC36B6901
gpg:< span class = "w" > < / span > Good< span class = "w" > < / span > signature< span class = "w" > < / span > from< span class = "w" > < / span > < span class = "s2" > " ungleich GmbH (ungleich FOSS) < foss@ungleich.ch> " < / span > < span class = "w" > < / span > < span class = "o" > [< / span > ultimate< span class = "o" > ]< / span >
< / 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 >
< footer > < div class = "rst-footer-buttons" role = "navigation" aria-label = "Footer" >
< 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 >
< 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 >
< / div >
< hr / >
< div role = "contentinfo" >
< p > © Copyright ungleich GmbH 2021.< / p >
< / div >
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 >
< / section >
< / div >
< script >
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
< / script >
< / body >
< / html >