diff --git a/software/cdist/man/cdist-best-practice.html b/software/cdist/man/cdist-best-practice.html index a82d10fd..478e4566 100644 --- a/software/cdist/man/cdist-best-practice.html +++ b/software/cdist/man/cdist-best-practice.html @@ -1,6 +1,6 @@ -
Table of Contents
It is recommended to run cdist with public key authentication. +
Table of Contents
It is recommended to run cdist with public key authentication. This requires a private/public key pair and the entry "PermitRootLogin without-password" in the sshd server. See sshd_config(5) and ssh-keygen(1).
When connecting to a new host, the initial delay with ssh connections @@ -25,7 +25,33 @@ git branch production # Make use of a branch, for instance production git checkout production
Similar if you want to have cdist checked out at multiple machines, you can clone it multiple times:
machine-a % git clone git://your-git-server/cdist -machine-b % git clone git://your-git-server/cdist
If you are working with different groups on one cdist-configuration, +you can delegate to other manifests and have the groups edit only +their manifests. You can use the following snippet in +conf/manifests/init:
# Include other groups +sh -e "$__manifest/systems" + +sh -e "$__manifest/cbrg"
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. +Including a possible common base that is reused accross the different sites:
# create branches +git branch company_a company_b common private + +# make stuff for company a +git checkout company_a +# work, commit, etc. + +# make stuff for company b +git checkout company_b +# work, commit, etc. + +# make stuff relevant for all sites +git checkout common +# work, commit, etc. + +# change to private and include latest common stuff +git checkout private +git merge common
Have a look at git-remote(1) to adjust the remote configuration, which allows +you to push certain branches to certain remotes.
Various scripts which are not in the core need information on how +
Various scripts which are not in the core need information on how to find information. This manpage summarises the available environment variables, types and paths and clearifies with part may access which variables.
If not specified otherwise, all paths are relative to the checkout directory.
On Debian and alike systems debconf-set-selections(1) can be used +to setup configuration parameters.
# Setup configuration for nslcd +__debconf_set_selections nslcd --file /path/to/file + +# Setup configuration for nslcd from another type +__debconf_set_selections nslcd --file "$__type/files/preseed/nslcd"
Table of Contents
apt-get is usually used on Debian and variants (like Ubuntu) to +
Table of Contents
# Ensure zsh in installed __package_apt zsh --state installed # In case you only want *a* webserver, but don't care which one __package_apt webserver --state installed --name nginx -# Install package with defaults (from a type) -__package_apt postfix --state installed --preseed "$__type/files/postfix-seed" - # Remove obsolete package __package_apt puppet --state deinstalled