Merge branch 'master' into preos
This commit is contained in:
		
				commit
				
					
						3b4258c34e
					
				
			
		
					 131 changed files with 1636 additions and 272 deletions
				
			
		
							
								
								
									
										13
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										13
									
								
								Makefile
									
										
									
									
									
								
							|  | @ -20,6 +20,13 @@ | |||
| 
 | ||||
| A2XM=a2x -f manpage --no-xmllint -a encoding=UTF-8 | ||||
| A2XH=a2x -f xhtml --no-xmllint -a encoding=UTF-8 | ||||
| # Create cross-links in html man pages
 | ||||
| # We look for something like "cdist-type(7)" and make a href out of it
 | ||||
| # The first matching group is the man page name and the second group
 | ||||
| # is the man page section (1 or 7). The first three lines of the input
 | ||||
| # (xml, DOCTYPE, head tags) are ignored, since the head tags contains
 | ||||
| # the title of the page and should not contain a href.
 | ||||
| CROSSLINK=sed --in-place '1,3!s/\([[:alnum:]_-]*\)(\([17]\))/<a href="..\/man\2\/\1.html">&<\/a>/g' | ||||
| helper=./bin/build-helper | ||||
| 
 | ||||
| MANDIR=docs/man | ||||
|  | @ -86,6 +93,7 @@ MANSTATICALL=$(MANSTATICMAN) $(MANSTATICHTML) | |||
| # Creating the type html page
 | ||||
| %.html: %.text | ||||
| 	$(A2XH) $^ | ||||
| 	$(CROSSLINK) $@ | ||||
| 
 | ||||
| man: $(MANTYPEALL) $(MANREFALL) $(MANSTATICALL) | ||||
| 
 | ||||
|  | @ -99,7 +107,7 @@ man-dist: man check-date | |||
| 	cp ${MAN7DSTDIR}/*.html ${MAN7DSTDIR}/*.css ${MANWEBDIR}/man7 | ||||
| 	cd ${MANWEBDIR} && git add . && git commit -m "cdist manpages update: $(CHANGELOG_VERSION)" || true | ||||
| 
 | ||||
| man-fix-link: web-pub | ||||
| man-latest-link: web-pub | ||||
| 	# Fix ikiwiki, which does not like symlinks for pseudo security | ||||
| 	ssh tee.schottelius.org \
 | ||||
|     	"cd /home/services/www/nico/www.nico.schottelius.org/www/software/cdist/man && rm -f latest && ln -sf "$(CHANGELOG_VERSION)" latest" | ||||
|  | @ -146,7 +154,8 @@ web-dist: web-blog web-doc | |||
| web-pub: web-dist man-dist speeches-dist | ||||
| 	cd "${WEBDIR}" && make pub | ||||
| 
 | ||||
| web-release-all: man-fix-link | ||||
| web-release-all: man-latest-link | ||||
| web-release-all-no-latest: web-pub | ||||
| 
 | ||||
| ################################################################################
 | ||||
| # Release: Mailinglist
 | ||||
|  |  | |||
|  | @ -104,6 +104,11 @@ eof | |||
|     ;; | ||||
| 
 | ||||
|     ml-release) | ||||
|         if [ $# -ne 1 ]; then | ||||
|             echo "$0 ml-release version" >&2 | ||||
|             exit 1 | ||||
|         fi | ||||
| 
 | ||||
|         version=$1; shift | ||||
| 
 | ||||
|         to_a=cdist | ||||
|  | @ -142,40 +147,22 @@ eof | |||
| 
 | ||||
|     freecode-release) | ||||
|         version=$1; shift | ||||
|         api_token=$(awk '/machine freecode login/ { print $8 }' ~/.netrc) | ||||
| 
 | ||||
|         printf "Enter tag list for freecode release %s> " "$version" | ||||
|         read taglist | ||||
| 
 | ||||
|         printf "Enter changelog for freecode release %s> " "$version" | ||||
|         read changelog | ||||
| 
 | ||||
|         echo "Submit preview" | ||||
|         cat << eof | ||||
| tag_list = $taglist | ||||
| changelog = $changelog | ||||
| version = $version | ||||
| eof | ||||
|         printf "Press enter to submit to freecode> " | ||||
|         read dummy | ||||
| 
 | ||||
|         cat << eof | cfreecode-api release-add cdist | ||||
|         { | ||||
|             "auth_code": "$api_token", | ||||
|             "release": { | ||||
|                 "tag_list": "$taglist", | ||||
|                 "version": "$version", | ||||
|                 "changelog": "$changelog", | ||||
|                 "hidden_from_frontpage": false | ||||
|             } | ||||
|         } | ||||
| eof | ||||
| 
 | ||||
|         echo "Submitting to freecode ..." | ||||
|         python2 ~/p/foreign/freecode-submit-2.7/freecode-submit -P cdist \ | ||||
|             -v "$version" -c "$changelog" \ | ||||
|             -t "$taglist" \ | ||||
|             -n | ||||
|     ;; | ||||
| 
 | ||||
|     release-git-tag) | ||||
|         target_version=$($0 changelog-version) | ||||
|         if git rev-parse --verify refs/tags/$target_version; then | ||||
|         if git rev-parse --verify refs/tags/$target_version 2>/dev/null; then | ||||
|             echo "Tag for $target_version exists, aborting" | ||||
|             exit 1 | ||||
|         fi | ||||
|  | @ -256,7 +243,11 @@ eof | |||
|         make pub | ||||
| 
 | ||||
|         # publish man, speeches, website | ||||
|         if [ "$masterbranch" = yes ]; then | ||||
|             make web-release-all | ||||
|         else | ||||
|             make web-release-all-no-latest | ||||
|         fi | ||||
| 
 | ||||
|         # Ensure that pypi release has the right version | ||||
|         "$0" version | ||||
|  |  | |||
							
								
								
									
										31
									
								
								cdist/conf/explorer/cpu_cores
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										31
									
								
								cdist/conf/explorer/cpu_cores
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,31 @@ | |||
| #!/bin/sh | ||||
| # | ||||
| # 2014 Daniel Heule  (hda at sfs.biz) | ||||
| # 2014 Thomas Oettli (otho at sfs.biz) | ||||
| # | ||||
| # 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/>. | ||||
| # | ||||
| # | ||||
| 
 | ||||
| # FIXME: other system types (not linux ...) | ||||
| 
 | ||||
| if [ -r /proc/cpuinfo ]; then | ||||
|     cores="$(cat /proc/cpuinfo | grep "core id" | sort | uniq | wc -l)" | ||||
|     if [ ${cores} -eq 0 ]; then | ||||
|         cores="1" | ||||
|     fi | ||||
|     echo "${cores}" | ||||
| fi | ||||
							
								
								
									
										31
									
								
								cdist/conf/explorer/cpu_sockets
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										31
									
								
								cdist/conf/explorer/cpu_sockets
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,31 @@ | |||
| #!/bin/sh | ||||
| # | ||||
| # 2014 Daniel Heule  (hda at sfs.biz) | ||||
| # 2014 Thomas Oettli (otho at sfs.biz) | ||||
| # | ||||
| # 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/>. | ||||
| # | ||||
| # | ||||
| 
 | ||||
| # FIXME: other system types (not linux ...) | ||||
| 
 | ||||
| if [ -r /proc/cpuinfo ]; then | ||||
|     sockets="$(cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l)" | ||||
|     if [ ${sockets} -eq 0 ]; then | ||||
|         sockets="$(cat /proc/cpuinfo | grep "processor" | wc -l)" | ||||
|     fi | ||||
|     echo "${sockets}" | ||||
| fi | ||||
|  | @ -24,12 +24,12 @@ | |||
| # | ||||
| 
 | ||||
| # Use ip, if available | ||||
| if command -v ip; then | ||||
| if command -v ip >/dev/null; then | ||||
|     ip -o link show | sed -n 's/^[0-9]\+: \(.\+\): <.*/\1/p' | ||||
|     exit 0 | ||||
| fi | ||||
| 
 | ||||
| if ! command -v ifconfig; then | ||||
| if ! command -v ifconfig >/dev/null; then | ||||
|    # no ifconfig, nothing we could do | ||||
|    exit 0 | ||||
| fi | ||||
|  |  | |||
							
								
								
									
										54
									
								
								cdist/conf/explorer/machine_type
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										54
									
								
								cdist/conf/explorer/machine_type
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,54 @@ | |||
| #!/bin/sh | ||||
| # | ||||
| # 2014 Daniel Heule  (hda at sfs.biz) | ||||
| # 2014 Thomas Oettli (otho at sfs.biz) | ||||
| # | ||||
| # 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/>. | ||||
| # | ||||
| # | ||||
| 
 | ||||
| # FIXME: other system types (not linux ...) | ||||
| 
 | ||||
| if [ -r /proc/cpuinfo ]; then | ||||
|     # this should only exist on virtual guest machines, | ||||
|     # tested on vmware, xen, kvm | ||||
|     if grep -q "hypervisor" /proc/cpuinfo; then | ||||
|         # this file is aviable in xen guest systems | ||||
|         if [ -r /sys/hypervisor/type ]; then | ||||
|             if grep -q -i "xen" /sys/hypervisor/type; then | ||||
|                 echo virtual_by_xen | ||||
|                 exit  | ||||
|             fi | ||||
|         else | ||||
|             if [ -r /sys/class/dmi/id/product_name ]; then | ||||
|                 if grep -q -i 'vmware' /sys/class/dmi/id/product_name; then | ||||
|                     echo "virtual_by_vmware" | ||||
|                     exit | ||||
|                 else  | ||||
|                     if grep -q -i 'bochs' /sys/class/dmi/id/product_name; then | ||||
|                         echo "virtual_by_kvm" | ||||
|                         exit  | ||||
|                     fi | ||||
|                 fi | ||||
|             fi | ||||
|         fi | ||||
|         echo "virtual_by_unknown" | ||||
|     else | ||||
|         echo "physical" | ||||
|     fi | ||||
| else | ||||
|     echo "unknown" | ||||
| fi | ||||
							
								
								
									
										27
									
								
								cdist/conf/explorer/memory
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										27
									
								
								cdist/conf/explorer/memory
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,27 @@ | |||
| #!/bin/sh | ||||
| # | ||||
| # 2014 Daniel Heule  (hda at sfs.biz) | ||||
| # 2014 Thomas Oettli (otho at sfs.biz) | ||||
| # | ||||
| # 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/>. | ||||
| # | ||||
| # | ||||
| 
 | ||||
| # FIXME: other system types (not linux ...) | ||||
| 
 | ||||
| if [ -r /proc/meminfo ]; then | ||||
|     echo "$(cat /proc/meminfo | grep "MemTotal:" | awk '{print $2}')" | ||||
| fi | ||||
|  | @ -25,7 +25,7 @@ destination="/$__object_id" | |||
| 
 | ||||
| os=$("$__explorer/os") | ||||
| case "$os" in | ||||
|    "freebsd") | ||||
|    "freebsd"|"openbsd") | ||||
|       # FIXME: should be something like this based on man page, but can not test | ||||
|       stat -f "type: %ST | ||||
| owner: %Du %Su | ||||
|  | @ -34,6 +34,15 @@ mode: %Op %Sp | |||
| size: %Dz | ||||
| links: %Dl | ||||
| " "$destination" | ||||
|    ;; | ||||
|     "macosx") | ||||
|        stat -f "type: %HT | ||||
|  owner: %Du %Su | ||||
|  group: %Dg %Sg | ||||
|  mode: %Lp %Sp | ||||
|  size: %Dz | ||||
|  links: %Dl | ||||
|  " "$destination" | ||||
|     ;; | ||||
|    *) | ||||
|       stat --printf="type: %F | ||||
|  |  | |||
|  | @ -25,13 +25,20 @@ destination="/$__object_id" | |||
| 
 | ||||
