|
|
|
cdist-design(7)
|
|
|
|
===============
|
|
|
|
Nico Schottelius <nico-cdist--@--schottelius.org>
|
|
|
|
|
|
|
|
|
|
|
|
NAME
|
|
|
|
----
|
|
|
|
cdist-design - Design ideas for cdist
|
|
|
|
|
|
|
|
DESCRIPTION
|
|
|
|
-----------
|
|
|
|
|
|
|
|
When using cdist with the push principle, the execution tree looks likes this:
|
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
% server
|
|
|
|
cdist-deploy-to(1) # main tool for deployment
|
|
|
|
cdist-config(1) # setup environment
|
|
|
|
cdist-build(1) # coordinates build process / dummy otherwise
|
|
|
|
cdist-preprocess(1) # fills up variables with content
|
|
|
|
cdist-explore(1) % client # explores client configuration
|
|
|
|
cdist-compile(1) # parses configuration,
|
|
|
|
# creates internal state in cconfig format,
|
|
|
|
# verifies configuration
|
|
|
|
cdist-link(1) # uses cconfig output, creates executable
|
|
|
|
cdist-remote-exec(1) # coordinates remote execution, dummy otherwise
|
|
|
|
cdist-transfer(1) # transfer executable to client
|
|
|
|
cdist-execute(1) % client # execute resulting executable
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
Operation on the server is run as "cdist" user.
|
|
|
|
Operation on the client is run as "root" user.
|
|
|
|
|
|
|
|
When using cdist with the pull principle (configuration triggered by client):
|
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
% client
|
|
|
|
cdist-trigger(1) <server-hostname> # connects to server
|
|
|
|
cdist-deploy-to(1) <client-hostname> % server: see above
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
MERGE INTO ABOVE.....
|
|
|
|
## How cdist works
|
|
|
|
|
|
|
|
### Exploring your system
|
|
|
|
|
|
|
|
cdist analyses the system to apply the configuration on and
|
|
|
|
selects the right backends. You can use ***cdist-explore*** to
|
|
|
|
the results of the explore functions.
|
|
|
|
|
|
|
|
### Applying the configuration
|
|
|
|
|
|
|
|
cdist looks for the configuration to apply on the local host
|
|
|
|
and applies it using ***cdist-apply***.
|
|
|
|
|
|
|
|
### Managing many hosts
|
|
|
|
|
|
|
|
Whereas ***cdist-apply*** manages one host, ***cdist-deploy***
|
|
|
|
applies the configuration on enabled hosts.
|
|
|
|
|
|
|
|
- version control via git
|
|
|
|
- file distribution via ssh
|
|
|
|
- authentication via ssh
|
|
|
|
|
|
|
|
- dumb clients, similar to manifest compile in puppet
|
|
|
|
- clients just execute commands
|
|
|
|
- dependencies via make?
|
|
|
|
- how to ensure sigletons / conflicting definitions?
|
|
|
|
file { "/a":
|
|
|
|
ensure => present,
|
|
|
|
file { "/a":
|
|
|
|
ensure => absent,
|
|
|
|
=>=>>>>>>>>>>>>>>>> via cconfig
|
|
|
|
|
|
|
|
|
|
|
|
SEE ALSO
|
|
|
|
--------
|
|
|
|
cdist(7), website: http://www.nico.schottelius.org/cdist/[]
|
|
|
|
|
|
|
|
|
|
|
|
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).
|
|
|
|
|