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:
 | |
| 
 | |
| - manifests (cdist-manifests(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-2011 Nico Schottelius. Free use of this software is
 | |
| granted under the terms of the GNU General Public License version 3 (GPLv3).
 |