forked from ungleich-public/cdist
		
	
		
			
				
	
	
		
			86 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
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).
 | 
						|
 |