forked from ungleich-public/cdist
		
	completly finish cdist-stages
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
		
					parent
					
						
							
								711fea9e7e
							
						
					
				
			
			
				commit
				
					
						40e670615c
					
				
			
		
					 1 changed files with 46 additions and 41 deletions
				
			
		|  | @ -5,77 +5,82 @@ Nico Schottelius <nico-cdist--@--schottelius.org> | ||||||
| 
 | 
 | ||||||
| NAME | NAME | ||||||
| ---- | ---- | ||||||
| cdist-stages - How the configuration is built | cdist-stages - Stages used during configuration deployment | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| DESCRIPTION | DESCRIPTION | ||||||
| ----------- | ----------- | ||||||
| Starting the execution of deployment with cdist-deploy-to(1), | Starting the execution of deployment with cdist-deploy-to(1), cdist passes | ||||||
| cdist passes through different stages, each can be triggered | through different stages, each can be triggered and debugged on its own. | ||||||
| and debugged on its own. Reading the source of the | Reading the source of the cdist-deploy-to executable shous the scripts | ||||||
| cdist-deploy-to script shous the binaries being responsible | responsible for each stage. | ||||||
| for each stage. | 
 | ||||||
| 
 | 
 | ||||||
| STAGE 1: TARGET INFORMATION RETRIEVAL | STAGE 1: TARGET INFORMATION RETRIEVAL | ||||||
| -------------------------------------- | -------------------------------------- | ||||||
| In this stage information is collected about target using | In this stage information is collected about target using so called explorers. | ||||||
| so called explorers. | Every existing explorer is run on the target and the output of all explorers | ||||||
| Every existing explorer is run on the target and the output | are copied back into the local cache. The results can be used by manifests and | ||||||
| of all explorers are copied back into the local cache. | types. | ||||||
| The results can be used by manifests and types. |  | ||||||
| 
 | 
 | ||||||
| Related manpages are cdist-explorers(7) and cdist-cache(7). | Related manpages are cdist-explorers(7) and cdist-cache(7). | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| STAGE 2: RUN THE INITIAL MANIFEST | STAGE 2: RUN THE INITIAL MANIFEST | ||||||
| --------------------------------- | --------------------------------- | ||||||
| The initial manifest, which should be used for mappings | The initial manifest, which should be used for mappings of hosts to types, | ||||||
| of hosts to types, is executed. | is executed. This stage creates objects in a cconfig database that contains | ||||||
| 
 | the objects as defined in the manifest for the specific host. In this stage, | ||||||
| This stage creates objects in a cconfig database that | no conflicts may occur, i.e. no object of the same type with the same id may | ||||||
| contains as defined in the manifest for the specific host. | be created. | ||||||
| 
 |  | ||||||
| In this stage, no conflicts may occur, i.e. no object of |  | ||||||
| the same type with the same id may be created. |  | ||||||
| 
 | 
 | ||||||
| Related manpages are cdist-manifest-init(1), cdist-manifests(7) and | Related manpages are cdist-manifest-init(1), cdist-manifests(7) and | ||||||
| cdist-config-layout(7). | cdist-config-layout(7). | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| STAGE 3: EXECUTION OF TYPES | STAGE 3: EXECUTION OF TYPES | ||||||
| --------------------------- | --------------------------- | ||||||
| Every object is checked whether its type has an init | Every object is checked whether its type has a manifest file. If the type has | ||||||
| script (see cdist-types(7)). If the type of the object | a manifest file and it is executable, it will be executed. The manifest script | ||||||
| has an init script, it is run. This init script may | may generate and change the created objects. In other words, one type can reuse | ||||||
| generate additional objects. | other types. | ||||||
| 
 | 
 | ||||||
| For instance the object __apache/www.test.ch is of | For instance the object __apache/www.test.ch is of type __apache, which may  | ||||||
| type __apache, which may contain an init script, which | contain an manifest script, which creates new objects of type __file. | ||||||
| creates new objects of type __file. | 
 | ||||||
|  | The newly created objects are merged back into the existing tree. No conflicts | ||||||
|  | may occur during the merge. A conflict would mean that two different objects | ||||||
|  | try to create the same object, which indicates a broken configuration. | ||||||
|  | 
 | ||||||
|  | Related manpage are cdist-types(7) and cdist-manifest-run-all(1). | ||||||
| 
 | 
 | ||||||
| The newly created objects are merged back into |  | ||||||
| the existing tree. No conflicts may occur during |  | ||||||
| the merge. A conflict would mean that two different |  | ||||||
| objects try to create the same object, which indicates a |  | ||||||
| broken configuration. |  | ||||||
| 
 | 
 | ||||||
| STAGE 4: CODE GENERATION | STAGE 4: CODE GENERATION | ||||||
| ------------------------ | ------------------------ | ||||||
| The "gencode" binary of the types for every existing object is | In this stage for every created objects its type is checked whether it has a | ||||||
| called to generate code that will be executed on the target host. | gencode script. If the type has a gencode script and it is executable it will | ||||||
|  | be executed. This executable should create code to be executed on the target | ||||||
|  | on stdout. If the gencode executable fails, it must print diagnostic messages | ||||||
|  | on stderr and exit non-zero. | ||||||
| 
 | 
 | ||||||
| This binary should create code to be executed on the target on stdout. | Related manpages are cdist-types-gencode(7), cdist-gencode(1) and | ||||||
|  | cdist-gencode-all(1). | ||||||
| 
 | 
 | ||||||
| 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 in cdist-types-gencode(7). |  | ||||||
| 
 | 
 | ||||||
| STAGE 5: CODE EXECUTION | STAGE 5: CODE EXECUTION | ||||||
| ----------------------- | ----------------------- | ||||||
|  | The resulting code from the previous stage is transferred to the target host | ||||||
|  | and executed there to apply the configuration changes, | ||||||
| 
 | 
 | ||||||
| The resulting code is transferred to the target host and executed, | Related manpages are cdist-exec-transfer(1) and cdist-exec-run(1). | ||||||
| the run of cdist-deploy-to(1) ends. | 
 | ||||||
|  | 
 | ||||||
|  | SUMMARY | ||||||
|  | ------- | ||||||
|  | If, and only if, all the stages complete without an errors, the configuration | ||||||
|  | will be applied to the target. Each stage can also be run individually, though | ||||||
|  | dependencies for each stage must be fulfilled and thus the stages must be run | ||||||
|  | in correct order. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| SEE ALSO | SEE ALSO | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue