To have a better understanding of the Archive feature of Rudder, a description of the data workflow can be useful.
All the logic of Rudder Techniques is stored on the filesystem in
/var/rudder/configuration-repository/techniques
.
The files are under version control, using git.
The tree is organized as following:
-
At the first level, techniques are classified in categories: applications,
fileConfiguration, fileDistribution, jobScheduling, system, systemSettings.
The description of the category is included in
category.xml
. - At the second and third level, Technique identifier and version.
-
At the last level, each technique is described with a
metadata.xml
file and one or several CFEngine template files (name ending with.st
).
An extract of Rudder Techniques filesystem tree.
+-- techniques | +-- applications | | +-- apacheServer | | | +-- 1.0 | | | +-- apacheServerConfiguration.st | | | +-- apacheServerInstall.st | | | +-- metadata.xml | | +-- aptPackageInstallation | | | +-- 1.0 | | | +-- aptPackageInstallation.st | | | +-- metadata.xml | | +-- aptPackageManagerSettings | | | +-- 1.0 | | | +-- aptPackageManagerSettings.st | | | +-- metadata.xml | | +-- category.xml | | +-- openvpnClient | | | +-- 1.0 | | | +-- metadata.xml | | | +-- openvpnClientConfiguration.st | | | +-- openvpnInstall.st
At Rudder Server startup, or after the user has requested a reload of the
Rudder Techniques, each metadata.xml
is mapped in memory, and used to create
the LDAP subtree of Active Techniques.
The LDAP tree contains also a set of subtrees for Node Groups, Rules and Node
Configurations.
At each change of the Node Configurations, Rudder Server creates CFEngine draft policies
(Cf3PolicyDraft
) that are stored in memory, and then invokes cf-clerk
.
cf-clerk
finally generates the CFEngine promises for the Nodes.