forked from ungleich-public/cdist
		
	Merge remote branch 'nico/master'
This commit is contained in:
		
				commit
				
					
						da532a9068
					
				
			
		
					 17 changed files with 145 additions and 39 deletions
				
			
		
							
								
								
									
										15
									
								
								README
									
										
									
									
									
								
							
							
						
						
									
										15
									
								
								README
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -106,14 +106,15 @@ how to use cdist.
 | 
			
		|||
There are at least the following branches available:
 | 
			
		||||
 | 
			
		||||
 * master: the development branch
 | 
			
		||||
 * 1.5: Focus on object orientation instead of global stage orientation
 | 
			
		||||
 * 1.6: New types, cleaned up \_\_package* types, internal cleanup
 | 
			
		||||
 | 
			
		||||
Old versions:
 | 
			
		||||
 | 
			
		||||
 * 1.5: Focus on object orientation instead of global stage orientation
 | 
			
		||||
 * 1.4: Support for redefiniton of objects (if equal)
 | 
			
		||||
 * 1.3: Support for local and remote code execution (current stable)
 | 
			
		||||
 * 1.2: Dependencies supported
 | 
			
		||||
 * 1.1: __file to __file, __directory, __link migration
 | 
			
		||||
 * 1.1: \_\_file to \_\_file, \_\_directory, \_\_link migration
 | 
			
		||||
 * 1.0: First official release
 | 
			
		||||
 | 
			
		||||
Other branches may be available for features or bugfixes, but they
 | 
			
		||||
| 
						 | 
				
			
			@ -123,7 +124,7 @@ may vanish at any point. To select a specific branch use
 | 
			
		|||
    git checkout -b <name> origin/<name>
 | 
			
		||||
    
 | 
			
		||||
    # Stay on a specific version
 | 
			
		||||
    version=1.5
 | 
			
		||||
    version=1.6
 | 
			
		||||
    git checkout -b $version origin/$version
 | 
			
		||||
 | 
			
		||||
### Mirrors
 | 
			
		||||
| 
						 | 
				
			
			@ -145,6 +146,14 @@ If you stay on a version branche (i.e. 1.0, 1.1., ...), nothing should break.
 | 
			
		|||
The master branch on the other hand is the development branch and may not be
 | 
			
		||||
working, break your setup or eat the tree in your garden.
 | 
			
		||||
 | 
			
		||||
### Upgrading from 1.5 to 1.6
 | 
			
		||||
 | 
			
		||||
* If you used **\_\_package_apt --preseed**, you need to use the new
 | 
			
		||||
  type **\_\_debconf_set_selections** instead.
 | 
			
		||||
* The **\_\_package** types accepted either --state deinstalled or
 | 
			
		||||
  --state uninstaaled. Starting with 1.6, it was made consistently
 | 
			
		||||
  to --state removed.
 | 
			
		||||
 | 
			
		||||
### Upgrading from 1.3 to 1.5
 | 
			
		||||
 | 
			
		||||
No incompatiblities.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,7 +19,7 @@
 | 
			
		|||
#
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
__cdist_version="1.5.0"
 | 
			
		||||
__cdist_version="1.6.0pre"
 | 
			
		||||
 | 
			
		||||
# Fail if something bogus is going on
 | 
			
		||||
set -u
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										51
									
								
								conf/explorer/os_version
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										51
									
								
								conf/explorer/os_version
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,51 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
#
 | 
			
		||||
# 2010-2011 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/>.
 | 
			
		||||
#
 | 
			
		||||
#
 | 
			
		||||
# All os variables are lower case
 | 
			
		||||
#
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
case "$($__explorer/os)" in
 | 
			
		||||
   archlinux)
 | 
			
		||||
      # empty, but well...
 | 
			
		||||
      cat /etc/arch-release
 | 
			
		||||
   ;;
 | 
			
		||||
   debian)
 | 
			
		||||
      cat /etc/debian_version
 | 
			
		||||
   ;;
 | 
			
		||||
   fedora)
 | 
			
		||||
      cat /etc/fedora-release
 | 
			
		||||
   ;;
 | 
			
		||||
   gentoo)
 | 
			
		||||
      cat /etc/gentoo-release
 | 
			
		||||
   ;;
 | 
			
		||||
   macosx|*bsd|solaris)
 | 
			
		||||
      uname -r
 | 
			
		||||
   ;;
 | 
			
		||||
   redhat)
 | 
			
		||||
      cat /etc/redhat-release
 | 
			
		||||
   ;;
 | 
			
		||||
   suse)
 | 
			
		||||
      cat /etc/SuSE-release
 | 
			
		||||
   ;;
 | 
			
		||||
   ubuntu)
 | 
			
		||||
      lsb_release -sr
 | 
			
		||||
   ;;
 | 
			
		||||
esac
 | 
			
		||||
| 
						 | 
				
			
			@ -17,7 +17,7 @@ It dispatches the actual work to the package system dependant types.
 | 
			
		|||
REQUIRED PARAMETERS
 | 
			
		||||
-------------------
 | 
			
		||||
state::
 | 
			
		||||
   The state the package should be in, either "installed" or "uninstalled"
 | 
			
		||||
   The state the package should be in, either "installed" or "removed"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
OPTIONAL PARAMETERS
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -46,10 +46,14 @@ case "$state" in
 | 
			
		|||
         echo $aptget install \"$name\"
 | 
			
		||||
      fi
 | 
			
		||||
   ;;
 | 
			
		||||
   uninstalled)
 | 
			
		||||
   removed)
 | 
			
		||||
      # Remove only if existent
 | 
			
		||||
      if [ -n "$is_installed" ]; then
 | 
			
		||||
         echo $aptget remove \"$name\"
 | 
			
		||||
      fi
 | 
			
		||||
   ;;
 | 
			
		||||
   *)
 | 
			
		||||
      echo "Unknown state: $state" >&2
 | 
			
		||||
      exit 1
 | 
			
		||||
   ;;
 | 
			
		||||
esac
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,7 +17,7 @@ manage packages.
 | 
			
		|||
REQUIRED PARAMETERS
 | 
			
		||||
-------------------
 | 
			
		||||
state::
 | 
			
		||||
   Either "installed" or "deinstalled".
 | 
			
		||||
   Either "installed" or "removed".
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
OPTIONAL PARAMETERS
 | 
			
		||||
| 
						 | 
				
			
			@ -37,7 +37,7 @@ __package_apt zsh --state installed
 | 
			
		|||
__package_apt webserver --state installed --name nginx
 | 
			
		||||
 | 
			
		||||
# Remove obsolete package
 | 
			
		||||
__package_apt puppet --state deinstalled
 | 
			
		||||
__package_apt puppet --state removed
 | 
			
		||||
--------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -44,9 +44,13 @@ case "$state" in
 | 
			
		|||
         echo pacman "$pacopts" -S \"$name\"
 | 
			
		||||
      fi
 | 
			
		||||
   ;;
 | 
			
		||||
   uninstalled)
 | 
			
		||||
   removed)
 | 
			
		||||
      if [ "$pkg_version" ]; then
 | 
			
		||||
         echo pacman "$pacopts" -R \"$name\"
 | 
			
		||||
      fi
 | 
			
		||||
   ;;
 | 
			
		||||
   *)
 | 
			
		||||
      echo "Unknown state: $state" >&2
 | 
			
		||||
      exit 1
 | 
			
		||||
   ;;
 | 
			
		||||
esac
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,7 +17,7 @@ packages.
 | 
			
		|||
REQUIRED PARAMETERS
 | 
			
		||||
-------------------
 | 
			
		||||
state::
 | 
			
		||||
   Either "installed" or "deinstalled".
 | 
			
		||||
   Either "installed" or "removed".
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
OPTIONAL PARAMETERS
 | 
			
		||||
| 
						 | 
				
			
			@ -37,7 +37,7 @@ __package_pacman zsh --state installed
 | 
			
		|||
__package_pacman python --state installed --name python2
 | 
			
		||||
 | 
			
		||||
# Remove obsolete package
 | 
			
		||||
__package_pacman puppet --state deinstalled
 | 
			
		||||
__package_pacman puppet --state removed
 | 
			
		||||
--------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -39,9 +39,13 @@ case "$state" in
 | 
			
		|||
         echo yum $opts install \"$name\"
 | 
			
		||||
      fi
 | 
			
		||||
   ;;
 | 
			
		||||
   uninstalled)
 | 
			
		||||
   removed)
 | 
			
		||||
      if ! grep -q "$not_installed" "$__object/explorer/pkg_version"; then
 | 
			
		||||
         echo yum $opts remove \"$name\"
 | 
			
		||||
      fi
 | 
			
		||||
   ;;
 | 
			
		||||
   *)
 | 
			
		||||
      echo "Unknown state: $state" >&2
 | 
			
		||||
      exit 1
 | 
			
		||||
   ;;
 | 
			
		||||
esac
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,7 +18,7 @@ slightly confusing error message "Error: Nothing to do".
 | 
			
		|||
REQUIRED PARAMETERS
 | 
			
		||||
-------------------
 | 
			
		||||
state::
 | 
			
		||||
   Either "installed" or "deinstalled".
 | 
			
		||||
   Either "installed" or "removed".
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
OPTIONAL PARAMETERS
 | 
			
		||||
