328 lines
16 KiB
Text
328 lines
16 KiB
Text
Reference
|
|
=========
|
|
Variable, path and type reference for cdist
|
|
|
|
Explorers
|
|
---------
|
|
The following global explorers are available:
|
|
|
|
- cpu_cores
|
|
- cpu_sockets
|
|
- hostname
|
|
- init
|
|
- interfaces
|
|
- lsb_codename
|
|
- lsb_description
|
|
- lsb_id
|
|
- lsb_release
|
|
- machine
|
|
- machine_type
|
|
- memory
|
|
- os
|
|
- os_version
|
|
- runlevel
|
|
|
|
Paths
|
|
-----
|
|
$HOME/.cdist
|
|
The standard cdist configuration directory relative to your home directory.
|
|
This is usually the place you want to store your site specific configuration.
|
|
|
|
cdist/conf/
|
|
The distribution configuration directory.
|
|
This contains types and explorers to be used.
|
|
|
|
confdir
|
|
Cdist will use all available configuration directories and create
|
|
a temporary confdir containing links to the real configuration directories.
|
|
This way it is possible to merge configuration directories.
|
|
By default it consists of everything in $HOME/.cdist and cdist/conf/.
|
|
For more details see cdist(1).
|
|
|
|
confdir/files/
|
|
Cdist does not care about this directory besides providing access to it.
|
|
It is thought to be a general file storage area.
|
|
|
|
confdir/manifest/init
|
|
This is the central entry point.
|
|
It is an executable (+x bit set) shell script that can use
|
|
values from the explorers to decide which configuration to create
|
|
for the specified target host.
|
|
Its intent is to used to define mapping from configurations to hosts.
|
|
|
|
confdir/manifest/*
|
|
All other files in this directory are not directly used by cdist, but you
|
|
can separate configuration mappings, if you have a lot of code in the
|
|
conf/manifest/init file. This may also be helpful to have different admins
|
|
maintain different groups of hosts.
|
|
|
|
confdir/explorer/<name>
|
|
Contains explorers to be run on the target hosts, see `cdist explorer <cdist-explorer.html>`_.
|
|
|
|
confdir/type/
|
|
Contains all available types, which are used to provide
|
|
some kind of functionality. See `cdist type <cdist-type.html>`_.
|
|
|
|
confdir/type/<name>/
|
|
Home of the type <name>.
|
|
This directory is referenced by the variable __type (see below).
|
|
|
|
confdir/type/<name>/man.rst
|
|
Manpage in reStructuredText format (required for inclusion into upstream).
|
|
|
|
confdir/type/<name>/manifest
|
|
Used to generate additional objects from a type.
|
|
|
|
confdir/type/<name>/gencode-local
|
|
Used to generate code to be executed on the source host.
|
|
|
|
confdir/type/<name>/gencode-remote
|
|
Used to generate code to be executed on the target host.
|
|
|
|
confdir/type/<name>/parameter/required
|
|
Parameters required by type, \n separated list.
|
|
|
|
confdir/type/<name>/parameter/optional
|
|
Parameters optionally accepted by type, \n separated list.
|
|
|
|
confdir/type/<name>/parameter/default/*
|
|
Default values for optional parameters.
|
|
Assuming an optional parameter name of 'foo', it's default value would
|
|
be read from the file confdir/type/<name>/parameter/default/foo.
|
|
|
|
confdir/type/<name>/parameter/boolean
|
|
Boolean parameters accepted by type, \n separated list.
|
|
|
|
confdir/type/<name>/explorer
|
|
Location of the type specific explorers.
|
|
This directory is referenced by the variable __type_explorer (see below).
|
|
See `cdist explorer <cdist-explorer.html>`_.
|
|
|
|
confdir/type/<name>/files
|
|
This directory is reserved for user data and will not be used
|
|
by cdist at any time. It can be used for storing supplementary
|
|
files (like scripts to act as a template or configuration files).
|
|
|
|
out/
|
|
This directory contains output of cdist and is usually located
|
|
in a temporary directory and thus will be removed after the run.
|
|
This directory is referenced by the variable __global (see below).
|
|
|
|
out/explorer
|
|
Output of general explorers.
|
|
|
|
out/object
|
|
Objects created for the host.
|
|
|
|
out/object/<object>
|
|
Contains all object specific information.
|
|
This directory is referenced by the variable __object (see below).
|
|
|
|
out/object/<object>/explorers
|
|
Output of type specific explorers, per object.
|
|
|
|
Types
|
|
-----
|
|
The following types are available:
|
|
|
|
- __apt_key (`cdist-type__apt_key(7) <man7/cdist-type__apt_key.html>`_)
|
|
- __apt_key_uri (`cdist-type__apt_key_uri(7) <man7/cdist-type__apt_key_uri.html>`_)
|
|
- __apt_norecommends (`cdist-type__apt_norecommends(7) <man7/cdist-type__apt_norecommends.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_update_index (`cdist-type__apt_update_index(7) <man7/cdist-type__apt_update_index.html>`_)
|
|
- __block (`cdist-type__block(7) <man7/cdist-type__block.html>`_)
|
|
- __ccollect_source (`cdist-type__ccollect_source(7) <man7/cdist-type__ccollect_source.html>`_)
|
|
- __cdist (`cdist-type__cdist(7) <man7/cdist-type__cdist.html>`_)
|
|
- __cdistmarker (`cdist-type__cdistmarker(7) <man7/cdist-type__cdistmarker.html>`_)
|
|
- __config_file (`cdist-type__config_file(7) <man7/cdist-type__config_file.html>`_)
|
|
- __consul (`cdist-type__consul(7) <man7/cdist-type__consul.html>`_)
|
|
- __consul_agent (`cdist-type__consul_agent(7) <man7/cdist-type__consul_agent.html>`_)
|
|
- __consul_check (`cdist-type__consul_check(7) <man7/cdist-type__consul_check.html>`_)
|
|
- __consul_reload (`cdist-type__consul_reload(7) <man7/cdist-type__consul_reload.html>`_)
|
|
- __consul_service (`cdist-type__consul_service(7) <man7/cdist-type__consul_service.html>`_)
|
|
- __consul_template (`cdist-type__consul_template(7) <man7/cdist-type__consul_template.html>`_)
|
|
- __consul_template_template (`cdist-type__consul_template_template(7) <man7/cdist-type__consul_template_template.html>`_)
|
|
- __consul_watch_checks (`cdist-type__consul_watch_checks(7) <man7/cdist-type__consul_watch_checks.html>`_)
|
|
- __consul_watch_event (`cdist-type__consul_watch_event(7) <man7/cdist-type__consul_watch_event.html>`_)
|
|
- __consul_watch_key (`cdist-type__consul_watch_key(7) <man7/cdist-type__consul_watch_key.html>`_)
|
|
- __consul_watch_keyprefix (`cdist-type__consul_watch_keyprefix(7) <man7/cdist-type__consul_watch_keyprefix.html>`_)
|
|
- __consul_watch_nodes (`cdist-type__consul_watch_nodes(7) <man7/cdist-type__consul_watch_nodes.html>`_)
|
|
- __consul_watch_service (`cdist-type__consul_watch_service(7) <man7/cdist-type__consul_watch_service.html>`_)
|
|
- __consul_watch_services (`cdist-type__consul_watch_services(7) <man7/cdist-type__consul_watch_services.html>`_)
|
|
- __cron (`cdist-type__cron(7) <man7/cdist-type__cron.html>`_)
|
|
- __debconf_set_selections (`cdist-type__debconf_set_selections(7) <man7/cdist-type__debconf_set_selections.html>`_)
|
|
- __directory (`cdist-type__directory(7) <man7/cdist-type__directory.html>`_)
|
|
- __dog_vdi (`cdist-type__dog_vdi(7) <man7/cdist-type__dog_vdi.html>`_)
|
|
- __file (`cdist-type__file(7) <man7/cdist-type__file.html>`_)
|
|
- __filesystem (`cdist-type__filesystem(7) <man7/cdist-type__filesystem.html>`_)
|
|
- __firewalld_rule (`cdist-type__firewalld_rule(7) <man7/cdist-type__firewalld_rule.html>`_)
|
|
- __git (`cdist-type__git(7) <man7/cdist-type__git.html>`_)
|
|
- __group (`cdist-type__group(7) <man7/cdist-type__group.html>`_)
|
|
- __hostname (`cdist-type__hostname(7) <man7/cdist-type__hostname.html>`_)
|
|
- __iptables_apply (`cdist-type__iptables_apply(7) <man7/cdist-type__iptables_apply.html>`_)
|
|
- __iptables_rule (`cdist-type__iptables_rule(7) <man7/cdist-type__iptables_rule.html>`_)
|
|
- __issue (`cdist-type__issue(7) <man7/cdist-type__issue.html>`_)
|
|
- __jail (`cdist-type__jail(7) <man7/cdist-type__jail.html>`_)
|
|
- __jail_freebsd10 (`cdist-type__jail_freebsd10(7) <man7/cdist-type__jail_freebsd10.html>`_)
|
|
- __jail_freebsd9 (`cdist-type__jail_freebsd9(7) <man7/cdist-type__jail_freebsd9.html>`_)
|
|
- __key_value (`cdist-type__key_value(7) <man7/cdist-type__key_value.html>`_)
|
|
- __keyboard (`cdist-type__keyboard(7) <man7/cdist-type__keyboard.html>`_)
|
|
- __line (`cdist-type__line(7) <man7/cdist-type__line.html>`_)
|
|
- __link (`cdist-type__link(7) <man7/cdist-type__link.html>`_)
|
|
- __locale (`cdist-type__locale(7) <man7/cdist-type__locale.html>`_)
|
|
- __locale_system (`cdist-type__locale_system(7) <man7/cdist-type__locale_system.html>`_)
|
|
- __motd (`cdist-type__motd(7) <man7/cdist-type__motd.html>`_)
|
|
- __mount (`cdist-type__mount(7) <man7/cdist-type__mount.html>`_)
|
|
- __mysql_database (`cdist-type__mysql_database(7) <man7/cdist-type__mysql_database.html>`_)
|
|
- __package (`cdist-type__package(7) <man7/cdist-type__package.html>`_)
|
|
- __package_apt (`cdist-type__package_apt(7) <man7/cdist-type__package_apt.html>`_)
|
|
- __package_emerge (`cdist-type__package_emerge(7) <man7/cdist-type__package_emerge.html>`_)
|
|
- __package_emerge_dependencies (`cdist-type__package_emerge_dependencies(7) <man7/cdist-type__package_emerge_dependencies.html>`_)
|
|
- __package_luarocks (`cdist-type__package_luarocks(7) <man7/cdist-type__package_luarocks.html>`_)
|
|
- __package_opkg (`cdist-type__package_opkg(7) <man7/cdist-type__package_opkg.html>`_)
|
|
- __package_pacman (`cdist-type__package_pacman(7) <man7/cdist-type__package_pacman.html>`_)
|
|
- __package_pip (`cdist-type__package_pip(7) <man7/cdist-type__package_pip.html>`_)
|
|
- __package_pkg_freebsd (`cdist-type__package_pkg_freebsd(7) <man7/cdist-type__package_pkg_freebsd.html>`_)
|
|
- __package_pkg_openbsd (`cdist-type__package_pkg_openbsd(7) <man7/cdist-type__package_pkg_openbsd.html>`_)
|
|
- __package_pkgng_freebsd (`cdist-type__package_pkgng_freebsd(7) <man7/cdist-type__package_pkgng_freebsd.html>`_)
|
|
- __package_rubygem (`cdist-type__package_rubygem(7) <man7/cdist-type__package_rubygem.html>`_)
|
|
- __package_update_index (`cdist-type__package_update_index(7) <man7/cdist-type__package_update_index.html>`_)
|
|
- __package_upgrade_all (`cdist-type__package_upgrade_all(7) <man7/cdist-type__package_upgrade_all.html>`_)
|
|
- __package_yum (`cdist-type__package_yum(7) <man7/cdist-type__package_yum.html>`_)
|
|
- __package_zypper (`cdist-type__package_zypper(7) <man7/cdist-type__package_zypper.html>`_)
|
|
- __pacman_conf (`cdist-type__pacman_conf(7) <man7/cdist-type__pacman_conf.html>`_)
|
|
- __pacman_conf_integrate (`cdist-type__pacman_conf_integrate(7) <man7/cdist-type__pacman_conf_integrate.html>`_)
|
|
- __pf_apply (`cdist-type__pf_apply(7) <man7/cdist-type__pf_apply.html>`_)
|
|
- __pf_ruleset (`cdist-type__pf_ruleset(7) <man7/cdist-type__pf_ruleset.html>`_)
|
|
- __postfix (`cdist-type__postfix(7) <man7/cdist-type__postfix.html>`_)
|
|
- __postfix_master (`cdist-type__postfix_master(7) <man7/cdist-type__postfix_master.html>`_)
|
|
- __postfix_postconf (`cdist-type__postfix_postconf(7) <man7/cdist-type__postfix_postconf.html>`_)
|
|
- __postfix_postmap (`cdist-type__postfix_postmap(7) <man7/cdist-type__postfix_postmap.html>`_)
|
|
- __postfix_reload (`cdist-type__postfix_reload(7) <man7/cdist-type__postfix_reload.html>`_)
|
|
- __postgres_database (`cdist-type__postgres_database(7) <man7/cdist-type__postgres_database.html>`_)
|
|
- __postgres_role (`cdist-type__postgres_role(7) <man7/cdist-type__postgres_role.html>`_)
|
|
- __process (`cdist-type__process(7) <man7/cdist-type__process.html>`_)
|
|
- __pyvenv (`cdist-type__pyvenv(7) <man7/cdist-type__pyvenv.html>`_)
|
|
- __qemu_img (`cdist-type__qemu_img(7) <man7/cdist-type__qemu_img.html>`_)
|
|
- __rbenv (`cdist-type__rbenv(7) <man7/cdist-type__rbenv.html>`_)
|
|
- __rsync (`cdist-type__rsync(7) <man7/cdist-type__rsync.html>`_)
|
|
- __rvm (`cdist-type__rvm(7) <man7/cdist-type__rvm.html>`_)
|
|
- __rvm_gem (`cdist-type__rvm_gem(7) <man7/cdist-type__rvm_gem.html>`_)
|
|
- __rvm_gemset (`cdist-type__rvm_gemset(7) <man7/cdist-type__rvm_gemset.html>`_)
|
|
- __rvm_ruby (`cdist-type__rvm_ruby(7) <man7/cdist-type__rvm_ruby.html>`_)
|
|
- __ssh_authorized_key (`cdist-type__ssh_authorized_key(7) <man7/cdist-type__ssh_authorized_key.html>`_)
|
|
- __ssh_authorized_keys (`cdist-type__ssh_authorized_keys(7) <man7/cdist-type__ssh_authorized_keys.html>`_)
|
|
- __ssh_dot_ssh (`cdist-type__ssh_dot_ssh(7) <man7/cdist-type__ssh_dot_ssh.html>`_)
|
|
- __staged_file (`cdist-type__staged_file(7) <man7/cdist-type__staged_file.html>`_)
|
|
- __start_on_boot (`cdist-type__start_on_boot(7) <man7/cdist-type__start_on_boot.html>`_)
|
|
- __sysctl (`cdist-type__sysctl(7) <man7/cdist-type__sysctl.html>`_)
|
|
- __timezone (`cdist-type__timezone(7) <man7/cdist-type__timezone.html>`_)
|
|
- __update_alternatives (`cdist-type__update_alternatives(7) <man7/cdist-type__update_alternatives.html>`_)
|
|
- __user (`cdist-type__user(7) <man7/cdist-type__user.html>`_)
|
|
- __user_groups (`cdist-type__user_groups(7) <man7/cdist-type__user_groups.html>`_)
|
|
- __yum_repo (`cdist-type__yum_repo(7) <man7/cdist-type__yum_repo.html>`_)
|
|
- __zypper_repo (`cdist-type__zypper_repo(7) <man7/cdist-type__zypper_repo.html>`_)
|
|
- __zypper_service (`cdist-type__zypper_service(7) <man7/cdist-type__zypper_service.html>`_)
|
|
|
|
|
|
Objects
|
|
-------
|
|
For object to object communication and tests, the following paths are
|
|
usable within a object directory:
|
|
|
|
files
|
|
This directory is reserved for user data and will not be used
|
|
by cdist at any time. It can be used freely by the type
|
|
(for instance to store template results).
|
|
changed
|
|
This empty file exists in an object directory, if the object has
|
|
code to be executed (either remote or local).
|
|
stdin
|
|
This file exists and contains data, if data was provided on stdin
|
|
when the type was called.
|
|
|
|
|
|
Environment variables (for reading)
|
|
-----------------------------------
|
|
The following environment variables are exported by cdist:
|
|
|
|
__explorer
|
|
Directory that contains all global explorers.
|
|
Available for: initial manifest, explorer, type explorer, shell.
|
|
__files
|
|
Directory that contains content from the "files" subdirectories
|
|
from the configuration directories.
|
|
Available for: initial manifest, type manifest, type gencode, shell.
|
|
__manifest
|
|
Directory that contains the initial manifest.
|
|
Available for: initial manifest, type manifest, shell.
|
|
__global
|
|
Directory that contains generic output like explorer.
|
|
Available for: initial manifest, type manifest, type gencode, shell.
|
|
__messages_in
|
|
File to read messages from.
|
|
Available for: initial manifest, type manifest, type gencode.
|
|
__messages_out
|
|
File to write messages.
|
|
Available for: initial manifest, type manifest, type gencode.
|
|
__object
|
|
Directory that contains the current object.
|
|
Available for: type manifest, type explorer, type gencode and code scripts.
|
|
__object_id
|
|
The type unique object id.
|
|
Available for: type manifest, type explorer, type gencode and code scripts.
|
|
Note: The leading and the trailing "/" will always be stripped (caused by
|
|
the filesystem database and ensured by the core).
|
|
Note: Double slashes ("//") will not be fixed and result in an error.
|
|
__object_name
|
|
The full qualified name of the current object.
|
|
Available for: type manifest, type explorer, type gencode.
|
|
__target_host
|
|
The host we are deploying to. This is primary variable. It's content is
|
|
literally the one user passed in.
|
|
Available for: explorer, initial manifest, type explorer, type manifest, type gencode, shell.
|
|
__target_hostname
|
|
The hostname of host we are deploying to. This variable is derived from
|
|
**__target_host** (using **socket.getaddrinfo(__target_host)** and then
|
|
**socket.gethostbyaddr()**).
|
|
Available for: explorer, initial manifest, type explorer, type manifest, type gencode, shell.
|
|
__target_fqdn
|
|
The fully qualified domain name of the host we are deploying to.
|
|
This variable is derived from **__target_host**
|
|
(using **socket.getfqdn()**).
|
|
Available for: explorer, initial manifest, type explorer, type manifest, type gencode, shell.
|
|
__type
|
|
Path to the current type.
|
|
Available for: type manifest, type gencode.
|
|
__type_explorer
|
|
Directory that contains the type explorers.
|
|
Available for: type explorer.
|
|
|
|
Environment variables (for writing)
|
|
-----------------------------------
|
|
The following environment variables influence the behaviour of cdist:
|
|
|
|
require
|
|
Setup dependencies between objects (see `cdist manifest <cdist-manifest.html>`_).
|
|
|
|
CDIST_PATH
|
|
Colon delimited list of config directories.
|
|
|
|
CDIST_LOCAL_SHELL
|
|
Use this shell locally instead of /bin/sh to execute scripts.
|
|
|
|
CDIST_REMOTE_SHELL
|
|
Use this shell remotely instead of /bin/sh to execute scripts.
|
|
|
|
CDIST_OVERRIDE
|
|
Allow overwriting type parameters (see `cdist manifest <cdist-manifest.html>`_).
|
|
|
|
CDIST_ORDER_DEPENDENCY
|
|
Create dependencies based on the execution order (see `cdist manifest <cdist-manifest.html>`_).
|
|
|
|
CDIST_REMOTE_EXEC
|
|
Use this command for remote execution (should behave like ssh).
|
|
|
|
CDIST_REMOTE_COPY
|
|
Use this command for remote copy (should behave like scp).
|