forked from ungleich-public/cdist
		
	
		
			
				
	
	
		
			77 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
cdist-language(7)
 | 
						|
=================
 | 
						|
Nico Schottelius <nico-cdist--@--schottelius.org>
 | 
						|
 | 
						|
 | 
						|
NAME
 | 
						|
----
 | 
						|
cdist-language - Cdist Configuration language
 | 
						|
 | 
						|
 | 
						|
DESCRIPTION
 | 
						|
-----------
 | 
						|
A cdist configuration consists of the following parts:
 | 
						|
 | 
						|
- host definitions (cdist-language-hosts(7))
 | 
						|
- library (cdist-language-library(7))
 | 
						|
- modules (cdist-language-modules(7))
 | 
						|
 | 
						|
In short the configuration is built as follows:
 | 
						|
 | 
						|
- conf/hosts/init is executed, the resulting output is used for module loading
 | 
						|
- the appropriate modules are loaded and executed, which
 | 
						|
- use library functions.
 | 
						|
 | 
						|
The three stages are used to seperate configurations:
 | 
						|
 | 
						|
- hosts contain mappings to created modules
 | 
						|
- modules create (probably site specific) configurations using library collections
 | 
						|
- the library is shipped with cdist, but can be extendet locally
 | 
						|
 | 
						|
 | 
						|
   - DSL: Shell!
 | 
						|
      - gives if, else and EVEN elsif for free!
 | 
						|
      - and case
 | 
						|
      - and and and
 | 
						|
      - and there's no os (solaris doesn't count) without a usable /bin/sh
 | 
						|
      - cdist defines what you can use
 | 
						|
         - you _can_ use os specific stuff
 | 
						|
         - but it's ugly and you shoot into your own foot
 | 
						|
      - "manifests" (use the same name here?) will be run/sourced
 | 
						|
         - inheritance possible via sourcing
 | 
						|
         - cdist-lib always preloaded
 | 
						|
      - library == functions?
 | 
						|
 | 
						|
   - matching on explored items, not only on host name?
 | 
						|
         - match function in host? [optional]
 | 
						|
         - explorer ran before!
 | 
						|
 | 
						|
- document exported variables!
 | 
						|
   use __ prefix instead of __cdist (shorter writing, __ is defined as sytem anyway)
 | 
						|
 | 
						|
- library vs. modules?
 | 
						|
 | 
						|
Requirements:
 | 
						|
   It MUST be incredible easy/dumb to add new types.
 | 
						|
      => growable default types
 | 
						|
 | 
						|
   - how to write a module
 | 
						|
      - module function autoloading via *.sh
 | 
						|
      - module "manifest"?
 | 
						|
         - create functions in *.sh 
 | 
						|
         - name functions "modulename_function"
 | 
						|
            module hellow
 | 
						|
            function kitty
 | 
						|
            => hellow_kitty
 | 
						|
 | 
						|
      - you are advised (not forced) to put files
 | 
						|
         to a subdirectory named "files"
 | 
						|
 | 
						|
SEE ALSO
 | 
						|
--------
 | 
						|
 | 
						|
 | 
						|
COPYING
 | 
						|
-------
 | 
						|
Copyright \(C) 2010 Nico Schottelius. Free use of this software is
 | 
						|
granted under the terms of the GNU General Public License version 3 (GPLv3).
 |