Merge branch 'master' of git://git.schottelius.org/cdist
This commit is contained in:
		
				commit
				
					
						f4d3c1d23e
					
				
			
		
					 13 changed files with 183 additions and 8 deletions
				
			
		| 
						 | 
				
			
			@ -165,7 +165,8 @@ Yes, I'm actually eating my own dogfood and currently managing
 | 
			
		|||
 * [kerberos (mit)](http://web.mit.edu/kerberos/) (authentication)
 | 
			
		||||
 * [ircd-hybrid](http://www.ircd-hybrid.org/) (chat)
 | 
			
		||||
 * [stunnel](http://stunnel.mirt.net/) (SSL tunnel)
 | 
			
		||||
 * [mercurial-server](http://www.lshift.net/mercurial-server.html)
 | 
			
		||||
 | 
			
		||||
with cdist on a total of **3** production servers of the
 | 
			
		||||
with cdist on a total of **4** production servers of the
 | 
			
		||||
[Systems Group](http://www.systems.ethz.ch) at the
 | 
			
		||||
[ETH Zurich](http://www.ethz.ch).
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -67,4 +67,4 @@ cdist-dir push "$__cdist_target_host" "$__cdist_out_object_dir" \
 | 
			
		|||
# And finally - execute the code
 | 
			
		||||
cdist-code-run-all            "$__cdist_target_host"
 | 
			
		||||
 | 
			
		||||
echo "Configuration successfully finished for $__cdist_target_host"
 | 
			
		||||
echo "cdist $__cdist_version: success on $__cdist_target_host"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -109,6 +109,15 @@ esac
 | 
			
		|||
 | 
			
		||||
# Mode settings
 | 
			
		||||
if [ -f "$__object/parameter/mode" ]; then
 | 
			
		||||
   mode="$(cat "$__object/parameters/mode")"
 | 
			
		||||
   echo chmod \"$mode\" \"$destination\"
 | 
			
		||||
   echo chmod \"$(cat "$__object/parameter/mode")\" \"$destination\"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Group
 | 
			
		||||
if [ -f "$__object/parameter/group" ]; then
 | 
			
		||||
   echo chgrp \"$(cat "$__object/parameter/group")\" \"$destination\"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Owner
 | 
			
		||||
if [ -f "$__object/parameter/owner" ]; then
 | 
			
		||||
   echo chown \"$(cat "$__object/parameter/owner")\" \"$destination\"
 | 
			
		||||
fi
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,9 +25,15 @@ destination::
 | 
			
		|||
   If supplied, use this as the destination on the target. Otherwise the
 | 
			
		||||
   object_id is used.
 | 
			
		||||
 | 
			
		||||
group::
 | 
			
		||||
   Group to chgrp to.
 | 
			
		||||
 | 
			
		||||
mode::
 | 
			
		||||
   Unix permissions, suitable for chmod.
 | 
			
		||||
 | 
			
		||||
owner::
 | 
			
		||||
   User to chown to.
 | 
			
		||||
 | 
			
		||||
source::
 | 
			
		||||
   If supplied, copy this file from the host running cdist to the target.
 | 
			
		||||
   If not supplied, an empty file or directory will be created.
 | 
			
		||||
| 
						 | 
				
			
			@ -45,6 +51,10 @@ __file cdist-marker --type file --destination /etc/cdist-configured
 | 
			
		|||
 | 
			
		||||
# Use __file from another type
 | 
			
		||||
__file /etc/issue --source "$__type/files/archlinux" --type file
 | 
			
		||||
 | 
			
		||||
# Supply some more settings
 | 
			
		||||
__file /etc/shadow --source "$__type/files/shadow" --type file \
 | 
			
		||||
   --owner root --group shadow --mode 0640
 | 
			
		||||
--------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,5 @@
 | 
			
		|||
group
 | 
			
		||||
mode
 | 
			
		||||
owner
 | 
			
		||||
source
 | 
			
		||||
destination
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
cdist-type__issue(7)
 | 
			
		||||
===================
 | 
			
		||||
====================
 | 
			
		||||
Nico Schottelius <nico-cdist--@--schottelius.org>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -33,7 +33,7 @@ EXAMPLES
 | 
			
		|||
__motd
 | 
			
		||||
 | 
			
		||||
# Supply source file from a different type
 | 
			
		||||
__file --source "$__type/files/my-motd"
 | 
			
		||||
__motd --source "$__type/files/my-motd"
 | 
			
		||||
--------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,8 +19,6 @@
 | 
			
		|||
#
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
destination=/etc/motd
 | 
			
		||||
 | 
			
		||||
# Select motd source
 | 
			
		||||
if [ -f "$__object/parameter/source" ]; then
 | 
			
		||||
   source="$(cat "$__object/parameter/source")"
 | 
			
		||||
| 
						 | 
				
			
			@ -28,4 +26,16 @@ else
 | 
			
		|||
   source="$__type/files/motd"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
os=$(cat $__global/explorer/os)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
case "$os" in
 | 
			
		||||
   debian|ubuntu)
 | 
			
		||||
      destination=/etc/motd.tail
 | 
			
		||||
   ;;
 | 
			
		||||
   *)
 | 
			
		||||
      destination=/etc/motd
 | 
			
		||||
   ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
__file "$destination" --source "$source" --type file
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										53
									
								
								conf/type/__package_apt/man.text
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								conf/type/__package_apt/man.text
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,53 @@
 | 
			
		|||
cdist-type__package_apt(7)
 | 
			
		||||
==========================
 | 
			
		||||
Nico Schottelius <nico-cdist--@--schottelius.org>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
NAME
 | 
			
		||||
----
 | 
			
		||||
cdist-type__package_apt - Manage packages with apt-get
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
DESCRIPTION
 | 
			
		||||
-----------
 | 
			
		||||
apt-get is usually used on Debian and variants (like Ubuntu) to
 | 
			
		||||
manage packages.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
REQUIRED PARAMETERS
 | 
			
		||||
-------------------
 | 
			
		||||
state::
 | 
			
		||||
   Either "installed" or "deinstalled".
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
OPTIONAL PARAMETERS
 | 
			
		||||
-------------------
 | 
			
		||||
name::
 | 
			
		||||
   If supplied, use the name and not the object id as the package name.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
EXAMPLES
 | 
			
		||||
--------
 | 
			
		||||
 | 
			
		||||
--------------------------------------------------------------------------------
 | 
			
		||||
# Ensure zsh in installed
 | 
			
		||||
__package_apt zsh --state installed
 | 
			
		||||
 | 
			
		||||
# In case you only want *a* webserver, but don't care which one
 | 
			
		||||
__package_apt webserver --state installed --name nginx
 | 
			
		||||
 | 
			
		||||
# Remove obsolete package
 | 
			
		||||
__package_apt puppet --state deinstalled
 | 
			
		||||
--------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
SEE ALSO
 | 
			
		||||
--------
 | 
			
		||||
- cdist-type(7)
 | 
			
		||||
- cdist-type__package(7)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
COPYING
 | 
			
		||||
-------
 | 
			
		||||
Copyright \(C) 2011 Nico Schottelius. Free use of this software is
 | 
			
		||||
granted under the terms of the GNU General Public License version 3 (GPLv3).
 | 
			
		||||
							
								
								
									
										53
									
								
								conf/type/__package_pacman/man.text
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								conf/type/__package_pacman/man.text
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,53 @@
 | 
			
		|||
cdist-type__package_pacman(7)
 | 
			
		||||
=============================
 | 
			
		||||
Nico Schottelius <nico-cdist--@--schottelius.org>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
NAME
 | 
			
		||||
----
 | 
			
		||||
cdist-type__package_pacman - Manage packages with pacman
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
DESCRIPTION
 | 
			
		||||
-----------
 | 
			
		||||
Pacman is usually used on the Archlinux distribution to manage
 | 
			
		||||
packages.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
REQUIRED PARAMETERS
 | 
			
		||||
-------------------
 | 
			
		||||
state::
 | 
			
		||||
   Either "installed" or "deinstalled".
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
OPTIONAL PARAMETERS
 | 
			
		||||
-------------------
 | 
			
		||||
name::
 | 
			
		||||
   If supplied, use the name and not the object id as the package name.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
EXAMPLES
 | 
			
		||||
--------
 | 
			
		||||
 | 
			
		||||
--------------------------------------------------------------------------------
 | 
			
		||||
# Ensure zsh in installed
 | 
			
		||||
__package_pacman zsh --state installed
 | 
			
		||||
 | 
			
		||||
# If you don't want to follow pythonX packages, but always use python
 | 
			
		||||
__package_pacman python --state installed --name python2
 | 
			
		||||
 | 
			
		||||
# Remove obsolete package
 | 
			
		||||
__package_pacman puppet --state deinstalled
 | 
			
		||||
--------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
SEE ALSO
 | 
			
		||||
--------
 | 
			
		||||
- cdist-type(7)
 | 
			
		||||
- cdist-type__package(7)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
COPYING
 | 
			
		||||
-------
 | 
			
		||||
Copyright \(C) 2011 Nico Schottelius. Free use of this software is
 | 
			
		||||
granted under the terms of the GNU General Public License version 3 (GPLv3).
 | 
			
		||||
| 
						 | 
				
			
			@ -2,6 +2,8 @@
 | 
			
		|||
	* New type __motd
 | 
			
		||||
	* New type __addifnosuchline
 | 
			
		||||
	* Document type __issue
 | 
			
		||||
	* Document type __package_pacman
 | 
			
		||||
	* New parameter for __file: --owner and --group
 | 
			
		||||
 | 
			
		||||
1.0.3: 2011-03-11
 | 
			
		||||
	* Update regexp used for sane characters
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										27
									
								
								doc/dev/logs/2011-03-15
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								doc/dev/logs/2011-03-15
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,27 @@
 | 
			
		|||
Steven, Nico
 | 
			
		||||
 | 
			
		||||
How to handle dependencies:
 | 
			
		||||
 | 
			
		||||
1) Add --require parameter for all types
 | 
			
		||||
   - Special handling in cdist-type-emulator
 | 
			
		||||
   + Everything on one line
 | 
			
		||||
 | 
			
		||||
2) Add __require type
 | 
			
		||||
   + No change in core
 | 
			
		||||
   - Type influences core
 | 
			
		||||
   - Additional line
 | 
			
		||||
   - Core needs to know about requirements
 | 
			
		||||
 | 
			
		||||
3) cdist-require as a seperate executable
 | 
			
		||||
   + No change in cdist-type-emulator
 | 
			
		||||
   - new behaviour
 | 
			
		||||
   - first time cdist-xxx dependency in types
 | 
			
		||||
 | 
			
		||||
4) require="" environment variable for cdist-type-emulator
 | 
			
		||||
   + on one line / same context
 | 
			
		||||
   + special handling is ok for special case
 | 
			
		||||
   + doesn't touch parameters (i.e. type still has full control)
 | 
			
		||||
 | 
			
		||||
--------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
Result: Use version 4.
 | 
			
		||||
| 
						 | 
				
			
			@ -179,6 +179,14 @@ level tools like ruby installed. If a type requires specific tools to be present
 | 
			
		|||
on the target, there must be another type that provides this tool and the first
 | 
			
		||||
type should create an object of the specific type.
 | 
			
		||||
 | 
			
		||||
If your type wants to save temporay data, that may be used by other types
 | 
			
		||||
later on (for instance __file), you can save them in the subdirectory
 | 
			
		||||
"files" below $__object (but you must create it yourself). cdist will not touch
 | 
			
		||||
this directory.
 | 
			
		||||
 | 
			
		||||
If your type contains static files, it's also recommened to place them in
 | 
			
		||||
a folder named "files" within the type (again, because cdist guarantees to
 | 
			
		||||
never ever touch this folder).
 | 
			
		||||
 | 
			
		||||
HOW TO INCLUDE A TYPE INTO UPSTREAM CDIST
 | 
			
		||||
-----------------------------------------
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue