cdist-stages(7)
===============
Nico Schottelius <nico-cdist--@--schottelius.org>


NAME
----
cdist-stages - How the configuration is built


DESCRIPTION
-----------
Starting the execution of deployment with cdist-deploy-to(1),
cdist passes through different stages:

- First stage: Get information about target
   Every existing explorer (see cdist-explorers(7) is run on
   the target and the results are copied back into the local
   cache (see cdist-cache(7)). These values can be used by
   manifests and types.

- Second stage: Initial manifest run
   The initial manifest (see cdist-manifests(7) is run,
   which is done by cdist-manifest-init(1).
   
   This run creates an internal database in cconfig
   format (see cdist-config-layout(7), that contains all
   objects configured 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.
   
   You can trigger the first stage part using
   cdist-manifest-init(1).

- Third stage: Execution of types [TODO]
   Every object is checked whether its type has an init
   script (see cdist-types(7)). If the type of the object
   has an init script, it is run. This init script may
   generate additional objects.

   For instance the object __apache/www.test.ch is of
   type __apache, which may contain an init 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.

- Fourth stage: Code generation [TODO]
   The "gencode" binary of the types for every existing object is
   called to generate code that will be executed on the target host.

   This binary should create code to be executed on the target on stdout.

   If the gencode binary fails, it must print diagnostic messages on stderr
   and exit non-zero.

   A description of what the generated code may/must/should
   do can be found in cdist-types-gencode(7).

- Fifth stage: [TODO]
   The resulting code is transferred to the target host and executed,
   the run of cdist-deploy-to(1) ends.


SEE ALSO
--------
cdist(7), cdist-deploy-to(1), cdist-config-layout(7), cdist-manifest-init(1)


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).