| os=$("$__explorer/os") | ||||
| case "$os" in | ||||
|    "freebsd") | ||||
|    "freebsd"|"openbsd") | ||||
|       # FIXME: should be something like this based on man page, but can not test | ||||
|       stat -f "type: %ST | ||||
| owner: %Du %Su | ||||
| group: %Dg %Sg | ||||
| mode: %Op %Sp | ||||
| " "$destination" | ||||
|    ;; | ||||
|     "macosx") | ||||
|        stat -f "type: %HT | ||||
|  owner: %Du %Su | ||||
|  group: %Dg %Sg | ||||
|  mode: %Lp %Sp | ||||
|  " "$destination" | ||||
|     ;; | ||||
|    *) | ||||
|       stat --printf="type: %F | ||||
|  |  | |||
							
								
								
									
										23
									
								
								cdist/conf/type/__dog_vdi/explorer/list
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										23
									
								
								cdist/conf/type/__dog_vdi/explorer/list
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,23 @@ | |||
| #!/bin/sh | ||||
| # | ||||
| # 2014 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/>. | ||||
| # | ||||
| 
 | ||||
| name="$__object_id" | ||||
| 
 | ||||
| dog vdi list -r "$name" | ||||
							
								
								
									
										42
									
								
								cdist/conf/type/__dog_vdi/gencode-remote
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								cdist/conf/type/__dog_vdi/gencode-remote
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,42 @@ | |||
| #!/bin/sh | ||||
| # | ||||
| # 2014 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/>. | ||||
| # | ||||
| 
 | ||||
| state_should="$(cat "$__object/parameter/state")" | ||||
| num_vdi_lines=$(wc -l < "$__object/explorer/list") | ||||
| name="$__object_id" | ||||
| 
 | ||||
| 
 | ||||
| if [ "$num_vdi_lines" = 1 ]; then | ||||
|     state_is=present | ||||
| else | ||||
|     state_is=absent | ||||
| fi | ||||
| 
 | ||||
| [ "$state_is" = "$state_should" ] && exit 0 | ||||
| 
 | ||||
| case "$state_should" in | ||||
|     present) | ||||
|         size="$(cat "$__object/parameter/size")" | ||||
|         echo "dog vdi create '$name' '$size'" | ||||
|     ;; | ||||
|     absent) | ||||
|         echo "dog vdi delete '$name'" | ||||
|     ;; | ||||
| esac | ||||
							
								
								
									
										56
									
								
								cdist/conf/type/__dog_vdi/man.text
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								cdist/conf/type/__dog_vdi/man.text
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,56 @@ | |||
| cdist-type__dog_vdi(7) | ||||
| ====================== | ||||
| Nico Schottelius <nico-cdist--@--schottelius.org> | ||||
| 
 | ||||
| 
 | ||||
| NAME | ||||
| ---- | ||||
| cdist-type__dog_vdi - Manage Sheepdog VM images | ||||
| 
 | ||||
| 
 | ||||
| DESCRIPTION | ||||
| ----------- | ||||
| The dog program is used to create images for sheepdog | ||||
| to be used in qemu. | ||||
| 
 | ||||
| 
 | ||||
| OPTIONAL PARAMETERS | ||||
| ------------------- | ||||
| state:: | ||||
|     Either "present" or "absent", defaults to "present" | ||||
| size:: | ||||
|     Size of the image in "dog vdi" compatible units. | ||||
| 
 | ||||
|     Required if state is "present". | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| EXAMPLES | ||||
| -------- | ||||
| 
 | ||||
| -------------------------------------------------------------------------------- | ||||
| # Create a 50G size image | ||||
| __dog_vdi nico-privat.sky.ungleich.ch --size 50G | ||||
| 
 | ||||
| # Create a 50G size image (more explicit) | ||||
| __dog_vdi nico-privat.sky.ungleich.ch --size 50G --state present | ||||
| 
 | ||||
| # Remove image | ||||
| __dog_vdi nico-privat.sky.ungleich.ch --state absent | ||||
| 
 | ||||
| # Remove image - keeping --size is ok | ||||
| __dog_vdi nico-privat.sky.ungleich.ch --size 50G --state absent | ||||
| -------------------------------------------------------------------------------- | ||||
| 
 | ||||
| 
 | ||||
| SEE ALSO | ||||
| -------- | ||||
| - cdist-type(7) | ||||
| - dog(8) | ||||
| - qemu(1) | ||||
| 
 | ||||
| 
 | ||||
| COPYING | ||||
| ------- | ||||
| Copyright \(C) 2014 Nico Schottelius. Free use of this software is | ||||
| granted under the terms of the GNU General Public License version 3 (GPLv3). | ||||
							
								
								
									
										37
									
								
								cdist/conf/type/__dog_vdi/manifest
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								cdist/conf/type/__dog_vdi/manifest
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,37 @@ | |||
| #!/bin/sh | ||||
| # | ||||
| # 2014 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/>. | ||||
| # | ||||
| 
 | ||||
| state_should="$(cat "$__object/parameter/state")" | ||||
| 
 | ||||
| case "$state_should" in | ||||
|     present) | ||||
|         if [ ! -f "$__object/parameter/size" ]; then | ||||
|             echo "Size is required when state is present" >&2 | ||||
|             exit 1 | ||||
|         fi | ||||
|     ;; | ||||
|     absent) | ||||
|         : | ||||
|     ;; | ||||
|     *) | ||||
|         echo "Unsupported state: $state_should" >&2 | ||||
|         exit 1 | ||||
|     ;;   | ||||
| esac | ||||
							
								
								
									
										1
									
								
								cdist/conf/type/__dog_vdi/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__dog_vdi/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| present | ||||
							
								
								
									
										2
									
								
								cdist/conf/type/__dog_vdi/parameter/optional
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								cdist/conf/type/__dog_vdi/parameter/optional
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,2 @@ | |||
| state | ||||
| size | ||||
|  | @ -25,7 +25,7 @@ destination="/$__object_id" | |||
| 
 | ||||
| os=$("$__explorer/os") | ||||
| case "$os" in | ||||
|    "freebsd") | ||||
|    "freebsd"|"openbsd") | ||||
|       # FIXME: should be something like this based on man page, but can not test | ||||
|       stat -f "type: %ST | ||||
| owner: %Du %Su | ||||
|  | @ -33,6 +33,15 @@ group: %Dg %Sg | |||
| mode: %Op %Sp | ||||
| size: %Dz | ||||
| links: %Dl | ||||
| " "$destination" | ||||
|    ;; | ||||
|    "macosx") | ||||
|      stat -f "type: %HT | ||||
| owner: %Du %Su | ||||
| group: %Dg %Sg | ||||
| mode: %Lp %Sp | ||||
| size: %Dz | ||||
| links: %Dl | ||||
| " "$destination" | ||||
|    ;; | ||||
|    *) | ||||
|  |  | |||
|  | @ -26,6 +26,7 @@ state:: | |||
| 
 | ||||
| branch:: | ||||
|     Create this branch by checking out the remote branch of this name | ||||
|     Default branch is "master" | ||||
| 
 | ||||
| group:: | ||||
|    Group to chgrp to. | ||||
|  |  | |||
|  | @ -24,6 +24,9 @@ | |||
| __package git --state present | ||||
| 
 | ||||
| state_should="$(cat "$__object/parameter/state")" | ||||
| owner="$(cat "$__object/parameter/owner")" | ||||
| group="$(cat "$__object/parameter/group")" | ||||
| mode="$(cat "$__object/parameter/mode")" | ||||
| 
 | ||||
| # Let __directory handle removal of git repos | ||||
| 
 | ||||
|  | @ -33,7 +36,10 @@ case "$state_should" in | |||
|     ;; | ||||
| 
 | ||||
|     absent) | ||||
|         __directory "$__object_id" --state absent | ||||
|         __directory "$__object_id" --state absent \ | ||||
|             --owner "$owner" \ | ||||
|             --group "$group" \ | ||||
|             --mode "$mode" | ||||
|     ;; | ||||
| 
 | ||||
|     *) | ||||
|  |  | |||
|  | @ -21,6 +21,10 @@ | |||
| # Retrieve the contents of /etc/hostname | ||||
| # | ||||
| 
 | ||||
| # Almost any distribution | ||||
| if [ -f /etc/hostname ]; then | ||||
|     cat /etc/hostname | ||||
| # SuSE | ||||
| elif [ -f /etc/HOSTNAME ]; then | ||||
|     cat /etc/HOSTNAME | ||||
| fi | ||||
|  |  | |||
							
								
								
									
										26
									
								
								cdist/conf/type/__hostname/explorer/hostname_sysconfig
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										26
									
								
								cdist/conf/type/__hostname/explorer/hostname_sysconfig
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,26 @@ | |||
| #!/bin/sh | ||||
| # | ||||
| # 2014 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/>. | ||||
| # | ||||
| # | ||||
| # Retrieve the contents of /etc/hostname | ||||
| # | ||||
| 
 | ||||
| if [ -f /etc/sysconfig/network ]; then | ||||
|     awk -F= '/^HOSTNAME=/ { print $2 }' /etc/sysconfig/network | ||||
| fi | ||||
|  | @ -28,14 +28,28 @@ fi | |||
| os=$(cat "$__global/explorer/os") | ||||
| name_running=$(cat "$__global/explorer/hostname") | ||||
| name_config=$(cat "$__object/explorer/hostname_file") | ||||
| name_sysconfig=$(cat "$__object/explorer/hostname_sysconfig") | ||||
| has_hostnamectl=$(cat "$__object/explorer/has_hostnamectl") | ||||
| 
 | ||||
| ################################################################################ | ||||
| # If everything is ok -> exit | ||||
| # | ||||
| if [ "$name_config" = "$name_should" -a "$name_running" = "$name_should" ]; then | ||||
| case "$os" in | ||||
|     archlinux|debian|suse|ubuntu) | ||||
|         if [ "$name_config" = "$name_should" -a "$name_running" = "$name_should" ]; then | ||||
|             exit 0 | ||||
| fi | ||||
|         fi | ||||
|     ;; | ||||
|     centos) | ||||
|         if [ "$name_sysconfig" = "$name_should" -a "$name_running" = "$name_should" ]; then | ||||
|             exit 0 | ||||
|         fi | ||||
|     ;; | ||||
|     *) | ||||
|         echo "Unsupported os: $os" >&2 | ||||
|         exit 1 | ||||
|     ;; | ||||
| esac | ||||
| 
 | ||||
| ################################################################################ | ||||
| # Setup hostname | ||||
|  | @ -45,6 +59,17 @@ echo changed >> "$__messages_out" | |||
| if [ "$has_hostnamectl" ]; then | ||||
|     echo "hostnamectl set-hostname '$name_should'" | ||||
| else | ||||
|     case "$os" in | ||||
|         archlinux|debian|ubuntu) | ||||
|             echo "hostname '$name_should'" | ||||
|             echo "printf '%s\n' '$name_should' > /etc/hostname" | ||||
|         ;; | ||||
|         centos) | ||||
|             echo "hostname '$name_should'" | ||||
|         ;; | ||||
|         suse) | ||||
|             echo "hostname '$name_should'" | ||||
|             echo "printf '%s\n' '$name_should' > /etc/HOSTNAME" | ||||
|         ;; | ||||
|     esac | ||||
| fi | ||||
|  |  | |||
|  | @ -20,6 +20,12 @@ | |||
| # | ||||
| 
 | ||||
| os=$(cat "$__global/explorer/os") | ||||
| if [ -f "$__object/parameter/name" ]; then | ||||
|     name_should="$(cat "$__object/parameter/name")" | ||||
| else | ||||
|     name_should="$(echo "${__target_host%%.*}")" | ||||
| fi | ||||
| 
 | ||||
| 
 | ||||
| not_supported() { | ||||
|    echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 | ||||
|  | @ -28,10 +34,17 @@ not_supported() { | |||
| } | ||||
| 
 | ||||
| case "$os" in | ||||
|    archlinux|debian|ubuntu) | ||||
|     archlinux|debian|suse|ubuntu) | ||||
|         # handled in gencode-remote | ||||
|         : | ||||
|     ;; | ||||
|     centos) | ||||
|         __key_value sysconfig-hostname \ | ||||
|             --file /etc/sysconfig/network \ | ||||
|             --delimiter '=' \ | ||||
|             --key HOSTNAME \ | ||||
|             --value "$name_should" --exact_delimiter | ||||
|     ;; | ||||
|     *) | ||||
|         not_supported | ||||
|     ;; | ||||
|  |  | |||
|  | @ -41,7 +41,7 @@ __iptables_rule established  --rule "-A INPUT -m state --state RELATED,ESTABLISH | |||
| 
 | ||||
| # Some service rules | ||||
| __iptables_rule http  --rule "-A INPUT -p tcp --dport 80 -j ACCEPT" | ||||
| __iptables_rule ssh   --rule "-A INPUT -p tcp --dport 80 -j ACCEPT" | ||||
| __iptables_rule ssh   --rule "-A INPUT -p tcp --dport 22 -j ACCEPT" | ||||
| __iptables_rule https --rule "-A INPUT -p tcp --dport 443 -j ACCEPT" | ||||
| 
 | ||||
| # Ensure some rules are not present anymore | ||||
|  |  | |||
|  | @ -26,7 +26,7 @@ | |||
| #set -x | ||||
| 
 | ||||
| if [ -f "$__object/parameter/jaildir" ]; then | ||||
|    jaildir="$(cat "$__object/parameter/name")" | ||||
|    jaildir="$(cat "$__object/parameter/jaildir")" | ||||
| else | ||||
|    jaildir="/usr/jail" | ||||
| fi | ||||
|  |  | |||
|  | @ -32,7 +32,7 @@ else | |||
| fi | ||||
| 
 | ||||
| if [ -f "$__object/parameter/jaildir" ]; then | ||||
|    jaildir="$(cat "$__object/parameter/name")" | ||||
|    jaildir="$(cat "$__object/parameter/jaildir")" | ||||
| else | ||||
|    jaildir="/usr/jail" | ||||
| fi | ||||
|  |  | |||
|  | @ -32,14 +32,14 @@ else | |||
| fi | ||||
| 
 | ||||
| if [ -f "$__object/parameter/jaildir" ]; then | ||||
|    jaildir="$(cat "$__object/parameter/name")" | ||||
|    jaildir="$(cat "$__object/parameter/jaildir")" | ||||
| else | ||||
|    jaildir="/usr/jail" | ||||
| fi | ||||
| # backslash-escaped $jaildir | ||||
| sjaildir="$(echo ${jaildir} | sed 's#/#\\/#g')" | ||||
| 
 | ||||
| jls_output="$(jls | grep "[ ^I]${sjaildir}\/${name}\$")" || true | ||||
| jls_output="$(jls | grep "[ 	]${sjaildir}\/${name}\$")" || true | ||||
| 
 | ||||
| if [ -n "${jls_output}" ]; then | ||||
|    echo "STARTED" | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| #!/bin/sh | ||||
| # | ||||
| # 2012 Jake Guffey (jake.guffey at eprotex.com) | ||||
| # 2012,2014 Jake Guffey (jake.guffey at eprotex.com) | ||||
| # | ||||
| # This file is part of cdist. | ||||
| # | ||||
|  | @ -104,6 +104,7 @@ stopJail() { | |||
| # Check $status before issuing command | ||||
|    if [ "$status" = "STARTED" ]; then | ||||
|       echo "/etc/rc.d/jail stop ${name}" | ||||
|       echo "stop" >> "$__messages_out" | ||||
|    fi | ||||
| } | ||||
| 
 | ||||
|  | @ -111,6 +112,7 @@ startJail() { | |||
| # Check $status before issuing command | ||||
|    if [ "$status" = "NOTSTART" ]; then | ||||
|       echo "/etc/rc.d/jail start ${name}" | ||||
|       echo "start" >> "$__messages_out" | ||||
|    fi | ||||
| } | ||||
| 
 | ||||
|  | @ -162,6 +164,7 @@ EOF | |||
|          rm -f /etc/rc.conf.bak | ||||
|       fi | ||||
| EOF | ||||
|    echo "delete" >> "$__messages_out" | ||||
| } | ||||
| 
 | ||||
| createJail() { | ||||
|  | @ -215,6 +218,7 @@ cat <<EOF | |||
|    fi | ||||
| 
 | ||||
| EOF | ||||
|    echo "create" >> "$__messages_out" | ||||
| 
 | ||||
| # Create the ro+rw mountpoint entries in fstab | ||||
| cat <<EOF | ||||
|  | @ -310,6 +314,7 @@ if [ "$onboot" = "yes" ]; then | |||
|       fi | ||||
|       unset jail_list | ||||
| EOF | ||||
|    echo "onboot" >> "$__messages_out" | ||||
| fi | ||||
| 
 | ||||
| # Add the normal entries into the jail's rc.conf | ||||
|  |  | |||
|  | @ -16,7 +16,7 @@ This type is used on FreeBSD to manage jails. | |||
| REQUIRED PARAMETERS | ||||
| ------------------- | ||||
| state:: | ||||
|    Either "present" or "absent." | ||||
|    Either "present" or "absent", defaults to "present". | ||||
| 
 | ||||
| jailbase:: | ||||
|    The location of the .tgz archive containing the base fs for your jails. | ||||
|  | @ -67,6 +67,19 @@ be removed then re-added with the correct IP address/netmask or the appropriate | |||
| line (jail_<name>_ip="...") modified within rc.conf through some alternate | ||||
| means. | ||||
| 
 | ||||
| MESSAGES | ||||
| -------- | ||||
| start:: | ||||
|    The jail was started | ||||
| stop:: | ||||
|    The jail was stopped | ||||
| create: | ||||
|    The jail was created | ||||
| delete:: | ||||
|    The jail was deleted | ||||
| onboot:: | ||||
|    The jail was configured to start on boot | ||||
| 
 | ||||
| EXAMPLES | ||||
| -------- | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										1
									
								
								cdist/conf/type/__jail/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__jail/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| present | ||||
|  | @ -5,3 +5,4 @@ interface | |||
| devfs-ruleset | ||||
| jaildir | ||||
| jailbase | ||||
| state | ||||
|  |  | |||
|  | @ -1,6 +1,7 @@ | |||
| #!/bin/sh | ||||
| # | ||||
| # 2011 Steven Armstrong (steven-cdist at armstrong.cc) | ||||
| # 2014 Daniel Heule     (hda at sfs.biz) | ||||
| # | ||||
| # This file is part of cdist. | ||||
| # | ||||
|  | @ -18,36 +19,85 @@ | |||
| # along with cdist. If not, see <http://www.gnu.org/licenses/>. | ||||
| # | ||||
| 
 | ||||
| key="$(cat "$__object/parameter/key" 2>/dev/null \ | ||||
| export key="$(cat "$__object/parameter/key" 2>/dev/null \ | ||||
|    || echo "$__object_id")" | ||||
| state="$(cat "$__object/parameter/state" 2>/dev/null \ | ||||
|    || echo "present")" | ||||
| file="$(cat "$__object/parameter/file")" | ||||
| delimiter="$(cat "$__object/parameter/delimiter")" | ||||
| value="$(cat "$__object/parameter/value" 2>/dev/null \ | ||||
|    || echo "__CDIST_NOTSET__")" | ||||
| export state="$(cat "$__object/parameter/state")" | ||||
| 
 | ||||
| case "$state" in | ||||
|    absent) | ||||
|       if grep -q -E "^$key$delimiter+" "$file"; then | ||||
|          # if the key exists, with whatever value, we will have to remove it | ||||
|          # so report it as present | ||||
|          echo present | ||||
|       else | ||||
|          # key does not exist | ||||
|          echo absent | ||||
|       fi | ||||
|    ;; | ||||
|    present) | ||||
|       if grep -q -E "^$key$delimiter+$value$" "$file"; then | ||||
|          # key exists and value is same | ||||
|          echo present | ||||
|       elif grep -q -E "^$key$delimiter+" "$file"; then | ||||
|          # key exists, but value is empty or different | ||||
|          echo wrongvalue | ||||
|       else | ||||
|          # key does not exist | ||||
|          echo absent | ||||
|       fi | ||||
|    ;; | ||||
| esac | ||||
| file="$(cat "$__object/parameter/file")" | ||||
| 
 | ||||
| if [ ! -f "$file" ]; then | ||||
|     echo "nosuchfile" | ||||
|     exit | ||||
| fi | ||||
| 
 | ||||
| export delimiter="$(cat "$__object/parameter/delimiter")" | ||||
| export value="$(cat "$__object/parameter/value" 2>/dev/null \ | ||||
|    || echo "__CDIST_NOTSET__")" | ||||
| if [ -f "$__object/parameter/exact_delimiter" ]; then | ||||
|     export exact_delimiter=1 | ||||
| else | ||||
|     export exact_delimiter=0 | ||||
| fi | ||||
| 
 | ||||
| awk -f - "$file" <<"AWK_EOF" | ||||
| BEGIN { | ||||
|     state=ENVIRON["state"] | ||||
|     key=ENVIRON["key"] | ||||
|     delimiter=ENVIRON["delimiter"] | ||||
|     value=ENVIRON["value"] | ||||
|     exact_delimiter=ENVIRON["exact_delimiter"] | ||||
|     found=0 | ||||
| } | ||||
| # enter the main loop | ||||
| { | ||||
|     i = index($0,key) | ||||
|     if(i == 1) { | ||||
|         delval = substr($0,length(key)+1) | ||||
|         delpos = index(delval,delimiter) | ||||
|         if(delpos == 0) { | ||||
|             # in this case, the delimiter was not found | ||||
|             next | ||||
|         } | ||||
|         if(delpos > 1) { | ||||
|             spaces = substr(delval,1,delpos-1) | ||||
|             sub(/[ \t]*/,"",spaces) | ||||
|             if( length(spaces) > 0 ) { | ||||
|                 # if there are not only spaces between key and delimiter, | ||||
|                 # continue since we we are on the wrong line | ||||
|                 next | ||||
|             } | ||||
|             if( exact_delimiter == 1) { | ||||
|                 # we have key and delimiter, but since additional spaces are not alowed | ||||
|                 # return wrongformat | ||||
|                 found=1 | ||||
|                 print "wrongformat" | ||||
|                 exit | ||||
|             } | ||||
|         } | ||||
|         found=1 | ||||
|         if(state == "absent") { | ||||
|             # on state absent, only the ocurance is relevant, so exit here | ||||
|             print "present" | ||||
|             exit | ||||
|         } | ||||
|         linevalue=substr(delval,delpos + length(delimiter)) | ||||
|         if(exact_delimiter == 0){ | ||||
|             #ok, now strip tabs and whitespaces at the beginning of the value | ||||
|             sub(/[ \t]*/,"",linevalue) | ||||
|         } | ||||
|         # Key with separator found | ||||
|         if(linevalue == value) { | ||||
|             # exact match found, so state is present | ||||
|             print "present" | ||||
|         } | ||||
|         else { | ||||
|             print "wrongvalue" | ||||
|         } | ||||
|         exit | ||||
|     } | ||||
| } | ||||
| END { | ||||
|     if(found == 0) | ||||
|         print "absent" | ||||
| } | ||||
| AWK_EOF | ||||
|  |  | |||
							
								
								
									
										102
									
								
								cdist/conf/type/__key_value/files/remote_script.sh
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								cdist/conf/type/__key_value/files/remote_script.sh
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,102 @@ | |||
| export key="$(cat "$__object/parameter/key" 2>/dev/null \ | ||||
|    || echo "$__object_id")" | ||||
| export state="$(cat "$__object/parameter/state")" | ||||
| 
 | ||||
| file="$(cat "$__object/parameter/file")" | ||||
| 
 | ||||
| export delimiter="$(cat "$__object/parameter/delimiter")" | ||||
| export value="$(cat "$__object/parameter/value" 2>/dev/null \ | ||||
|    || echo "__CDIST_NOTSET__")" | ||||
| if [ -f "$__object/parameter/exact_delimiter" ]; then | ||||
|     export exact_delimiter=1 | ||||
| else | ||||
|     export exact_delimiter=0 | ||||
| fi | ||||
| 
 | ||||
| tmpfile=$(mktemp "${file}.cdist.XXXXXXXXXX") | ||||
| # preserve ownership and permissions by copying existing file over tmpfile | ||||
| if [ -f "$file" ]; then | ||||
|     cp -p "$file" "$tmpfile" | ||||
| else | ||||
|     touch "$file" | ||||
| fi | ||||
| awk -f - "$file" >"$tmpfile" <<"AWK_EOF" | ||||
| BEGIN { | ||||
|     # import variables in a secure way .. | ||||
|     state=ENVIRON["state"] | ||||
|     key=ENVIRON["key"] | ||||
|     delimiter=ENVIRON["delimiter"] | ||||
|     value=ENVIRON["value"] | ||||
|     comment=ENVIRON["comment"] | ||||
|     exact_delimiter=ENVIRON["exact_delimiter"] | ||||
|     inserted=0 | ||||
|     lastline="" | ||||
|     lastlinepopulated=0 | ||||
|     line=key delimiter value | ||||
| } | ||||
| # enter the main loop | ||||
| { | ||||
|     # I dont use regex, this is by design, so we can match against every value without special meanings of chars ... | ||||
|     i = index($0,key) | ||||
|     if(i == 1) { | ||||
|         delval = substr($0,length(key)+1) | ||||
|         delpos = index(delval,delimiter) | ||||
|         if(delpos > 1) { | ||||
|             spaces = substr(delval,1,delpos-1) | ||||
|             sub(/[ \t]*/,"",spaces) | ||||
|             if( length(spaces) > 0 ) { | ||||
|                 # if there are not only spaces between key and delimiter, | ||||
|                 # continue since we we are on the wrong line | ||||
|                 if(lastlinepopulated == 1) { | ||||
|                     print lastline | ||||
|                 } | ||||
|                 lastline=$0 | ||||
|                 lastlinepopulated=1 | ||||
|                 next | ||||
|             } | ||||
|         } | ||||
|         if(state == "absent") { | ||||
|             if(lastline == comment) { | ||||
|                 # if comment is present, clear lastlinepopulated flag | ||||
|                 lastlinepopulated=0 | ||||
|             } | ||||
|             # if absent, simple yump over this line | ||||
|             next | ||||
|         } | ||||
|         else { | ||||
|             # if comment is present and not present in last line | ||||
|             if (lastlinepopulated == 1) { | ||||
|                 print lastline | ||||
|                 if( comment != "" && lastline != comment) { | ||||
|                     print comment | ||||
|                 } | ||||
|                 lastlinepopulated=0 | ||||
|             } | ||||
|             inserted=1 | ||||
|             # state is present, so insert correct line here | ||||
|             print line | ||||
|             lastline=line | ||||
|             next | ||||
|         } | ||||
|     } | ||||
|     else { | ||||
|         if(lastlinepopulated == 1) { | ||||
|             print lastline | ||||
|         } | ||||
|         lastline=$0 | ||||
|         lastlinepopulated=1 | ||||
|     } | ||||
| } | ||||
| END { | ||||
|     if(lastlinepopulated == 1) { | ||||
|         print lastline | ||||
|     } | ||||
|     if(inserted == 0 && state == "present" ) { | ||||
|         if(comment != "" && lastline != comment){ | ||||
|             print comment | ||||
|         } | ||||
|         print line | ||||
|     } | ||||
| } | ||||
| AWK_EOF | ||||
| mv -f "$tmpfile" "$file" | ||||
|  | @ -1,7 +1,8 @@ | |||
| #!/bin/sh | ||||
| # | ||||
| # 2011 Steven Armstrong (steven-cdist at armstrong.cc) | ||||
| # 2012 Nico Schottelius (nico-cdist at schottelius.org) | ||||
| # 2012-2014 Nico Schottelius (nico-cdist at schottelius.org) | ||||
| # 2014 Daniel Heule     (hda at sfs.biz) | ||||
| # | ||||
| # This file is part of cdist. | ||||
| # | ||||
|  | @ -19,52 +20,56 @@ | |||
| # along with cdist. If not, see <http://www.gnu.org/licenses/>. | ||||
| # | ||||
| 
 | ||||
| key="$__object_id" | ||||
| [ -f "$__object/parameter/key" ] && key="$(cat "$__object/parameter/key")" | ||||
| 
 | ||||
| state_should="$(cat "$__object/parameter/state")" | ||||
| 
 | ||||
| file="$(cat "$__object/parameter/file")" | ||||
| delimiter="$(cat "$__object/parameter/delimiter")" | ||||
| # escape double quotes, as that is what we use ourself below | ||||
| value_escaped="$(cat "$__object/parameter/value" | sed -e "s/\([\"]\)/\\\\\1/g")" | ||||
| state_is="$(cat "$__object/explorer/state")" | ||||
| 
 | ||||
| [ "$state_is" = "$state_should" ] && exit 0 | ||||
| if [  "$state_is" = "$state_should" ]; then | ||||
|     exit 0 | ||||
| fi | ||||
| 
 | ||||
| # here we check only if the states are valid, | ||||
| # emmit messages and  | ||||
| # let awk do the work ... | ||||
| case "$state_should" in | ||||
|     absent) | ||||
|         # remove lines starting with key | ||||
|         cat << DONE | ||||
| tmpfile=\$(mktemp ${file}.cdist.XXXXXXXXXX) | ||||
| # preserve ownership and permissions by copying existing file over tmpfile | ||||
| cp -p "$file" "\$tmpfile" | ||||
| sed '/^$key\($delimiter\+\)/d' "$file" > "\$tmpfile" | ||||
| mv -f "\$tmpfile" "$file" | ||||
| DONE | ||||
|     ;; | ||||
|     present) | ||||
|         case "$state_is" in | ||||
|             absent) | ||||
|                 # add new key and value | ||||
|                 printf 'echo "%s%s%s" >> "%s"' "$key" "$delimiter" "$value_escaped" "$file" | ||||
|             absent|nosuchfile) | ||||
|                 # nothing to do | ||||
|             ;; | ||||
|             wrongvalue) | ||||
|                 # change exisiting value | ||||
|                 cat << DONE | ||||
| tmpfile=\$(mktemp ${file}.cdist.XXXXXXXXXX) | ||||
| # preserve ownership and permissions by copying existing file over tmpfile | ||||
| cp -p "$file" "\$tmpfile" | ||||
| sed "s|^$key\($delimiter\+\).*|$key\\1$value_escaped|" "$file" > "\$tmpfile" | ||||
| mv -f "\$tmpfile" "$file" | ||||
| DONE | ||||
|             wrongformat|wrongvalue|present) | ||||
|                 echo "remove" >> "$__messages_out" | ||||
|             ;; | ||||
|             *) | ||||
|                 echo "Unknown explorer state: $state_is" >&2 | ||||
|                 exit 1 | ||||
|             ;; | ||||
|         esac | ||||
|     ;; | ||||
|     present) | ||||
|         case "$state_is" in | ||||
|             nosuchfile) | ||||
|                 echo "create" >> "$__messages_out" | ||||
|             ;; | ||||
|             absent) | ||||
|                 echo "insert" >> "$__messages_out" | ||||
|             ;; | ||||
|             wrongformated|wrongvalue) | ||||
|                 echo "change" >> "$__messages_out" | ||||
|             ;; | ||||
|             present) | ||||
|                 # nothing to do | ||||
|             ;; | ||||
|             *) | ||||
|                 echo "Unknown explorer state: $state_is" >&2 | ||||
|                 exit 1 | ||||
|             ;; | ||||
|         esac | ||||
|     ;; | ||||
|     *) | ||||
|        echo "Unknown state: $state_should" >&2 | ||||
|        exit 1 | ||||
|     ;; | ||||
| esac | ||||
| 
 | ||||
| cat "$__type/files/remote_script.sh" | ||||
|  |  | |||
|  | @ -31,6 +31,30 @@ key:: | |||
|     The key to change. Defaults to object_id. | ||||
| value:: | ||||
|     The value for the key. Optional if state=absent, required otherwise. | ||||
| comment:: | ||||
|     If supplied, the value will be inserted before the line with the key, | ||||
|     but only if the key or value must be changed. | ||||
|     You need to ensure yourself that the line is prefixed with the correct | ||||
|     comment sign. (for example # or ; or wathever ..) | ||||
| 
 | ||||
| 
 | ||||
| BOOLEAN PARAMETERS | ||||
| ------------------ | ||||
| exact_delimiter:: | ||||
|     If supplied, treat additional whitespaces between key, delimiter and value | ||||
|     as wrong value. | ||||
| 
 | ||||
| 
 | ||||
| MESSAGES | ||||
| -------- | ||||
| remove:: | ||||
|     Removed existing key and value | ||||
| insert:: | ||||
|     Added key and value | ||||
| change:: | ||||
|     Changed value of existing key | ||||
| create:: | ||||
|     A new line was inserted in a new file | ||||
| 
 | ||||
| 
 | ||||
| EXAMPLES | ||||
|  | @ -46,13 +70,19 @@ __key_value my-fancy-id --file /etc/login.defs --key SYS_UID_MAX --value 666 \ | |||
| 
 | ||||
| # Enable packet forwarding | ||||
| __key_value net.ipv4.ip_forward --file /etc/sysctl.conf --value 1 \ | ||||
|    --delimiter '=' | ||||
|    --delimiter ' = ' --comment '# my linux kernel should act as a router' | ||||
| 
 | ||||
| # Remove existing key/value | ||||
| __key_value LEGACY_KEY --file /etc/somefile --state absent --delimiter '='  | ||||
| -------------------------------------------------------------------------------- | ||||
| 
 | ||||
| 
 | ||||
| MORE INFORMATION | ||||
| ---------------- | ||||
| This type try to handle as many values as possible, so it doesn't use regexes. | ||||
| So you need to exactly specify the key and delimiter. Delimiter can be of any lenght. | ||||
| 
 | ||||
| 
 | ||||
| SEE ALSO | ||||
| -------- | ||||
| - cdist-type(7) | ||||
|  |  | |||
							
								
								
									
										1
									
								
								cdist/conf/type/__key_value/parameter/boolean
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__key_value/parameter/boolean
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| exact_delimiter | ||||
							
								
								
									
										1
									
								
								cdist/conf/type/__key_value/parameter/default/comment
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__key_value/parameter/default/comment
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| 
 | ||||
|  | @ -1,3 +1,4 @@ | |||
| key | ||||
| value | ||||
| state | ||||
| comment | ||||
|  |  | |||
|  | @ -1,6 +1,7 @@ | |||
| #!/bin/sh | ||||
| # | ||||
| # 2012 Nico Schottelius (nico-cdist at schottelius.org) | ||||
| # 2014 Steven Armstrong (steven-cdist at armstrong.cc) | ||||
| # | ||||
| # This file is part of cdist. | ||||
| # | ||||
|  | @ -74,8 +75,13 @@ case "$state_should" in | |||
|         fi | ||||
| 
 | ||||
|         cat << eof | ||||
| tmp=\$(mktemp) | ||||
| grep -v $greparg '$regex' '$file' > \$tmp && cat "\$tmp" > '$file' && rm -f "\$tmp" | ||||
| tmpfile=\$(mktemp ${file}.cdist.XXXXXXXXXX) | ||||
| # preserve ownership and permissions of existing file | ||||
| if [ -f "$file" ]; then | ||||
|    cp -p "$file" "\$tmpfile" | ||||
| fi | ||||
| grep -v $greparg '$regex' '$file' > \$tmpfile || true | ||||
| mv -f "\$tmpfile" "$file" | ||||
| eof | ||||
|     ;; | ||||
|     *) | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| #!/bin/sh | ||||
| # | ||||
| # 2012 Steven Armstrong (steven-cdist at armstrong.cc) | ||||
| # 2012-2014 Steven Armstrong (steven-cdist at armstrong.cc) | ||||
| # | ||||
| # This file is part of cdist. | ||||
| # | ||||
|  | @ -34,8 +34,13 @@ case "$type" in | |||
|    symbolic) | ||||
|       cd "$destination_dir" | ||||
|       source_is=$(ls -l "$destination" | sed 's/.*-> //g') | ||||
|       if [ -h "$destination" -a "$source_is" = "$source" ]; then | ||||
|       if [ -h "$destination" ]; then | ||||
|          # ignore trailing slashes for comparison | ||||
|          if [ "${source_is%/}" = "${source%/}" ]; then | ||||
|             echo present | ||||
|          else | ||||
|             echo wrongsource | ||||
|          fi | ||||
|       else | ||||
|          echo absent | ||||
|       fi | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| #!/bin/sh | ||||
| # | ||||
| # 2011-2012 Nico Schottelius (nico-cdist at schottelius.org) | ||||
| # 2013 Steven Armstrong (steven-cdist at armstrong.cc) | ||||
| # 2013-2014 Steven Armstrong (steven-cdist at armstrong.cc) | ||||
| # | ||||
| # This file is part of cdist. | ||||
| # | ||||
|  | @ -18,9 +18,6 @@ | |||
| # You should have received a copy of the GNU General Public License | ||||
| # along with cdist. If not, see <http://www.gnu.org/licenses/>. | ||||
| # | ||||
| # | ||||
| # Mostly a wrapper for ln | ||||
| # | ||||
| 
 | ||||
| destination="/$__object_id" | ||||
| 
 | ||||
|  | @ -50,20 +47,22 @@ case "$state_should" in | |||
|     present) | ||||
|         if [ "$file_type" = "directory" ]; then | ||||
|             # our destination is currently a directory, delete it | ||||
|             cat << DONE | ||||
| rm -rf "$destination" | ||||
| DONE | ||||
|             printf 'rm -rf "%s" &&\n' "$destination" | ||||
|         else | ||||
|            if [ "$state_is" = "wrongsource" ]; then | ||||
|                # our destination is a symlink but points to the wrong source, | ||||
|                # delete it | ||||
|                printf 'rm -f "%s" &&\n' "$destination" | ||||
|            fi | ||||
|         fi | ||||
| 
 | ||||
|         # create our link | ||||
|         cat << DONE | ||||
| ln ${lnopt} -f "$source" "$destination" | ||||
| DONE | ||||
|         printf 'ln %s -f "%s" "%s"\n' "$lnopt" "$source" "$destination" | ||||
|     ;; | ||||
|     absent) | ||||
|         # only delete if it is a sym/hard link | ||||
|         if [ "$file_type" = "symlink" -o "$file_type" = "hardlink" ]; then | ||||
|             echo rm -f \"$destination\" | ||||
|             printf 'rm -f "%s"\n' "$destination" | ||||
|         fi | ||||
|     ;; | ||||
|     *) | ||||
|  |  | |||
|  | @ -16,7 +16,7 @@ This cdist type allows you to setup locales. | |||
| OPTIONAL PARAMETERS | ||||
| ------------------- | ||||
| state:: | ||||
|    'present' or 'absent' | ||||
|    'present' or 'absent', defaults to present | ||||
| 
 | ||||
| 
 | ||||
| EXAMPLES | ||||
|  | @ -43,5 +43,5 @@ SEE ALSO | |||
| 
 | ||||
| COPYING | ||||
| ------- | ||||
| Copyright \(C) 2013 Nico Schottelius. Free use of this software is | ||||
| Copyright \(C) 2013-2014 Nico Schottelius. Free use of this software is | ||||
| granted under the terms of the GNU General Public License version 3 (GPLv3). | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| #!/bin/sh | ||||
| # | ||||
| # 2013 Nico Schottelius (nico-cdist at schottelius.org) | ||||
| # 2013-2014 Nico Schottelius (nico-cdist at schottelius.org) | ||||
| # | ||||
| # This file is part of cdist. | ||||
| # | ||||
|  | @ -29,4 +29,12 @@ case "$os" in | |||
|         # Debian needs a seperate package | ||||
|         __package locales --state present | ||||
|     ;; | ||||
|     suse) | ||||
|         : | ||||
|     ;; | ||||
|     *) | ||||
|         echo "Sorry, do not know how to handle os: $os" >&2 | ||||
|         echo "Please edit the type ${__type##*/} to fix this." >&2 | ||||
|         exit 1 | ||||
|     ;; | ||||
| esac | ||||
|  |  | |||
|  | @ -50,8 +50,11 @@ fi | |||
| 
 | ||||
| pkg_version="$(cat "$__object/explorer/pkg_version")" | ||||
| 
 | ||||
| # TODO: Shouldn't be hardcoded | ||||
| echo export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/$os_version/packages/$machine/ | ||||
| if [ -f "$__object/parameter/pkg_path" ]; then                                   | ||||
|   pkg_path="$(cat "$__object/parameter/pkg_path")"                               | ||||
| else | ||||
|   pkg_path="ftp://ftp.openbsd.org/pub/OpenBSD/$os_version/packages/$machine/" | ||||
| fi                                                                               | ||||
| 
 | ||||
| if [ "$pkg_version" ]; then | ||||
|     state_is="present" | ||||
|  | @ -65,10 +68,16 @@ case "$state_should" in | |||
|     present) | ||||
|         # use this because pkg_add doesn't properly handle errors | ||||
|         cat << eof | ||||
| status=\$(pkg_add "$pkgopts" "$name--$flavor") | ||||
| export PKG_PATH="$pkg_path"                                               | ||||
| status=\$(pkg_add "$pkgopts" "$name--$flavor" 2>&1) | ||||
| pkg_info | grep "^${name}.*${flavor}" > /dev/null 2>&1 | ||||
| 
 | ||||
| # no error | ||||
| if [ -n "\$status" ]; then | ||||
| # We didn't find the package in the list of 'installed packages', so it failed | ||||
| # This is necessary because pkg_add doesn't return properly | ||||
| if [ \$? -ne 0 ]; then | ||||
|     if [ -z "\${status}" ]; then | ||||
|       status="Failed to add package, uncaught exception." | ||||
|     fi | ||||
|     echo "Error: \$status" | ||||
|     exit 1 | ||||
| fi | ||||
|  | @ -79,9 +88,14 @@ eof | |||
|         # use this because pkg_add doesn't properly handle errors | ||||
|         cat << eof | ||||
| status=\$(pkg_delete "$pkgopts" "$name--$flavor") | ||||
| pkg_info | grep "^${name}.*${flavor}" > /dev/null 2>&1 | ||||
| 
 | ||||
| # no error | ||||
| if [ -n "\$status" ]; then | ||||
| # We found the package in the list of 'installed packages' | ||||
| # This would indicate that pkg_delete failed, send the output of pkg_delete | ||||
| if [ \$? -eq 0 ]; then | ||||
|     if [ -z "\${status}" ]; then | ||||
|       status="Failed to remove package, uncaught exception." | ||||
|     fi | ||||
|     echo "Error: \$status" | ||||
|     exit 1 | ||||
| fi | ||||
|  |  | |||
|  | @ -29,6 +29,8 @@ flavor:: | |||
| state:: | ||||
|     Either "present" or "absent", defaults to "present" | ||||
| 
 | ||||
| pkg_path:: | ||||
|     Manually specify a PKG_PATH to add packages from. | ||||
| 
 | ||||
| EXAMPLES | ||||
| -------- | ||||
|  | @ -45,6 +47,10 @@ __package_pkg_openbsd python --state present --name python2 | |||
| 
 | ||||
| # Remove obsolete package | ||||
| __package_pkg_openbsd puppet --state absent | ||||
| 
 | ||||
| # Add a package using a particular mirror | ||||
| __package_pkg_openbsd bash \ | ||||
|   --pkg_path http://openbsd.mirrorcatalogs.com/snapshots/packages/amd64 | ||||
| -------------------------------------------------------------------------------- | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,3 +1,4 @@ | |||
| name | ||||
| flavor | ||||
| state | ||||
| pkg_path | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| #!/bin/sh | ||||
| # | ||||
| # 2011 Nico Schottelius (nico-cdist at schottelius.org) | ||||
| # 2011-2014 Nico Schottelius (nico-cdist at schottelius.org) | ||||
| # | ||||
| # This file is part of cdist. | ||||
| # | ||||
|  | @ -27,6 +27,14 @@ else | |||
|    name="$__object_id" | ||||
| fi | ||||
| 
 | ||||
| # Support installing from an URL | ||||
| if [ -f "$__object/parameter/url" ]; then | ||||
|    install_name="$(cat "$__object/parameter/url")" | ||||
| else | ||||
|    install_name="$name" | ||||
| fi | ||||
| 
 | ||||
| 
 | ||||
| state_should="$(cat "$__object/parameter/state")" | ||||
| 
 | ||||
| if grep -q -E "(centos|redhat|amazon)" "$__global/explorer/os"; then | ||||
|  | @ -47,7 +55,7 @@ fi | |||
| 
 | ||||
| case "$state_should" in | ||||
|     present) | ||||
|         echo yum $opts install \"$name\" | ||||
|         echo yum $opts install \"$install_name\" | ||||
|     ;; | ||||
|     absent) | ||||
|         echo yum $opts remove \"$name\" | ||||
|  |  | |||
|  | @ -27,6 +27,8 @@ name:: | |||
| 
 | ||||
| state:: | ||||
|     Either "present" or "absent", defaults to "present" | ||||
| url:: | ||||
|     URL to use for the package | ||||
| 
 | ||||
| 
 | ||||
| EXAMPLES | ||||
|  | @ -41,6 +43,9 @@ __package_yum python --state present --name python2 | |||
| 
 | ||||
| # Remove obsolete package | ||||
| __package_yum puppet --state absent | ||||
| 
 | ||||
| __package epel-release-6-8 \ | ||||
|     --url http://mirror.switch.ch/ftp/mirror/epel/6/i386/epel-release-6-8.noarch.rpm | ||||
| -------------------------------------------------------------------------------- | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,2 +1,3 @@ | |||
| name | ||||
| state | ||||
| url | ||||
|  |  | |||
|  | @ -16,7 +16,7 @@ This type is used on *BSD systems to manage the pf firewall's ruleset. | |||
| REQUIRED PARAMETERS | ||||
| ------------------- | ||||
| state:: | ||||
|    Either "absent" (no ruleset at all) or "present" | ||||
|    Either "absent" (no ruleset at all) or "present", defaults to "present". | ||||
| 
 | ||||
| 
 | ||||
| OPTIONAL PARAMETERS | ||||
|  |  | |||
							
								
								
									
										1
									
								
								cdist/conf/type/__pf_ruleset/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__pf_ruleset/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| present | ||||
|  | @ -1 +1,2 @@ | |||
| source | ||||
| state | ||||
|  |  | |||
|  | @ -19,8 +19,7 @@ | |||
| # | ||||
| 
 | ||||
| name="$__object_id" | ||||
| state_should="present" | ||||
| [ -f "$__object/parameter/state" ] && state_should="$(cat "$__object/parameter/state")" | ||||
| state_should="$(cat "$__object/parameter/state")" | ||||
| state_is="$(cat "$__object/explorer/state")" | ||||
| 
 | ||||
| if [ "$state_should" != "$state_is" ]; then | ||||
|  |  | |||
|  | @ -16,7 +16,7 @@ This cdist type allows you to create or drop postgres databases. | |||
| OPTIONAL PARAMETERS | ||||
| ------------------- | ||||
| state:: | ||||
|    either 'present' or 'absent' | ||||
|    either 'present' or 'absent', defaults to 'present'. | ||||
| 
 | ||||
| owner:: | ||||
|    the role owning this database | ||||
|  |  | |||
|  | @ -0,0 +1 @@ | |||
| present | ||||
|  | @ -20,8 +20,7 @@ | |||
| 
 | ||||
| name="$__object_id" | ||||
| state_is="$(cat "$__object/explorer/state")" | ||||
| state_should="present" | ||||
| [ -f "$__object/parameter/state" ] && state_should="$(cat "$__object/parameter/state")" | ||||
| state_should="$(cat "$__object/parameter/state")" | ||||
| 
 | ||||
| [ "$state_is" = "$state_should" ] && exit 0 | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										1
									
								
								cdist/conf/type/__postgres_role/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__postgres_role/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| present | ||||
|  | @ -14,17 +14,15 @@ The qemu-img program is used to create qemu images for | |||
| qemu and (qemu-)kvm. | ||||
| 
 | ||||
| 
 | ||||
| REQUIRED PARAMETERS | ||||
| ------------------- | ||||
| size:: | ||||
|     Size of the image in qemu-img compatible units. | ||||
|     See qemu-img(1). | ||||
| 
 | ||||
| 
 | ||||
| OPTIONAL PARAMETERS | ||||
| ------------------- | ||||
| state:: | ||||
|     Either "present" or "absent", defaults to "present" | ||||
| size:: | ||||
|     Size of the image in qemu-img compatible units. | ||||
| 
 | ||||
|     Required if state is "present". | ||||
| 
 | ||||
| 
 | ||||
| EXAMPLES | ||||
|  | @ -42,9 +40,10 @@ __qemu_img /home/services/kvm/vm/myoldvm/system-disk --state absent | |||
| SEE ALSO | ||||
| -------- | ||||
| - cdist-type(7) | ||||
| - qemu-img(1) | ||||
| 
 | ||||
| 
 | ||||
| COPYING | ||||
| ------- | ||||
| Copyright \(C) 2012 Nico Schottelius. Free use of this software is | ||||
| Copyright \(C) 2012-2014 Nico Schottelius. Free use of this software is | ||||
| granted under the terms of the GNU General Public License version 3 (GPLv3). | ||||
|  |  | |||
|  | @ -3,11 +3,23 @@ | |||
| # | ||||
| 
 | ||||
| format="$(cat "$__object/parameter/format")" | ||||
| state="$(cat "$__object/parameter/state")" | ||||
| state_should="$(cat "$__object/parameter/state")" | ||||
| 
 | ||||
| diskimage="/$__object_id" | ||||
| 
 | ||||
| # Absent is ensured by __file, present by gencode-remote | ||||
| if [ "$state" = "absent" ]; then | ||||
| case "$state_should" in | ||||
|     present) | ||||
|         if [ ! -f "$__object/parameter/size" ]; then | ||||
|             echo "Size is required when state is present" >&2 | ||||
|             exit 1 | ||||
|         fi | ||||
|     ;; | ||||
|     absent) | ||||
|         # Absent is ensured by __file, present by gencode-remote | ||||
|         __file "$diskimage" --state absent | ||||
| fi | ||||
|     ;; | ||||
|     *) | ||||
|         echo "Unsupported state: $state_should" >&2 | ||||
|         exit 1 | ||||
|     ;; | ||||
| esac | ||||
|  |  | |||
|  | @ -1,2 +1,3 @@ | |||
| format | ||||
| state | ||||
| size | ||||
|  |  | |||
|  | @ -1 +0,0 @@ | |||
| size | ||||
							
								
								
									
										49
									
								
								cdist/conf/type/__rbenv/man.text
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								cdist/conf/type/__rbenv/man.text
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,49 @@ | |||
| cdist-type__rbenv(7) | ||||
| ==================== | ||||
| Nico Schottelius <nico-cdist--@--schottelius.org> | ||||
| 
 | ||||
| 
 | ||||
| NAME | ||||
| ---- | ||||
| cdist-type__rbenv - Manage rbenv installation | ||||
| 
 | ||||
| 
 | ||||
| DESCRIPTION | ||||
| ----------- | ||||
| This cdist type allows you to manage rbenv installations. | ||||
| It also installs ruby-build. | ||||
| 
 | ||||
| 
 | ||||
| OPTIONAL PARAMETERS | ||||
| ------------------- | ||||
| state:: | ||||
|     Either "present" or "absent", defaults to "present" | ||||
| 
 | ||||
| owner:: | ||||
|     Which user should own the rbenv installation, defaults to root | ||||
| 
 | ||||
| 
 | ||||
| EXAMPLES | ||||
| -------- | ||||
| 
 | ||||
| -------------------------------------------------------------------------------- | ||||
| # Install rbenv including ruby-build for nico | ||||
| __rbenv /home/nico | ||||
| 
 | ||||
| # Install rbenv including ruby-build for nico | ||||
| __rbenv /home/nico --owner nico | ||||
| 
 | ||||
| # Bastian does not need rbenv anymore, he began to code C99 | ||||
| __rbenv /home/bastian --state absent | ||||
| -------------------------------------------------------------------------------- | ||||
| 
 | ||||
| 
 | ||||
| SEE ALSO | ||||
| -------- | ||||
| - cdist-type(7) | ||||
| 
 | ||||
| 
 | ||||
| COPYING | ||||
| ------- | ||||
| Copyright \(C) 2012-2014 Nico Schottelius. Free use of this software is | ||||
| granted under the terms of the GNU General Public License version 3 (GPLv3). | ||||
							
								
								
									
										38
									
								
								cdist/conf/type/__rbenv/manifest
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								cdist/conf/type/__rbenv/manifest
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,38 @@ | |||
| #!/bin/sh | ||||
| # | ||||
| # 2012-2014 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/>. | ||||
| # | ||||
| # | ||||
| 
 | ||||
| homedir="$__object_id" | ||||
| 
 | ||||
| state_should="$(cat "$__object/parameter/state")" | ||||
| owner="$(cat "$__object/parameter/owner")" | ||||
| 
 | ||||
| rbenvdir="$homedir/.rbenv" | ||||
| rubybuilddir="$rbenvdir/plugins/ruby-build" | ||||
| 
 | ||||
| __git "$rbenvdir" \ | ||||
|     --source git://github.com/sstephenson/rbenv.git \ | ||||
|     --owner "$owner" \ | ||||
|     --state "$state_should" | ||||
| 
 | ||||
| require="__git/$rbenvdir" __git "$rubybuilddir" \ | ||||
|     --source git://github.com/sstephenson/ruby-build.git \ | ||||
|     --owner "$owner" \ | ||||
|     --state "$state_should" | ||||
							
								
								
									
										1
									
								
								cdist/conf/type/__rbenv/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__rbenv/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| present | ||||
							
								
								
									
										1
									
								
								cdist/conf/type/__rbenv/parameter/required
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__rbenv/parameter/required
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| owner | ||||
|  | @ -16,7 +16,7 @@ RVM is the Ruby enVironment Manager for the Ruby programming language. | |||
| REQUIRED PARAMETERS | ||||
| ------------------- | ||||
| state:: | ||||
|     Either "present" or "absent". | ||||
|     Either "present" or "absent", defaults to "present". | ||||
| 
 | ||||
| 
 | ||||
| EXAMPLES | ||||
|  |  | |||
							
								
								
									
										1
									
								
								cdist/conf/type/__rvm/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__rvm/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| present | ||||
|  | @ -20,7 +20,7 @@ user:: | |||
| gemset:: | ||||
|     The gemset to use | ||||
| state:: | ||||
|     Either "present" or "absent" | ||||
|     Either "present" or "absent", defaults to "present". | ||||
| 
 | ||||
| OPTIONAL PARAMETERS | ||||
| ------------------- | ||||
|  |  | |||
							
								
								
									
										1
									
								
								cdist/conf/type/__rvm_gem/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__rvm_gem/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| present | ||||
|  | @ -1 +1,2 @@ | |||
| default | ||||
| state | ||||
|  |  | |||
|  | @ -1,3 +1,2 @@ | |||
| state | ||||
| gemset | ||||
| user | ||||
|  |  | |||
|  | @ -18,7 +18,7 @@ REQUIRED PARAMETERS | |||
| user:: | ||||
|     The remote user account to use | ||||
| state:: | ||||
|     Either "present" or "absent". | ||||
|     Either "present" or "absent", defaults to "present". | ||||
| 
 | ||||
| BOOLEAN PARAMETERS | ||||
| ------------------- | ||||
|  |  | |||
							
								
								
									
										1
									
								
								cdist/conf/type/__rvm_gemset/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__rvm_gemset/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| present | ||||
|  | @ -1,2 +1 @@ | |||
| state | ||||
| user | ||||
|  |  | |||
|  | @ -18,7 +18,7 @@ REQUIRED PARAMETERS | |||
| user:: | ||||
|     The remote user account to use | ||||
| state:: | ||||
|     Either "present" or "absent". | ||||
|     Either "present" or "absent", defaults to "present". | ||||
| 
 | ||||
| BOOLEAN PARAMETERS | ||||
| ------------------ | ||||
|  |  | |||
							
								
								
									
										1
									
								
								cdist/conf/type/__rvm_ruby/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__rvm_ruby/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| present | ||||
							
								
								
									
										1
									
								
								cdist/conf/type/__rvm_ruby/parameter/optional
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__rvm_ruby/parameter/optional
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| state | ||||
|  | @ -1,2 +1 @@ | |||
| state | ||||
| user | ||||
|  |  | |||
							
								
								
									
										22
									
								
								cdist/conf/type/__ssh_authorized_keys/explorer/group
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										22
									
								
								cdist/conf/type/__ssh_authorized_keys/explorer/group
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,22 @@ | |||
| #!/bin/sh | ||||
| # | ||||
| # 2014 Steven Armstrong (steven-cdist at armstrong.cc) | ||||
| # | ||||
| # 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/>. | ||||
| # | ||||
| 
 | ||||
| gid="$("$__type_explorer/passwd" | cut -d':' -f 4)" | ||||
| getent group "$gid" || true | ||||
|  | @ -40,9 +40,6 @@ state:: | |||
| file:: | ||||
|    an alternative destination file, defaults to ~$owner/.ssh/authorized_keys | ||||
| 
 | ||||
| comment:: | ||||
|    an optional comment | ||||
| 
 | ||||
| 
 | ||||
| BOOLEAN PARAMETERS | ||||
| ------------------ | ||||
|  | @ -67,12 +64,11 @@ __ssh_authorized_keys root \ | |||
| __ssh_authorized_keys user-name \ | ||||
|    --key "ssh-rsa AXYZAAB3NzaC1yc2..." | ||||
| 
 | ||||
| # same as above, but with explicit owner, two keys and a comment | ||||
| # same as above, but with explicit owner and two keys | ||||
| __ssh_authorized_keys some-fancy-id \ | ||||
|    --owner user-name \ | ||||
|    --key "ssh-rsa AXYZAAB3NzaC1yc2..." \ | ||||
|    --key "ssh-rsa AZXYAAB3NzaC1yc2..." \ | ||||
|    --comment "allow the members of project foo to login" | ||||
|    --key "ssh-rsa AZXYAAB3NzaC1yc2..." | ||||
| 
 | ||||
| # same as above, but authorized_keys file in non standard location | ||||
| __ssh_authorized_keys some-fancy-id \ | ||||
|  | @ -97,5 +93,5 @@ SEE ALSO | |||
| 
 | ||||
| COPYING | ||||
| ------- | ||||
| Copyright \(C) 2012 Steven Armstrong. Free use of this software is | ||||
| Copyright \(C) 2012-2014 Steven Armstrong. Free use of this software is | ||||
| granted under the terms of the GNU General Public License version 3 (GPLv3). | ||||
|  |  | |||
|  | @ -1,6 +1,7 @@ | |||
| #!/bin/sh | ||||
| # | ||||
| # 2012 Steven Armstrong (steven-cdist at armstrong.cc) | ||||
| # 2012-2014 Steven Armstrong (steven-cdist at armstrong.cc) | ||||
| # 2014 Nico Schottelius (nico-cdist at schottelius.org) | ||||
| # | ||||
| # This file is part of cdist. | ||||
| # | ||||
|  | @ -32,7 +33,7 @@ else | |||
| fi | ||||
| 
 | ||||
| if [ ! -f "$__object/parameter/noparent" -o ! -f "$__object/parameter/nofile" ]; then | ||||
|    group="$(cut -d':' -f 4 "$__object/explorer/passwd")" | ||||
|    group="$(cut -d':' -f 1 "$__object/explorer/group")" | ||||
|    if [ -z "$group" ]; then | ||||
|       echo "Failed to get owners group from explorer." >&2 | ||||
|       exit 1 | ||||
|  | @ -56,16 +57,32 @@ if [ ! -f "$__object/parameter/noparent" -o ! -f "$__object/parameter/nofile" ]; | |||
|    fi | ||||
| fi | ||||
| 
 | ||||
| # Generate entry for inclusion in authorized_keys file | ||||
| ( | ||||
| if [ -f "$__object/parameter/comment" ]; then | ||||
|    echo "# $(cat "$__object/parameter/comment")" | ||||
| fi | ||||
| cat "$__object/parameter/key" | ||||
| ) | \ | ||||
| # Remove legacy blocks created by old versions of this type | ||||
| # FIXME: remove me in 3.2+ | ||||
| __block "$__object_name" \ | ||||
|    --file "$file" \ | ||||
|    --prefix "#cdist:$__object_name" \ | ||||
|    --suffix "#/cdist:$__object_name" \ | ||||
|    --state "$state" \ | ||||
|    --text - | ||||
|    --state 'absent' \ | ||||
|    --text - << DONE | ||||
| remove legacy block | ||||
| DONE | ||||
| 
 | ||||
| _cksum() { | ||||
|    echo "$1" | cksum | cut -d' ' -f 1 | ||||
| } | ||||
| 
 | ||||
| while read key; do | ||||
|    cksum_key="$(_cksum "$key")" | ||||
|    line_id="${owner}-${cksum_key}" | ||||
| 
 | ||||
|    set -- "$line_id" | ||||
|    set -- "$@" --file "$file" | ||||
|    set -- "$@" --regex ".*$key.*" | ||||
|    if [ "$state" = 'present' ]; then | ||||
|       set -- "$@" --line "$key" | ||||
|    fi | ||||
|    set -- "$@" --state "$state" | ||||
|    # Ensure __line does not read stdin | ||||
|    require="__block/$__object_name" __line "$@" < /dev/null | ||||
| done < "$__object/parameter/key" | ||||
|  |  | |||
|  | @ -1,4 +1,3 @@ | |||
| owner | ||||
| state | ||||
| file | ||||
| comment | ||||
|  |  | |||
|  | @ -27,13 +27,18 @@ os=$(cat "$__global/explorer/os") | |||
|          | ||||
| case "$os" in | ||||
|     archlinux|debian|ubuntu) | ||||
|         __package tzdata --state present | ||||
|         require="__package/tzdata" __link /etc/localtime    \ | ||||
|             --source "/usr/share/zoneinfo/${timezone}"      \ | ||||
|             --type symbolic | ||||
|         package=tzdata | ||||
|     ;; | ||||
|     suse) | ||||
|         package=timezone | ||||
|     ;; | ||||
|     *) | ||||
|         echo "Unsupported OS $os" >&2 | ||||
|         exit 1 | ||||
|     ;; | ||||
| esac | ||||
| 
 | ||||
| __package "$package" --state present | ||||
| require="__package/$package" __link /etc/localtime    \ | ||||
|     --source "/usr/share/zoneinfo/${timezone}"      \ | ||||
|     --type symbolic | ||||
|  |  | |||
|  | @ -26,9 +26,10 @@ os="$($__explorer/os)" | |||
| # Default to using shadow passwords | ||||
| database="shadow" | ||||
| 
 | ||||
| if [ "$os" = "freebsd" ]; then | ||||
|    database="passwd" | ||||
| fi | ||||
| case "$os" in | ||||
|   "freebsd"|"openbsd")  database="passwd";; | ||||
| esac | ||||
|    | ||||
| 
 | ||||
| getent "$database" "$name" || true | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										61
									
								
								cdist/conf/type/__yum_repo/files/repo.template
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										61
									
								
								cdist/conf/type/__yum_repo/files/repo.template
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,61 @@ | |||
| #!/bin/sh | ||||
| set -u | ||||
| cat << DONE | ||||
| # Created by cdist ${__type##*/} | ||||
| # Do not change. Changes will be overwritten. | ||||
| # | ||||
| [$repo_name] | ||||
| DONE | ||||
| # single value properties | ||||
| single_value='name | ||||
| metalink | ||||
| mirrorlist | ||||
| gpgcakey | ||||
| gpgcheck  | ||||
| exclude | ||||
| includepkgs | ||||
| failovermethod | ||||
| timeout | ||||
| http_caching | ||||
| retries | ||||
| throttle | ||||
| bandwidth | ||||
| sslcacert | ||||
| sslverify | ||||
| sslclientcert | ||||
| sslclientkey | ||||
| ssl_check_cert_permissions | ||||
| metadata_expire | ||||
| mirrorlist_expire | ||||
| proxy | ||||
| proxy_username | ||||
| proxy_password | ||||
| username | ||||
| password | ||||
| cost' | ||||
| for key in $single_value; do | ||||
|    if [ -f "$__object/parameter/$key" ]; then | ||||
|       printf '%s=%s\n' "$key" "$(cat "$__object/parameter/$key")" | ||||
|    fi | ||||
| done | ||||
| # multi value properties | ||||
| for key in baseurl gpgkey; do | ||||
|    if [ -f "$__object/parameter/$key" ]; then | ||||
|       printf '%s=' "$key" | ||||
|       prefix='' | ||||
|       while read line; do | ||||
|          printf '%s%s\n' "$prefix" "$line" | ||||
|          prefix='   ' | ||||
|       done < "$__object/parameter/$key" | ||||
|    fi | ||||
| done | ||||
| # boolean properties | ||||
| for key in enabled repo_gpgcheck keepalive skip_if_unavailable; do | ||||
|    if [ -f "$__object/parameter/$key" ]; then | ||||
|       printf '%s=1\n' "$key" | ||||
|    fi | ||||
| done | ||||
| # special cases | ||||
| if [ -f "$__object/parameter/disablegroups" ]; then | ||||
|    printf 'enablegroups=0\n' | ||||
| fi | ||||
							
								
								
									
										91
									
								
								cdist/conf/type/__yum_repo/man.text
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								cdist/conf/type/__yum_repo/man.text
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,91 @@ | |||
| cdist-type__yum_repo(7) | ||||
| ======================= | ||||
| Steven Armstrong <steven-cdist--@--armstrong.cc> | ||||
| 
 | ||||
| 
 | ||||
| NAME | ||||
| ---- | ||||
| cdist-type__yum_repo - manage yum repositories | ||||
| 
 | ||||
| 
 | ||||
| DESCRIPTION | ||||
| ----------- | ||||
| For all undocumented parameters see yum.conf(5). | ||||
| 
 | ||||
| 
 | ||||
| REQUIRED PARAMETERS | ||||
| ------------------- | ||||
| None. | ||||
| 
 | ||||
| 
 | ||||
| OPTIONAL PARAMETERS | ||||
| ------------------- | ||||
| state:: | ||||
|    'present' or 'absent'. Defaults to 'present' | ||||
| repositoryid:: | ||||
|    Defaults to __object_id. | ||||
| name:: | ||||
| baseurl:: | ||||
|    Can be specified multiple times. | ||||
| metalink:: | ||||
| mirrorlist:: | ||||
| gpgkey:: | ||||
|    Can be specified multiple times. | ||||
| gpgcakey:: | ||||
| gpgcheck:: | ||||
| exclude:: | ||||
| includepkgs:: | ||||
| failovermethod:: | ||||
| timeout:: | ||||
| http_caching:: | ||||
| retries:: | ||||
| throttle:: | ||||
| bandwidth:: | ||||
| sslcacert:: | ||||
| sslverify:: | ||||
| sslclientcert:: | ||||
| sslclientkey:: | ||||
| ssl_check_cert_permissions:: | ||||
| metadata_expire:: | ||||
| mirrorlist_expire:: | ||||
| proxy:: | ||||
| proxy_username:: | ||||
| proxy_password:: | ||||
| username:: | ||||
| password:: | ||||
| cost:: | ||||
| 
 | ||||
| 
 | ||||
| BOOLEAN PARAMETERS | ||||
| ------------------ | ||||
| enabled:: | ||||
| repo_gpgcheck:: | ||||
| disablegroups:: | ||||
|    ! enablegroups | ||||
| keepalive:: | ||||
| skip_if_unavailable:: | ||||
| 
 | ||||
| 
 | ||||
| EXAMPLES | ||||
| -------- | ||||
| 
 | ||||
| -------------------------------------------------------------------------------- | ||||
| __yum_repo epel \ | ||||
|    --name 'Extra Packages for Enterprise Linux 6 - $basearch' \ | ||||
|    --mirrorlist 'https://mirrors.fedoraproject.org/metalink?repo=epel-$releasever&arch=$basearch' \ | ||||
|    --failovermethod priority \ | ||||
|    --enabled \ | ||||
|    --gpgcheck 1 \ | ||||
|    --gpgkey https://fedoraproject.org/static/0608B895.txt | ||||
| -------------------------------------------------------------------------------- | ||||
| 
 | ||||
| 
 | ||||
| SEE ALSO | ||||
| -------- | ||||
| - cdist-type(7) | ||||
| 
 | ||||
| 
 | ||||
| COPYING | ||||
| ------- | ||||
| Copyright \(C) 2014 Steven Armstrong. Free use of this software is | ||||
| granted under the terms of the GNU General Public License version 3 (GPLv3). | ||||
							
								
								
									
										40
									
								
								cdist/conf/type/__yum_repo/manifest
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										40
									
								
								cdist/conf/type/__yum_repo/manifest
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,40 @@ | |||
| #!/bin/sh | ||||
| # | ||||
| # 2014 Steven Armstrong (steven-cdist at armstrong.cc) | ||||
| # | ||||
| # 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/>. | ||||
| # | ||||
| 
 | ||||
| os=$(cat "$__global/explorer/os") | ||||
| state="$(cat "$__object/parameter/state")" | ||||
| 
 | ||||
| case "$os" in | ||||
|    centos) | ||||
|       repo_name="$__object_id" | ||||
|       export repo_name | ||||
|       repo_file="/etc/yum.repos.d/${repo_name}.repo" | ||||
|       "$__type/files/repo.template" | \ | ||||
|          __file "$repo_file" \ | ||||
|             --owner root --group root --mode 644 \ | ||||
|             --state "$state" \ | ||||
|             --source - | ||||
|    ;; | ||||
|    *) | ||||
|       echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 | ||||
|       echo "Please contribute an implementation for it if you can." >&2 | ||||
|       exit 1 | ||||
|    ;; | ||||
| esac | ||||
							
								
								
									
										3
									
								
								cdist/conf/type/__yum_repo/notes
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								cdist/conf/type/__yum_repo/notes
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | |||
| https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sec-Configuring_Yum_and_Yum_Repositories.html | ||||
| https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/2/html/Getting_Started_Guide/sect-Configuring_Software_Repositories.html | ||||
| http://docs.puppetlabs.com/references/latest/type.html#yumrepo | ||||
							
								
								
									
										5
									
								
								cdist/conf/type/__yum_repo/parameter/boolean
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								cdist/conf/type/__yum_repo/parameter/boolean
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,5 @@ | |||
| enabled | ||||
| repo_gpgcheck | ||||
| disablegroups | ||||
| keepalive | ||||
| skip_if_unavailable | ||||
							
								
								
									
										1
									
								
								cdist/conf/type/__yum_repo/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__yum_repo/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| present | ||||
							
								
								
									
										27
									
								
								cdist/conf/type/__yum_repo/parameter/optional
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								cdist/conf/type/__yum_repo/parameter/optional
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,27 @@ | |||
| bandwidth | ||||
| cost | ||||
| exclude | ||||
| failovermethod | ||||
| gpgcakey | ||||
| gpgcheck | ||||
| http_caching | ||||
| includepkgs | ||||
| metadata_expire | ||||
| mirrorlist | ||||
| mirrorlist_expire | ||||
| name | ||||
| password | ||||
| proxy | ||||
| proxy_password | ||||
| proxy_username | ||||
| repositoryid | ||||
| retries | ||||
| sslcacert | ||||
| ssl_check_cert_permissions | ||||
| sslclientcert | ||||
| sslclientkey | ||||
| sslverify | ||||
| state | ||||
| throttle | ||||
| timeout | ||||
| username | ||||
							
								
								
									
										2
									
								
								cdist/conf/type/__yum_repo/parameter/optional_multiple
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								cdist/conf/type/__yum_repo/parameter/optional_multiple
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,2 @@ | |||
| baseurl | ||||
| gpgkey | ||||
|  | @ -18,11 +18,11 @@ | |||
| # along with cdist. If not, see <http://www.gnu.org/licenses/>. | ||||
| # | ||||
| # | ||||
| # Retrieve the id from the repo with the uri from parameter repo_uri  - parsed zypper output | ||||
| # Retrieve the id from the repo with the uri from parameter uri  - parsed zypper output | ||||
| # | ||||
| # | ||||
| if [ -f "$__object/parameter/repo_uri" ]; then | ||||
|    uri="$(cat "$__object/parameter/repo_uri")" | ||||
| if [ -f "$__object/parameter/uri" ]; then | ||||
|    uri="$(cat "$__object/parameter/uri")" | ||||
| else | ||||
|    uri="$__object_id" | ||||
| fi | ||||
|  |  | |||
|  | @ -25,7 +25,7 @@ | |||
| #exec >&2 | ||||
| #set -x | ||||
| 
 | ||||
| zypper_def_opts=" -q " | ||||
| zypper_def_opts=" -q --non-interactive --gpg-auto-import-keys " | ||||
| 
 | ||||
| if [ -f "$__object/parameter/repo_desc" ]; then | ||||
|    desc="$(cat "$__object/parameter/repo_desc")" | ||||
|  | @ -33,8 +33,8 @@ else | |||
|    desc="$__object_id" | ||||
| fi | ||||
| 
 | ||||
| if [ -f "$__object/parameter/repo_uri" ]; then | ||||
|    uri="$(cat "$__object/parameter/repo_uri")" | ||||
| if [ -f "$__object/parameter/uri" ]; then | ||||
|    uri="$(cat "$__object/parameter/uri")" | ||||
| else | ||||
|    uri="$__object_id" | ||||
| fi | ||||
|  | @ -65,7 +65,7 @@ fi | |||
| case "$state" in | ||||
|    present) | ||||
|          if [ -z "$desc" ] || [ -z "$uri" ]; then | ||||
|              echo "parameter repo_desc and repo_uri for $state needed" >&2 | ||||
|              echo "parameter repo_desc and uri for $state needed" >&2 | ||||
|              exit 4 | ||||
|          fi | ||||
|          if [ -z "$repo_id" ]; then | ||||
|  |  | |||
|  | @ -22,13 +22,13 @@ OPTIONAL PARAMETERS | |||
| ------------------- | ||||
| state:: | ||||
|     Either "present" or "absent" or "enabled" or "disabled", defaults to "present" +  | ||||
|     #present#  - make sure that the repo is aviable, needs repo_uri and repo_desc +  | ||||
|          for all following states, the repo can be searched via repo_id or repo_uri +  | ||||
|     #present#  - make sure that the repo is aviable, needs uri and repo_desc +  | ||||
|          for all following states, the repo can be searched via repo_id or uri +  | ||||
|     #absent#   - drop the repo if found +  | ||||
|     #enabled#  - a repo can have state disabled if installed via zypper service (ris), in this case, you can enable the repo +  | ||||
|     #disabled# - instead of absent (drop), a repo can also set to disabled, wich makes it inaccessible +  | ||||
| 
 | ||||
| repo_uri:: | ||||
| uri:: | ||||
|     If supplied, use the uri and not the object id as repo uri. | ||||
| 
 | ||||
| repo_desc:: | ||||
|  | @ -43,10 +43,10 @@ EXAMPLES | |||
| 
 | ||||
| -------------------------------------------------------------------------------- | ||||
| # Ensure testrepo in installed | ||||
| __zypper_repo testrepo --state present --repo_uri http://url.to.your.repo/with/path | ||||
| __zypper_repo testrepo --state present --uri http://url.to.your.repo/with/path | ||||
| 
 | ||||
| # Drop repo by repo uri | ||||
| __zypper_repo testrepo --state absent --repo_uri http://url.to.your.repo/with/path | ||||
| __zypper_repo testrepo --state absent --uri http://url.to.your.repo/with/path | ||||
| 
 | ||||
| # Drop repo by id number (attention: repos are always numbered from 1 to max) | ||||
| __zypper_repo testrepo --state absent --repo_id 1 | ||||
|  | @ -55,7 +55,7 @@ __zypper_repo testrepo --state absent --repo_id 1 | |||
| __zypper_repo testrepo2 --state enabled --repo_id 2 | ||||
| 
 | ||||
| # enable repo by uri | ||||
| __zypper_repo testrepo3 --state enabled --repo_uri http://url.to.your.repo/with/path | ||||
| __zypper_repo testrepo3 --state enabled --uri http://url.to.your.repo/with/path | ||||
| 
 | ||||
| # disable a repo works like enabling it | ||||
| __zypper_repo testrepo4 --state disabled --repo_id 4 | ||||
|  |  | |||
|  | @ -1,4 +1,4 @@ | |||
| state | ||||
| repo_uri | ||||
| uri | ||||
| repo_desc | ||||
| repo_id | ||||
|  |  | |||
|  | @ -20,8 +20,8 @@ | |||
| # | ||||
| # Manage services with Zypper (mostly suse) | ||||
| # | ||||
| if [ -f "$__object/parameter/service_uri" ]; then | ||||
|    uri="$(cat "$__object/parameter/service_uri")" | ||||
| if [ -f "$__object/parameter/uri" ]; then | ||||
|    uri="$(cat "$__object/parameter/uri")" | ||||
| else | ||||
|    uri="/$__object_id" | ||||
| fi | ||||
|  |  | |||
|  | @ -20,8 +20,8 @@ | |||
| # | ||||
| # Manage services with Zypper (mostly suse) | ||||
| # | ||||
| if [ -f "$__object/parameter/service_uri" ]; then | ||||
|    uri="$(cat "$__object/parameter/service_uri")" | ||||
| if [ -f "$__object/parameter/uri" ]; then | ||||
|    uri="$(cat "$__object/parameter/uri")" | ||||
| else | ||||
|    uri="/$__object_id" | ||||
| fi | ||||
|  |  | |||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue