forked from ungleich-public/cdist
f187ed257a
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
119 lines
3.6 KiB
Text
119 lines
3.6 KiB
Text
cdist-stages(7)
|
|
===============
|
|
Nico Schottelius <nico-cdist--@--schottelius.org>
|
|
|
|
|
|
NAME
|
|
----
|
|
cdist-stages - Stages used during configuration deployment
|
|
|
|
|
|
DESCRIPTION
|
|
-----------
|
|
Starting the execution of deployment with cdist-deploy-to(1), cdist passes
|
|
through different stages, each can be triggered and debugged on its own.
|
|
Reading the source of the cdist-deploy-to executable shous the scripts
|
|
responsible for each stage.
|
|
|
|
|
|
STAGE 0: INTERNAL PREPERATION
|
|
-----------------------------
|
|
Before running the user facing stages, cdist prepares the target host
|
|
to contain cdist binaries and creates a clean environment for the
|
|
configuration run.
|
|
|
|
Related manpages:
|
|
- cdist-bin-transfer(1)
|
|
|
|
|
|
STAGE 1: TARGET INFORMATION RETRIEVAL
|
|
--------------------------------------
|
|
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.
|
|
|
|
Related manpages:
|
|
- cdist-explorer(7)
|
|
|
|
|
|
STAGE 2: RUN THE INITIAL MANIFEST
|
|
---------------------------------
|
|
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.
|
|
|
|
Related manpages:
|
|
- cdist-manifest(7)
|
|
- cdist-manifest-run(1)
|
|
- cdist-manifest-run-init(1)
|
|
|
|
|
|
STAGE 3: EXECUTION OF OBJECTS
|
|
-----------------------------
|
|
Each object in the cconfig database is run through the following stages:
|
|
-
|
|
|
|
Every object is checked whether its type has a manifest file. If the type has
|
|
a manifest file and it is executable, it will be executed. The manifest script
|
|
may generate and change the created objects. In other words, one type can reuse
|
|
other types.
|
|
|
|
For instance the object __apache/www.test.ch is of type __apache, which may
|
|
contain a manifest script, which creates new objects of type __file.
|
|
|
|
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.
|
|
|
|
Related manpages:
|
|
- cdist-manifest-run(1)
|
|
- cdist-manifest-run-all(1)
|
|
- cdist-type(7)
|
|
|
|
|
|
STAGE 4: CODE GENERATION
|
|
------------------------
|
|
In this stage for every created objects its type is checked whether it has a
|
|
gencode script. If the type has a gencode script and it is executable it will
|
|
be executed. This executable should create code to be executed on the target
|
|
on stdout. If the gencode executable fails, it must print diagnostic messages
|
|
on stderr and exit non-zero.
|
|
|
|
Related manpages:
|
|
- cdist-gencode(1)
|
|
- cdist-gencode-all(1)
|
|
- cdist-type(7)
|
|
|
|
|
|
STAGE 5: CODE EXECUTION
|
|
-----------------------
|
|
The resulting code from the previous stage is transferred to the target host
|
|
and executed there to apply the configuration changes,
|
|
|
|
Related manpages:
|
|
- cdist-exec-run(1)
|
|
- cdist-exec-transfer(1)
|
|
|
|
|
|
SUMMARY
|
|
-------
|
|
If, and only if, all the stages complete without an errors, the configuration
|
|
will be applied to the target. Each stage can also be run individually, though
|
|
dependencies for each stage must be fulfilled and thus the stages must be run
|
|
in correct order.
|
|
|
|
|
|
SEE ALSO
|
|
--------
|
|
- cdist(7)
|
|
- cdist-deploy-to(1)
|
|
- cdist-reference(7)
|
|
|
|
|
|
COPYING
|
|
-------
|
|
Copyright \(C) 2010-2011 Nico Schottelius. Free use of this software is
|
|
granted under the terms of the GNU General Public License version 3 (GPLv3).
|