| 
						 | 
				
			
			@ -38,7 +38,7 @@ __package_yum zsh --state installed
 | 
			
		|||
__package_yum python --state installed --name python2
 | 
			
		||||
 | 
			
		||||
# Remove obsolete package
 | 
			
		||||
__package_yum puppet --state deinstalled
 | 
			
		||||
__package_yum puppet --state removed
 | 
			
		||||
--------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,10 +32,6 @@ if grep -q "^${name}:" "$__object/explorer/passwd"; then
 | 
			
		|||
      file="$__object/explorer/passwd"
 | 
			
		||||
 | 
			
		||||
      case "$property" in
 | 
			
		||||
         password)
 | 
			
		||||
            field=3 
 | 
			
		||||
            file="$__object/explorer/shadow"
 | 
			
		||||
         ;;
 | 
			
		||||
         gid)
 | 
			
		||||
            if $(echo "$new_value" | grep -q '^[0-9][0-9]*$'); then
 | 
			
		||||
               field=4
 | 
			
		||||
| 
						 | 
				
			
			@ -45,10 +41,14 @@ if grep -q "^${name}:" "$__object/explorer/passwd"; then
 | 
			
		|||
               field=1
 | 
			
		||||
            fi
 | 
			
		||||
         ;;
 | 
			
		||||
         uid)     field=3 ;;
 | 
			
		||||
         password)
 | 
			
		||||
            field=3 
 | 
			
		||||
            file="$__object/explorer/shadow"
 | 
			
		||||
         ;;
 | 
			
		||||
         comment) field=5 ;;
 | 
			
		||||
         home)    field=6 ;;
 | 
			
		||||
         shell)   field=7 ;;
 | 
			
		||||
         uid)     field=3 ;;
 | 
			
		||||
      esac
 | 
			
		||||
 | 
			
		||||
      export field
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,10 @@
 | 
			
		|||
1.6.0:
 | 
			
		||||
	* New Type __package_yum
 | 
			
		||||
	* New type __debconf_set_selections
 | 
			
		||||
	* New explorer os_version
 | 
			
		||||
	* Fix Type __group in case of __group NAME syntax
 | 
			
		||||
	* Fix __package* types: consistently name --state removed instead of
 | 
			
		||||
		uninstalled or deinstalled
 | 
			
		||||
	* Type __package gained Fedora support
 | 
			
		||||
	* Removed --preseed support from __package_apt
 | 
			
		||||
	* explorer/os: gained Fedora support
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										24
									
								
								doc/dev/logs/2011-04-04.openbsd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								doc/dev/logs/2011-04-04.openbsd
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,24 @@
 | 
			
		|||
 | 
			
		||||
Some openbsd experiements:
 | 
			
		||||
 | 
			
		||||
# pkg_add foo                                                                                           
 | 
			
		||||
Can't find foo
 | 
			
		||||
# echo $?
 | 
			
		||||
0
 | 
			
		||||
# 
 | 
			
		||||
# pkg_info foo
 | 
			
		||||
# echo $?
 | 
			
		||||
0
 | 
			
		||||
 | 
			
		||||
# pkg_add -s vim 
 | 
			
		||||
Ambiguous: vim could be vim-7.2.444-gtk2 vim-7.2.444-no_x11
 | 
			
		||||
# pkg_add -s vim--no_x11
 | 
			
		||||
# echo $?
 | 
			
		||||
0
 | 
			
		||||
# pkg_add -s vimfooooooooo
 | 
			
		||||
Can't find vimfooooooooo
 | 
			
		||||
# pkg_add -s vim--foooooooo
 | 
			
		||||
Can't find vim--foooooooo
 | 
			
		||||
# echo $?
 | 
			
		||||
0
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1 +1,3 @@
 | 
			
		|||
- adjust documentation / stages
 | 
			
		||||
Documentation:
 | 
			
		||||
   - update stages
 | 
			
		||||
   - go through all manpages and ensure __ and co are correct
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,6 +23,19 @@ CORE
 | 
			
		|||
   [20:22] kr:bin% 
 | 
			
		||||
 | 
			
		||||
- probably remove or improve cdist-type-template
 | 
			
		||||
- add $__tmp?
 | 
			
		||||
   - for use in manifest, code, etc.?
 | 
			
		||||
      - for creating temporary files, etc.
 | 
			
		||||
 | 
			
		||||
- How to cleanly implement "restart service if config file changed"
 | 
			
		||||
 | 
			
		||||
- Cache
 | 
			
		||||
   - add example how to use 
 | 
			
		||||
   - export variable $__cache
 | 
			
		||||
      -> for current host
 | 
			
		||||
      -> add function to cdist-config, import from cdist-cache
 | 
			
		||||
 | 
			
		||||
- check all all internal variables are prefixed with __cdist
 | 
			
		||||
 | 
			
		||||
TYPES
 | 
			
		||||
------
 | 
			
		||||
| 
						 | 
				
			
			@ -31,18 +44,12 @@ TYPES
 | 
			
		|||
   - regexp replace (can probably cover all?)
 | 
			
		||||
      -> aka sed.
 | 
			
		||||
- __cron
 | 
			
		||||
- __user:
 | 
			
		||||
- __user
 | 
			
		||||
   add option to include --create-home
 | 
			
		||||
   fix __user NAME case (same issue as __group)
 | 
			
		||||
 | 
			
		||||
DOCUMENTATION
 | 
			
		||||
--------------
 | 
			
		||||
- asciidoc interprets __, which we use for variables
 | 
			
		||||
  names -> seek through docs and replace with \_\_!
 | 
			
		||||
- check all all internal variables are prefixed with __cdist
 | 
			
		||||
- reference explorers in cdist-reference!
 | 
			
		||||
 | 
			
		||||
Cache:
 | 
			
		||||
   - add example how to use 
 | 
			
		||||
   - export variable $__cache
 | 
			
		||||
      -> for current host
 | 
			
		||||
      -> add function to cdist-config, import from cdist-cache
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -45,9 +45,11 @@ cdist-reference - Variable, path and type reference for cdist
 | 
			
		|||
 | 
			
		||||
DESCRIPTION
 | 
			
		||||
-----------
 | 
			
		||||
Various scripts which are not in the core need information on how
 | 
			
		||||
to find information. This manpage summarises the available environment
 | 
			
		||||
variables, types and paths and clearifies with part may access which variables.
 | 
			
		||||
This reference summarises
 | 
			
		||||
 | 
			
		||||
- environment variables
 | 
			
		||||
- paths
 | 
			
		||||
- types 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
PATHS
 | 
			
		||||
| 
						 | 
				
			
			@ -62,7 +64,6 @@ conf/manifest/init::
 | 
			
		|||
   It is an executable (+x bit set) shell script that can use
 | 
			
		||||
   values from the explorers to decide which configuration to create
 | 
			
		||||
   for the specified target host.
 | 
			
		||||
 | 
			
		||||
   It should be primary used to define mapping from configurations to hosts.
 | 
			
		||||
 | 
			
		||||
conf/manifest/*::
 | 
			
		||||
| 
						 | 
				
			
			@ -103,15 +104,12 @@ conf/type/<name>/parameters/optional::
 | 
			
		|||
 | 
			
		||||
conf/type/<name>/explorer::
 | 
			
		||||
   Location of the type specific explorers.
 | 
			
		||||
 | 
			
		||||
   This directory is referenced by the variable __type_explorer (see below).
 | 
			
		||||
 | 
			
		||||
   See cdist-explorer(7).
 | 
			
		||||
 | 
			
		||||
out/::
 | 
			
		||||
   This directory contains output of cdist and is usually located
 | 
			
		||||
   in a temporary directory and thus will be removed after the run.
 | 
			
		||||
 | 
			
		||||
   This directory is referenced by the variable __global (see below).
 | 
			
		||||
 | 
			
		||||
out/explorer::
 | 
			
		||||
| 
						 | 
				
			
			@ -122,7 +120,6 @@ out/object::
 | 
			
		|||
 | 
			
		||||
out/object/<object>::
 | 
			
		||||
   Contains all object specific information.
 | 
			
		||||
 | 
			
		||||
   This directory is referenced by the variable __object (see below).
 | 
			
		||||
 | 
			
		||||
out/object/<object>/explorers::
 | 
			
		||||
| 
						 | 
				
			
			@ -138,8 +135,8 @@ TYPES
 | 
			
		|||
The available types are listed in the SEE ALSO section
 | 
			
		||||
and are referenced as cdist-type__TYPENAME.
 | 
			
		||||
 | 
			
		||||
VARIABLES
 | 
			
		||||
---------
 | 
			
		||||
ENVIRONMENT VARIABLES
 | 
			
		||||
---------------------
 | 
			
		||||
__explorer::
 | 
			
		||||
   Directory that contains all explorers.
 | 
			
		||||
   Available for: explorer
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -59,7 +59,8 @@ HOW TO SUBMIT A NEW TYPE
 | 
			
		|||
Submitting a type works as described above, with the additional requirement
 | 
			
		||||
that a corresponding manpage named man.text in asciidoc format with
 | 
			
		||||
the manpage-name "cdist-type__NAME" is included in the type directory
 | 
			
		||||
AND asciidoc is able to compile it.
 | 
			
		||||
AND asciidoc is able to compile it (i.e. do NOT have to many "=" in the second
 | 
			
		||||
line).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
SEE ALSO
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue