forked from ungleich-public/cdist
		
	begin document cdist-stages
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
		
					parent
					
						
							
								3112534213
							
						
					
				
			
			
				commit
				
					
						edc82f5423
					
				
			
		
					 2 changed files with 78 additions and 63 deletions
				
			
		
							
								
								
									
										78
									
								
								doc/man/cdist-stages.text
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								doc/man/cdist-stages.text
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,78 @@ | ||||||
|  | cdist-types(7) | ||||||
|  | =============== | ||||||
|  | Nico Schottelius <nico-cdist--@--schottelius.org> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | NAME | ||||||
|  | ---- | ||||||
|  | cdist-types - Functionality bundled | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | DESCRIPTION | ||||||
|  | ----------- | ||||||
|  |    First stage: [done] | ||||||
|  |    - If cdist encounters type in manifest, | ||||||
|  |      a wrapper script is run, that creates a | ||||||
|  |      new entry in the cconfig database and adds | ||||||
|  |      attribute values. This defines a cconfig | ||||||
|  |      tree, that may look as follows: | ||||||
|  |        | ||||||
|  |       <hostname>/<type>/<id>/<parameters>: | ||||||
|  | 
 | ||||||
|  |       myhost/__file/cdist_bin/source | ||||||
|  |       myhost/__file/cdist_bin/destination | ||||||
|  |       ... | ||||||
|  | 
 | ||||||
|  |    - In this stage, no conflicts may occur, as | ||||||
|  |      no type code has been called (i.e. only | ||||||
|  |      manifests, which map config to hosts is | ||||||
|  |      applied). | ||||||
|  | 
 | ||||||
|  |    Second stage: [done] | ||||||
|  |    - The "init" script of every used type | ||||||
|  |      (i.e. the manifests created at least one object) | ||||||
|  |      is called, which again is able to call other | ||||||
|  |      types. All created objects may also be modified | ||||||
|  |      by the type. | ||||||
|  | 
 | ||||||
|  |      For instance a "httpd" type may call the | ||||||
|  |      "webroot" type with --path / ...  | ||||||
|  |      # FIND CASE WHERE SENSEFUL => look through | ||||||
|  |      current puppet config | ||||||
|  | 
 | ||||||
|  |    - The newly created objects are merged back into | ||||||
|  |      the existing tree. No conflicts may occur during | ||||||
|  |      the merge, because this would implicit that the | ||||||
|  |      type conflicts with other types. | ||||||
|  | 
 | ||||||
|  |      The idea of this that a type may expand another | ||||||
|  |      type with functionality, but may need to adjust | ||||||
|  |      ("overwrite") settings from the original type. | ||||||
|  | 
 | ||||||
|  |    Third stage: | ||||||
|  |    - Cdist calls the "gencode" binary of the types | ||||||
|  |      for every created object. This binary should create | ||||||
|  |      code to be executed on the target on stdout. | ||||||
|  | 
 | ||||||
|  |      If the gencode binary fails, it must print diagnostic | ||||||
|  |      messages on stderr and exit non-zero. | ||||||
|  | 
 | ||||||
|  |      A description of what the generated code may/must/should | ||||||
|  |      do can be found at the end of this document. | ||||||
|  | 
 | ||||||
|  |    - Cdist merges together the generated code | ||||||
|  |      (taking care of DEPENDENCIES (which are not | ||||||
|  |      yet defined (take care, double nested brackets))) | ||||||
|  | 
 | ||||||
|  |    Fourth stage: | ||||||
|  |    - The resulting shell script is transferred | ||||||
|  |      to the target and executed. | ||||||
|  | 
 | ||||||
|  | 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). | ||||||
|  | @ -66,69 +66,6 @@ type layout: | ||||||
|       config   # binary that is called to adjust cconfig tree |       config   # binary that is called to adjust cconfig tree | ||||||
|       change   # binary that is called on the remote host? |       change   # binary that is called on the remote host? | ||||||
| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ||||||
| cdist view on types: |  | ||||||
| 
 |  | ||||||
| How types are integrated/run: |  | ||||||
| 
 |  | ||||||
|    First stage: [done] |  | ||||||
|    - If cdist encounters type in manifest, |  | ||||||
|      a wrapper script is run, that creates a |  | ||||||
|      new entry in the cconfig database and adds |  | ||||||
|      attribute values. This defines a cconfig |  | ||||||
|      tree, that may look as follows: |  | ||||||
|        |  | ||||||
|       <hostname>/<type>/<id>/<parameters>: |  | ||||||
| 
 |  | ||||||
|       myhost/__file/cdist_bin/source |  | ||||||
|       myhost/__file/cdist_bin/destination |  | ||||||
|       ... |  | ||||||
| 
 |  | ||||||
|    - In this stage, no conflicts may occur, as |  | ||||||
|      no type code has been called (i.e. only |  | ||||||
|      manifests, which map config to hosts is |  | ||||||
|      applied). |  | ||||||
| 
 |  | ||||||
|    Second stage: [done] |  | ||||||
|    - The "init" script of every used type |  | ||||||
|      (i.e. the manifests created at least one object) |  | ||||||
|      is called, which again is able to call other |  | ||||||
|      types. All created objects may also be modified |  | ||||||
|      by the type. |  | ||||||
| 
 |  | ||||||
|      For instance a "httpd" type may call the |  | ||||||
|      "webroot" type with --path / ...  |  | ||||||
|      # FIND CASE WHERE SENSEFUL => look through |  | ||||||
|      current puppet config |  | ||||||
| 
 |  | ||||||
|    - The newly created objects are merged back into |  | ||||||
|      the existing tree. No conflicts may occur during |  | ||||||
|      the merge, because this would implicit that the |  | ||||||
|      type conflicts with other types. |  | ||||||
| 
 |  | ||||||
|      The idea of this that a type may expand another |  | ||||||
|      type with functionality, but may need to adjust |  | ||||||
|      ("overwrite") settings from the original type. |  | ||||||
| 
 |  | ||||||
|    Third stage: |  | ||||||
|    - Cdist calls the "gencode" binary of the types |  | ||||||
|      for every created object. This binary should create |  | ||||||
|      code to be executed on the target on stdout. |  | ||||||
| 
 |  | ||||||
|      If the gencode binary fails, it must print diagnostic |  | ||||||
|      messages on stderr and exit non-zero. |  | ||||||
| 
 |  | ||||||
|      A description of what the generated code may/must/should |  | ||||||
|      do can be found at the end of this document. |  | ||||||
| 
 |  | ||||||
|    - Cdist merges together the generated code |  | ||||||
|      (taking care of DEPENDENCIES (which are not |  | ||||||
|      yet defined (take care, double nested brackets))) |  | ||||||
| 
 |  | ||||||
|    Fourth stage: |  | ||||||
|    - The resulting shell script is transferred |  | ||||||
|      to the target and executed. |  | ||||||
| 
 |  | ||||||
| -------------------------------------------------------------------------------- |  | ||||||
| Scope of code execution on the client | Scope of code execution on the client | ||||||
| 
 | 
 | ||||||
|    It should be assumed that the clients are pretty dumb |    It should be assumed that the clients are pretty dumb | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue