mega cleaunp discussion commit :-)
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
		
					parent
					
						
							
								d171ad5e64
							
						
					
				
			
			
				commit
				
					
						4b5d7dda25
					
				
			
		
					 40 changed files with 84 additions and 67 deletions
				
			
		| 
						 | 
					@ -9,7 +9,7 @@ Do not believe anything written in cdist, besides what's written in this file
 | 
				
			||||||
   -- Nico, 20101201
 | 
					   -- Nico, 20101201
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What you can do so far:
 | 
					What you can do so far: (executed from top level directory)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# prepare use:
 | 
					# prepare use:
 | 
				
			||||||
export PATH="$PATH:$(pwd -P)/bin"
 | 
					export PATH="$PATH:$(pwd -P)/bin"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										6
									
								
								TODO
									
										
									
									
									
								
							
							
						
						
									
										6
									
								
								TODO
									
										
									
									
									
								
							| 
						 | 
					@ -6,6 +6,7 @@
 | 
				
			||||||
         - cdist-push-pull
 | 
					         - cdist-push-pull
 | 
				
			||||||
         - cdist-quickstart
 | 
					         - cdist-quickstart
 | 
				
			||||||
         - cdist-types           [IMPORTANT]
 | 
					         - cdist-types           [IMPORTANT]
 | 
				
			||||||
 | 
					         - cdist.text            [IMPORTANT]
 | 
				
			||||||
      - add terminology
 | 
					      - add terminology
 | 
				
			||||||
      - define steps within configuration apply
 | 
					      - define steps within configuration apply
 | 
				
			||||||
         - detect impossible/unsafe things:
 | 
					         - detect impossible/unsafe things:
 | 
				
			||||||
| 
						 | 
					@ -14,12 +15,11 @@
 | 
				
			||||||
         - and report location of occurence
 | 
					         - and report location of occurence
 | 
				
			||||||
         - parse afterwards?
 | 
					         - parse afterwards?
 | 
				
			||||||
      - multi master setups
 | 
					      - multi master setups
 | 
				
			||||||
 | 
					      - templating
 | 
				
			||||||
         - how to define templates
 | 
					         - how to define templates
 | 
				
			||||||
            - variable substitution from shell may be problematic
 | 
					            - variable substitution from shell may be problematic
 | 
				
			||||||
         - SHELL SCRIPTS! (executables? do not support?)
 | 
					         - SHELL SCRIPTS! (executables? do not support?)
 | 
				
			||||||
            - stdout
 | 
					            - stdout == output of template == what will be used
 | 
				
			||||||
   - cleanup / integrate doc/man/cdist.text
 | 
					 | 
				
			||||||
- cdist-explore
 | 
					- cdist-explore
 | 
				
			||||||
   - add more stuff to explore
 | 
					   - add more stuff to explore
 | 
				
			||||||
   - write manpage
 | 
					   - write manpage
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,41 +0,0 @@
 | 
				
			||||||
#!/bin/sh
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# 2010 Nico Schottelius (nico-cdist at schottelius.org)
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# This file is part of cdist.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# cdist is free software: you can redistribute it and/or modify
 | 
					 | 
				
			||||||
# it under the terms of the GNU General Public License as published by
 | 
					 | 
				
			||||||
# the Free Software Foundation, either version 3 of the License, or
 | 
					 | 
				
			||||||
# (at your option) any later version.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# cdist is distributed in the hope that it will be useful,
 | 
					 | 
				
			||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 | 
				
			||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					 | 
				
			||||||
# GNU General Public License for more details.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# You should have received a copy of the GNU General Public License
 | 
					 | 
				
			||||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Apply configuration to local host
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
. cdist-config
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
whereiam="$(cdist_explore_hostname)"
 | 
					 | 
				
			||||||
conf="${CDIST_HOSTS}/${whereiam}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [ ! -d "${conf}" ]; then
 | 
					 | 
				
			||||||
   echo "Sorry, ${whereiam} has no configuration"
 | 
					 | 
				
			||||||
   exit 1
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Run the manifest, but abort on first error
 | 
					 | 
				
			||||||
set -e
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# change to config dir, to be able to use relative filenames
 | 
					 | 
				
			||||||
cd "${conf}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# And apply the stuff
 | 
					 | 
				
			||||||
. "${conf}/manifest"
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +1,4 @@
 | 
				
			||||||
setenv PATH ${PATH}:${HOME}/cdist/bin
 | 
					setenv PATH ${PATH}:${HOME}/cdist/bin
 | 
				
			||||||
setenv CDIST_CONFIG ${HOME}/cdist/conf
 | 
					setenv CDIST_CONFIG ${HOME}/cdist/conf
 | 
				
			||||||
 | 
					export PATH=$PATH:$HOME/cdist/bin
 | 
				
			||||||
 | 
					export CDIST_CONFIG=$HOME/cdist/conf
 | 
				
			||||||
| 
						 | 
					@ -8,7 +8,7 @@ conf/manifests/init
 | 
				
			||||||
      will be available for tracking in
 | 
					      will be available for tracking in
 | 
				
			||||||
      cdist core functions
 | 
					      cdist core functions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
core/manifests/* (all other)
 | 
					conf/manifests/* (all other)
 | 
				
			||||||
   - same function as above
 | 
					   - same function as above
 | 
				
			||||||
   - but won't be called by cdist
 | 
					   - but won't be called by cdist
 | 
				
			||||||
   - method to seperate configuration parts
 | 
					   - method to seperate configuration parts
 | 
				
			||||||
| 
						 | 
					@ -26,9 +26,8 @@ conf/types/<name>/
 | 
				
			||||||
              but more like reusable defines
 | 
					              but more like reusable defines
 | 
				
			||||||
   - or may implement some functionality on their own
 | 
					   - or may implement some functionality on their own
 | 
				
			||||||
 | 
					
 | 
				
			||||||
lib/types/<name>/
 | 
					conf/explorers/<name>
 | 
				
			||||||
   - same as above, but provided by the cdist distribution
 | 
					   - explorers to be run on the target hosts
 | 
				
			||||||
   - if name exists in both, conf/ has priority
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Differences manifests vs. types
 | 
					Differences manifests vs. types
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,22 @@
 | 
				
			||||||
 | 
					1) safer and fast version
 | 
				
			||||||
 | 
					   cat blob | ssh host > tmp;
 | 
				
			||||||
 | 
					   for var in ...
 | 
				
			||||||
 | 
					      var=grep ^var= tmp
 | 
				
			||||||
 | 
					2) slow & secure
 | 
				
			||||||
 | 
					   for var in ...
 | 
				
			||||||
 | 
					   eval var=$(cat single_blob | ssh host"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					3) easy & insecure
 | 
				
			||||||
 | 
					   cat blob | ssh host > tmp; . tmp
 | 
				
			||||||
 | 
					   
 | 
				
			||||||
 | 
					4)   - rsync here/explorers target/explorers
 | 
				
			||||||
 | 
					   - ssh target_host for explorer in target/explorers/; do
 | 
				
			||||||
 | 
					      target/explorers/$explorer > target/cache/explorers/$explorer
 | 
				
			||||||
 | 
					     done
 | 
				
			||||||
 | 
					   - rsync target/cache/explorers here/cache/explorers....
 | 
				
			||||||
 | 
					   - MINUS RSYNC!!!!!!!!!??????????
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TO_MAN: EXPLORER VALUES ARE UNTRUSTED (think of webclients and webapps)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										50
									
								
								doc/internal.REMOVE_PRE_1.0/logs/2011-02-03
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								doc/internal.REMOVE_PRE_1.0/logs/2011-02-03
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,50 @@
 | 
				
			||||||
 | 
					Steven:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- cdist-deploy-to = main script
 | 
				
			||||||
 | 
					- all user usable variables are defined using export __var=...
 | 
				
			||||||
 | 
					- cdist-explorer return one line of output (or empty)
 | 
				
			||||||
 | 
					- cdist-manifest-init: generates what the user defined to be configured on target host
 | 
				
			||||||
 | 
					- HACKERS_README == starting point (until 1.0)
 | 
				
			||||||
 | 
					   - [12:49] kr:cdist% __cdist_config=$(pwd -P)/conf __cdist_target_host=ikq02.ethz.ch cdist-manifest-init 
 | 
				
			||||||
 | 
					- cdist_tree_wrapper == non-user-binary => libexec
 | 
				
			||||||
 | 
					- conf/explorer collection of explorer
 | 
				
			||||||
 | 
					- config-layout: current status of configuration
 | 
				
			||||||
 | 
					   - needs to go into manpage
 | 
				
			||||||
 | 
					- TODO: contains most up-to-date todo stuff, mid-term
 | 
				
			||||||
 | 
					- ROADMAP: next steps
 | 
				
			||||||
 | 
					- Documentation must be bit better than excellent at first release
 | 
				
			||||||
 | 
					- test/: ignore (braindump and pre-braindump)
 | 
				
			||||||
 | 
					- conf/
 | 
				
			||||||
 | 
					   cache: generated
 | 
				
			||||||
 | 
					   explorer: ok => contains explores
 | 
				
			||||||
 | 
					   lib: deprecated (does not exist)
 | 
				
			||||||
 | 
					   manifests: entry point for config2host
 | 
				
			||||||
 | 
					   types: cdist-types(7)
 | 
				
			||||||
 | 
					- alternative names for explorer:
 | 
				
			||||||
 | 
					   - probe
 | 
				
			||||||
 | 
					   - fact
 | 
				
			||||||
 | 
					   - ...
 | 
				
			||||||
 | 
					   - => STEVEN TO DECIDE
 | 
				
			||||||
 | 
					- explorer / execution:
 | 
				
			||||||
 | 
					   - see explorer-implementation-ideas.TO_FINISH_AND_DELETE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Todo:
 | 
				
			||||||
 | 
					- cdist-preprocess:
 | 
				
			||||||
 | 
					   - fix call to cdist-build-explorer and transfer explorer to target host
 | 
				
			||||||
 | 
					- cdist-manifest-init/ cdist_tree_wrapper:
 | 
				
			||||||
 | 
					   - fails on second run => use different cache! (old cache exists until new is valid!)
 | 
				
			||||||
 | 
					- .source in cdist_tree_wrapper records wrong source!
 | 
				
			||||||
 | 
					- cdist-config:
 | 
				
			||||||
 | 
					   - use export to mark user available variables!
 | 
				
			||||||
 | 
					- doc/man/* => defined in TODO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Future:
 | 
				
			||||||
 | 
					- ids containing slashes for easier use in types?
 | 
				
			||||||
 | 
					   - a) __file abc --source /path/from/abc --destination /path/to/abc
 | 
				
			||||||
 | 
					   - b) id=abc
 | 
				
			||||||
 | 
					        __file $id --source /path/from/$id --destination /path/to/$id
 | 
				
			||||||
 | 
					   - c) __file abc --sourcedir /path/from/ --destination_dir /path/to/
 | 
				
			||||||
 | 
					      - type file defines that id is implicitly used when --...dir variants used
 | 
				
			||||||
 | 
					   - d) __file /path/to/abc --source ? --destination ?
 | 
				
			||||||
 | 
					      - reusing id with slashes would be nice
 | 
				
			||||||
| 
						 | 
					@ -1,12 +0,0 @@
 | 
				
			||||||
1) safer and fast version
 | 
					 | 
				
			||||||
   cat blob | ssh host > tmp;
 | 
					 | 
				
			||||||
   for var in ...
 | 
					 | 
				
			||||||
      var=grep ^var= tmp
 | 
					 | 
				
			||||||
2) slow & secure
 | 
					 | 
				
			||||||
   for var in ...
 | 
					 | 
				
			||||||
   eval var=$(cat single_blob | ssh host"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
3) easy & insecure
 | 
					 | 
				
			||||||
   cat blob | ssh host > tmp; . tmp
 | 
					 | 
				
			||||||
   
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
export PATH=$PATH:$HOME/cdist/bin
 | 
					 | 
				
			||||||
export CDIST_CONFIG=$HOME/cdist/conf
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
$0 evaluated in a sourced script returns name of the caller.
 | 
					 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue