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 | A2XM=a2x -f manpage --no-xmllint -a encoding=UTF-8 | ||||||
| A2XH=a2x -f xhtml --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 | helper=./bin/build-helper | ||||||
| 
 | 
 | ||||||
| MANDIR=docs/man | MANDIR=docs/man | ||||||
|  | @ -86,6 +93,7 @@ MANSTATICALL=$(MANSTATICMAN) $(MANSTATICHTML) | ||||||
| # Creating the type html page
 | # Creating the type html page
 | ||||||
| %.html: %.text | %.html: %.text | ||||||
| 	$(A2XH) $^ | 	$(A2XH) $^ | ||||||
|  | 	$(CROSSLINK) $@ | ||||||
| 
 | 
 | ||||||
| man: $(MANTYPEALL) $(MANREFALL) $(MANSTATICALL) | man: $(MANTYPEALL) $(MANREFALL) $(MANSTATICALL) | ||||||
| 
 | 
 | ||||||
|  | @ -99,7 +107,7 @@ man-dist: man check-date | ||||||
| 	cp ${MAN7DSTDIR}/*.html ${MAN7DSTDIR}/*.css ${MANWEBDIR}/man7 | 	cp ${MAN7DSTDIR}/*.html ${MAN7DSTDIR}/*.css ${MANWEBDIR}/man7 | ||||||
| 	cd ${MANWEBDIR} && git add . && git commit -m "cdist manpages update: $(CHANGELOG_VERSION)" || true | 	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 | 	# Fix ikiwiki, which does not like symlinks for pseudo security | ||||||
| 	ssh tee.schottelius.org \
 | 	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" |     	"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 | web-pub: web-dist man-dist speeches-dist | ||||||
| 	cd "${WEBDIR}" && make pub | 	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
 | # Release: Mailinglist
 | ||||||
|  |  | ||||||
|  | @ -104,6 +104,11 @@ eof | ||||||
|     ;; |     ;; | ||||||
| 
 | 
 | ||||||
|     ml-release) |     ml-release) | ||||||
|  |         if [ $# -ne 1 ]; then | ||||||
|  |             echo "$0 ml-release version" >&2 | ||||||
|  |             exit 1 | ||||||
|  |         fi | ||||||
|  | 
 | ||||||
|         version=$1; shift |         version=$1; shift | ||||||
| 
 | 
 | ||||||
|         to_a=cdist |         to_a=cdist | ||||||
|  | @ -142,40 +147,22 @@ eof | ||||||
| 
 | 
 | ||||||
|     freecode-release) |     freecode-release) | ||||||
|         version=$1; shift |         version=$1; shift | ||||||
|         api_token=$(awk '/machine freecode login/ { print $8 }' ~/.netrc) |  | ||||||
| 
 |  | ||||||
|         printf "Enter tag list for freecode release %s> " "$version" |         printf "Enter tag list for freecode release %s> " "$version" | ||||||
|         read taglist |         read taglist | ||||||
| 
 | 
 | ||||||
|         printf "Enter changelog for freecode release %s> " "$version" |         printf "Enter changelog for freecode release %s> " "$version" | ||||||
|         read changelog |         read changelog | ||||||
| 
 | 
 | ||||||
|         echo "Submit preview" |         echo "Submitting to freecode ..." | ||||||
|         cat << eof |         python2 ~/p/foreign/freecode-submit-2.7/freecode-submit -P cdist \ | ||||||
| tag_list = $taglist |             -v "$version" -c "$changelog" \ | ||||||
| changelog = $changelog |             -t "$taglist" \ | ||||||
| version = $version |             -n | ||||||
| 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 |  | ||||||
| 
 |  | ||||||
|     ;; |     ;; | ||||||
| 
 | 
 | ||||||
|     release-git-tag) |     release-git-tag) | ||||||
|         target_version=$($0 changelog-version) |         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" |             echo "Tag for $target_version exists, aborting" | ||||||
|             exit 1 |             exit 1 | ||||||
|         fi |         fi | ||||||
|  | @ -256,7 +243,11 @@ eof | ||||||
|         make pub |         make pub | ||||||
| 
 | 
 | ||||||
|         # publish man, speeches, website |         # publish man, speeches, website | ||||||
|         make web-release-all |         if [ "$masterbranch" = yes ]; then | ||||||
|  |             make web-release-all | ||||||
|  |         else | ||||||
|  |             make web-release-all-no-latest | ||||||
|  |         fi | ||||||
| 
 | 
 | ||||||
|         # Ensure that pypi release has the right version |         # Ensure that pypi release has the right version | ||||||
|         "$0" 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 | # 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' |     ip -o link show | sed -n 's/^[0-9]\+: \(.\+\): <.*/\1/p' | ||||||
|     exit 0 |     exit 0 | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| if ! command -v ifconfig; then | if ! command -v ifconfig >/dev/null; then | ||||||
|    # no ifconfig, nothing we could do |    # no ifconfig, nothing we could do | ||||||
|    exit 0 |    exit 0 | ||||||
| fi | 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") | os=$("$__explorer/os") | ||||||
| case "$os" in | case "$os" in | ||||||
|    "freebsd") |    "freebsd"|"openbsd") | ||||||
|       # FIXME: should be something like this based on man page, but can not test |       # FIXME: should be something like this based on man page, but can not test | ||||||
|       stat -f "type: %ST |       stat -f "type: %ST | ||||||
| owner: %Du %Su | owner: %Du %Su | ||||||
|  | @ -35,6 +35,15 @@ size: %Dz | ||||||
| links: %Dl | links: %Dl | ||||||
| " "$destination" | " "$destination" | ||||||
|    ;; |    ;; | ||||||
|  |     "macosx") | ||||||
|  |        stat -f "type: %HT | ||||||
|  |  owner: %Du %Su | ||||||
|  |  group: %Dg %Sg | ||||||
|  |  mode: %Lp %Sp | ||||||
|  |  size: %Dz | ||||||
|  |  links: %Dl | ||||||
|  |  " "$destination" | ||||||
|  |     ;; | ||||||
|    *) |    *) | ||||||
|       stat --printf="type: %F |       stat --printf="type: %F | ||||||
| owner: %u %U | owner: %u %U | ||||||
|  |  | ||||||
|  | @ -25,7 +25,7 @@ destination="/$__object_id" | ||||||
| 
 | 
 | ||||||
| os=$("$__explorer/os") | os=$("$__explorer/os") | ||||||
| case "$os" in | case "$os" in | ||||||
|    "freebsd") |    "freebsd"|"openbsd") | ||||||
|       # FIXME: should be something like this based on man page, but can not test |       # FIXME: should be something like this based on man page, but can not test | ||||||
|       stat -f "type: %ST |       stat -f "type: %ST | ||||||
| owner: %Du %Su | owner: %Du %Su | ||||||
|  | @ -33,6 +33,13 @@ group: %Dg %Sg | ||||||
| mode: %Op %Sp | mode: %Op %Sp | ||||||
| " "$destination" | " "$destination" | ||||||
|    ;; |    ;; | ||||||
|  |     "macosx") | ||||||
|  |        stat -f "type: %HT | ||||||
|  |  owner: %Du %Su | ||||||
|  |  group: %Dg %Sg | ||||||
|  |  mode: %Lp %Sp | ||||||
|  |  " "$destination" | ||||||
|  |     ;; | ||||||
|    *) |    *) | ||||||
|       stat --printf="type: %F |       stat --printf="type: %F | ||||||
| owner: %u %U | owner: %u %U | ||||||
|  |  | ||||||
							
								
								
									
										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") | os=$("$__explorer/os") | ||||||
| case "$os" in | case "$os" in | ||||||
|    "freebsd") |    "freebsd"|"openbsd") | ||||||
|       # FIXME: should be something like this based on man page, but can not test |       # FIXME: should be something like this based on man page, but can not test | ||||||
|       stat -f "type: %ST |       stat -f "type: %ST | ||||||
| owner: %Du %Su | owner: %Du %Su | ||||||
|  | @ -33,6 +33,15 @@ group: %Dg %Sg | ||||||
| mode: %Op %Sp | mode: %Op %Sp | ||||||
| size: %Dz | size: %Dz | ||||||
| links: %Dl | links: %Dl | ||||||
|  | " "$destination" | ||||||
|  |    ;; | ||||||
|  |    "macosx") | ||||||
|  |      stat -f "type: %HT | ||||||
|  | owner: %Du %Su | ||||||
|  | group: %Dg %Sg | ||||||
|  | mode: %Lp %Sp | ||||||
|  | size: %Dz | ||||||
|  | links: %Dl | ||||||
| " "$destination" | " "$destination" | ||||||
|    ;; |    ;; | ||||||
|    *) |    *) | ||||||
|  |  | ||||||
|  | @ -26,6 +26,7 @@ state:: | ||||||
| 
 | 
 | ||||||
| branch:: | branch:: | ||||||
|     Create this branch by checking out the remote branch of this name |     Create this branch by checking out the remote branch of this name | ||||||
|  |     Default branch is "master" | ||||||
| 
 | 
 | ||||||
| group:: | group:: | ||||||
|    Group to chgrp to. |    Group to chgrp to. | ||||||
|  |  | ||||||
|  | @ -24,6 +24,9 @@ | ||||||
| __package git --state present | __package git --state present | ||||||
| 
 | 
 | ||||||
| state_should="$(cat "$__object/parameter/state")" | 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 | # Let __directory handle removal of git repos | ||||||
| 
 | 
 | ||||||
|  | @ -33,7 +36,10 @@ case "$state_should" in | ||||||
|     ;; |     ;; | ||||||
| 
 | 
 | ||||||
|     absent) |     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 | # Retrieve the contents of /etc/hostname | ||||||
| # | # | ||||||
| 
 | 
 | ||||||
|  | # Almost any distribution | ||||||
| if [ -f /etc/hostname ]; then | if [ -f /etc/hostname ]; then | ||||||
|     cat /etc/hostname |     cat /etc/hostname | ||||||
|  | # SuSE | ||||||
|  | elif [ -f /etc/HOSTNAME ]; then | ||||||
|  |     cat /etc/HOSTNAME | ||||||
| fi | 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") | os=$(cat "$__global/explorer/os") | ||||||
| name_running=$(cat "$__global/explorer/hostname") | name_running=$(cat "$__global/explorer/hostname") | ||||||
| name_config=$(cat "$__object/explorer/hostname_file") | name_config=$(cat "$__object/explorer/hostname_file") | ||||||
|  | name_sysconfig=$(cat "$__object/explorer/hostname_sysconfig") | ||||||
| has_hostnamectl=$(cat "$__object/explorer/has_hostnamectl") | has_hostnamectl=$(cat "$__object/explorer/has_hostnamectl") | ||||||
| 
 | 
 | ||||||
| ################################################################################ | ################################################################################ | ||||||
| # If everything is ok -> exit | # If everything is ok -> exit | ||||||
| # | # | ||||||
| if [ "$name_config" = "$name_should" -a "$name_running" = "$name_should" ]; then | case "$os" in | ||||||
|     exit 0 |     archlinux|debian|suse|ubuntu) | ||||||
| fi |         if [ "$name_config" = "$name_should" -a "$name_running" = "$name_should" ]; then | ||||||
|  |             exit 0 | ||||||
|  |         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 | # Setup hostname | ||||||
|  | @ -45,6 +59,17 @@ echo changed >> "$__messages_out" | ||||||
| if [ "$has_hostnamectl" ]; then | if [ "$has_hostnamectl" ]; then | ||||||
|     echo "hostnamectl set-hostname '$name_should'" |     echo "hostnamectl set-hostname '$name_should'" | ||||||
| else | else | ||||||
|     echo "hostname '$name_should'" |     case "$os" in | ||||||
|     echo "printf '%s\n' '$name_should' > /etc/hostname" |         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 | fi | ||||||
|  |  | ||||||
|  | @ -20,6 +20,12 @@ | ||||||
| # | # | ||||||
| 
 | 
 | ||||||
| os=$(cat "$__global/explorer/os") | 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() { | not_supported() { | ||||||
|    echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 |    echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 | ||||||
|  | @ -28,11 +34,18 @@ not_supported() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| case "$os" in | case "$os" in | ||||||
|    archlinux|debian|ubuntu) |     archlinux|debian|suse|ubuntu) | ||||||
|       # handled in gencode-remote |         # handled in gencode-remote | ||||||
|       : |         : | ||||||
|    ;; |     ;; | ||||||
|    *) |     centos) | ||||||
|       not_supported |         __key_value sysconfig-hostname \ | ||||||
|    ;; |             --file /etc/sysconfig/network \ | ||||||
|  |             --delimiter '=' \ | ||||||
|  |             --key HOSTNAME \ | ||||||
|  |             --value "$name_should" --exact_delimiter | ||||||
|  |     ;; | ||||||
|  |     *) | ||||||
|  |         not_supported | ||||||
|  |     ;; | ||||||
| esac | esac | ||||||
|  |  | ||||||
|  | @ -41,7 +41,7 @@ __iptables_rule established  --rule "-A INPUT -m state --state RELATED,ESTABLISH | ||||||
| 
 | 
 | ||||||
| # Some service rules | # Some service rules | ||||||
| __iptables_rule http  --rule "-A INPUT -p tcp --dport 80 -j ACCEPT" | __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" | __iptables_rule https --rule "-A INPUT -p tcp --dport 443 -j ACCEPT" | ||||||
| 
 | 
 | ||||||
| # Ensure some rules are not present anymore | # Ensure some rules are not present anymore | ||||||
|  |  | ||||||
|  | @ -26,7 +26,7 @@ | ||||||
| #set -x | #set -x | ||||||
| 
 | 
 | ||||||
| if [ -f "$__object/parameter/jaildir" ]; then | if [ -f "$__object/parameter/jaildir" ]; then | ||||||
|    jaildir="$(cat "$__object/parameter/name")" |    jaildir="$(cat "$__object/parameter/jaildir")" | ||||||
| else | else | ||||||
|    jaildir="/usr/jail" |    jaildir="/usr/jail" | ||||||
| fi | fi | ||||||
|  |  | ||||||
|  | @ -32,7 +32,7 @@ else | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| if [ -f "$__object/parameter/jaildir" ]; then | if [ -f "$__object/parameter/jaildir" ]; then | ||||||
|    jaildir="$(cat "$__object/parameter/name")" |    jaildir="$(cat "$__object/parameter/jaildir")" | ||||||
| else | else | ||||||
|    jaildir="/usr/jail" |    jaildir="/usr/jail" | ||||||
| fi | fi | ||||||
|  |  | ||||||
|  | @ -32,14 +32,14 @@ else | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| if [ -f "$__object/parameter/jaildir" ]; then | if [ -f "$__object/parameter/jaildir" ]; then | ||||||
|    jaildir="$(cat "$__object/parameter/name")" |    jaildir="$(cat "$__object/parameter/jaildir")" | ||||||
| else | else | ||||||
|    jaildir="/usr/jail" |    jaildir="/usr/jail" | ||||||
| fi | fi | ||||||
| # backslash-escaped $jaildir | # backslash-escaped $jaildir | ||||||
| sjaildir="$(echo ${jaildir} | sed 's#/#\\/#g')" | 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 | if [ -n "${jls_output}" ]; then | ||||||
|    echo "STARTED" |    echo "STARTED" | ||||||
|  |  | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| #!/bin/sh | #!/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. | # This file is part of cdist. | ||||||
| # | # | ||||||
|  | @ -104,6 +104,7 @@ stopJail() { | ||||||
| # Check $status before issuing command | # Check $status before issuing command | ||||||
|    if [ "$status" = "STARTED" ]; then |    if [ "$status" = "STARTED" ]; then | ||||||
|       echo "/etc/rc.d/jail stop ${name}" |       echo "/etc/rc.d/jail stop ${name}" | ||||||
|  |       echo "stop" >> "$__messages_out" | ||||||
|    fi |    fi | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -111,6 +112,7 @@ startJail() { | ||||||
| # Check $status before issuing command | # Check $status before issuing command | ||||||
|    if [ "$status" = "NOTSTART" ]; then |    if [ "$status" = "NOTSTART" ]; then | ||||||
|       echo "/etc/rc.d/jail start ${name}" |       echo "/etc/rc.d/jail start ${name}" | ||||||
|  |       echo "start" >> "$__messages_out" | ||||||
|    fi |    fi | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -162,6 +164,7 @@ EOF | ||||||
|          rm -f /etc/rc.conf.bak |          rm -f /etc/rc.conf.bak | ||||||
|       fi |       fi | ||||||
| EOF | EOF | ||||||
|  |    echo "delete" >> "$__messages_out" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| createJail() { | createJail() { | ||||||
|  | @ -215,6 +218,7 @@ cat <<EOF | ||||||
|    fi |    fi | ||||||
| 
 | 
 | ||||||
| EOF | EOF | ||||||
|  |    echo "create" >> "$__messages_out" | ||||||
| 
 | 
 | ||||||
| # Create the ro+rw mountpoint entries in fstab | # Create the ro+rw mountpoint entries in fstab | ||||||
| cat <<EOF | cat <<EOF | ||||||
|  | @ -310,6 +314,7 @@ if [ "$onboot" = "yes" ]; then | ||||||
|       fi |       fi | ||||||
|       unset jail_list |       unset jail_list | ||||||
| EOF | EOF | ||||||
|  |    echo "onboot" >> "$__messages_out" | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| # Add the normal entries into the jail's rc.conf | # 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 | REQUIRED PARAMETERS | ||||||
| ------------------- | ------------------- | ||||||
| state:: | state:: | ||||||
|    Either "present" or "absent." |    Either "present" or "absent", defaults to "present". | ||||||
| 
 | 
 | ||||||
| jailbase:: | jailbase:: | ||||||
|    The location of the .tgz archive containing the base fs for your jails. |    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 | line (jail_<name>_ip="...") modified within rc.conf through some alternate | ||||||
| means. | 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 | EXAMPLES | ||||||
| -------- | -------- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -29,8 +29,8 @@ | ||||||
| # Can only be used on FreeBSD | # Can only be used on FreeBSD | ||||||
| os="$(cat "$__global/explorer/os")" | os="$(cat "$__global/explorer/os")" | ||||||
| if [ ! "$os" = "freebsd" ]; then | if [ ! "$os" = "freebsd" ]; then | ||||||
| 	echo "__jail can only be used on FreeBSD targets!" >&2 |    echo "__jail can only be used on FreeBSD targets!" >&2 | ||||||
| 	exit 1 |    exit 1 | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| jaildir="$(cat "$__object/parameter/jaildir")" | jaildir="$(cat "$__object/parameter/jaildir")" | ||||||
|  |  | ||||||
							
								
								
									
										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 | devfs-ruleset | ||||||
| jaildir | jaildir | ||||||
| jailbase | jailbase | ||||||
|  | state | ||||||
|  |  | ||||||
|  | @ -1,6 +1,7 @@ | ||||||
| #!/bin/sh | #!/bin/sh | ||||||
| # | # | ||||||
| # 2011 Steven Armstrong (steven-cdist at armstrong.cc) | # 2011 Steven Armstrong (steven-cdist at armstrong.cc) | ||||||
|  | # 2014 Daniel Heule     (hda at sfs.biz) | ||||||
| # | # | ||||||
| # This file is part of cdist. | # This file is part of cdist. | ||||||
| # | # | ||||||
|  | @ -18,36 +19,85 @@ | ||||||
| # along with cdist. If not, see <http://www.gnu.org/licenses/>. | # 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")" |    || echo "$__object_id")" | ||||||
| state="$(cat "$__object/parameter/state" 2>/dev/null \ | export state="$(cat "$__object/parameter/state")" | ||||||
|    || echo "present")" |  | ||||||
| file="$(cat "$__object/parameter/file")" |  | ||||||
| delimiter="$(cat "$__object/parameter/delimiter")" |  | ||||||
| value="$(cat "$__object/parameter/value" 2>/dev/null \ |  | ||||||
|    || echo "__CDIST_NOTSET__")" |  | ||||||
| 
 | 
 | ||||||
| case "$state" in | file="$(cat "$__object/parameter/file")" | ||||||
|    absent) | 
 | ||||||
|       if grep -q -E "^$key$delimiter+" "$file"; then | if [ ! -f "$file" ]; then | ||||||
|          # if the key exists, with whatever value, we will have to remove it |     echo "nosuchfile" | ||||||
|          # so report it as present |     exit | ||||||
|          echo present | fi | ||||||
|       else | 
 | ||||||
|          # key does not exist | export delimiter="$(cat "$__object/parameter/delimiter")" | ||||||
|          echo absent | export value="$(cat "$__object/parameter/value" 2>/dev/null \ | ||||||
|       fi |    || echo "__CDIST_NOTSET__")" | ||||||
|    ;; | if [ -f "$__object/parameter/exact_delimiter" ]; then | ||||||
|    present) |     export exact_delimiter=1 | ||||||
|       if grep -q -E "^$key$delimiter+$value$" "$file"; then | else | ||||||
|          # key exists and value is same |     export exact_delimiter=0 | ||||||
|          echo present | fi | ||||||
|       elif grep -q -E "^$key$delimiter+" "$file"; then | 
 | ||||||
|          # key exists, but value is empty or different | awk -f - "$file" <<"AWK_EOF" | ||||||
|          echo wrongvalue | BEGIN { | ||||||
|       else |     state=ENVIRON["state"] | ||||||
|          # key does not exist |     key=ENVIRON["key"] | ||||||
|          echo absent |     delimiter=ENVIRON["delimiter"] | ||||||
|       fi |     value=ENVIRON["value"] | ||||||
|    ;; |     exact_delimiter=ENVIRON["exact_delimiter"] | ||||||
| esac |     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 | #!/bin/sh | ||||||
| # | # | ||||||
| # 2011 Steven Armstrong (steven-cdist at armstrong.cc) | # 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. | # This file is part of cdist. | ||||||
| # | # | ||||||
|  | @ -19,52 +20,56 @@ | ||||||
| # along with cdist. If not, see <http://www.gnu.org/licenses/>. | # 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")" | 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="$(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 | case "$state_should" in | ||||||
|     absent) |     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 |         case "$state_is" in | ||||||
|             absent) |             absent|nosuchfile) | ||||||
|                 # add new key and value |                 # nothing to do | ||||||
|                 printf 'echo "%s%s%s" >> "%s"' "$key" "$delimiter" "$value_escaped" "$file" |  | ||||||
|             ;; |             ;; | ||||||
|             wrongvalue) |             wrongformat|wrongvalue|present) | ||||||
|                 # change exisiting value |                 echo "remove" >> "$__messages_out" | ||||||
|                 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 |  | ||||||
|             ;; |             ;; | ||||||
|             *) |             *) | ||||||
|                 echo "Unknown explorer state: $state_is" >&2 |                 echo "Unknown explorer state: $state_is" >&2 | ||||||
|                 exit 1 |                 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 |         esac | ||||||
|     ;; |     ;; | ||||||
|     *) |     *) | ||||||
|        echo "Unknown state: $state_should" >&2 |        echo "Unknown state: $state_should" >&2 | ||||||
|        exit 1 |        exit 1 | ||||||
|  |     ;; | ||||||
| esac | esac | ||||||
|  | 
 | ||||||
|  | cat "$__type/files/remote_script.sh" | ||||||
|  |  | ||||||
|  | @ -25,12 +25,36 @@ delimiter:: | ||||||
| OPTIONAL PARAMETERS | OPTIONAL PARAMETERS | ||||||
| ------------------- | ------------------- | ||||||
| state:: | state:: | ||||||
|    present or absent, defaults to present. If present, sets the key to value, |     present or absent, defaults to present. If present, sets the key to value, | ||||||
|    if absent, removes the key from the file. |     if absent, removes the key from the file. | ||||||
| key:: | key:: | ||||||
|    The key to change. Defaults to object_id. |     The key to change. Defaults to object_id. | ||||||
| value:: | value:: | ||||||
|    The value for the key. Optional if state=absent, required otherwise. |     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 | EXAMPLES | ||||||
|  | @ -46,13 +70,19 @@ __key_value my-fancy-id --file /etc/login.defs --key SYS_UID_MAX --value 666 \ | ||||||
| 
 | 
 | ||||||
| # Enable packet forwarding | # Enable packet forwarding | ||||||
| __key_value net.ipv4.ip_forward --file /etc/sysctl.conf --value 1 \ | __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 | # Remove existing key/value | ||||||
| __key_value LEGACY_KEY --file /etc/somefile --state absent --delimiter '='  | __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 | SEE ALSO | ||||||
| -------- | -------- | ||||||
| - cdist-type(7) | - 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 | key | ||||||
| value | value | ||||||
| state | state | ||||||
|  | comment | ||||||
|  |  | ||||||
|  | @ -1,6 +1,7 @@ | ||||||
| #!/bin/sh | #!/bin/sh | ||||||
| # | # | ||||||
| # 2012 Nico Schottelius (nico-cdist at schottelius.org) | # 2012 Nico Schottelius (nico-cdist at schottelius.org) | ||||||
|  | # 2014 Steven Armstrong (steven-cdist at armstrong.cc) | ||||||
| # | # | ||||||
| # This file is part of cdist. | # This file is part of cdist. | ||||||
| # | # | ||||||
|  | @ -74,8 +75,13 @@ case "$state_should" in | ||||||
|         fi |         fi | ||||||
| 
 | 
 | ||||||
|         cat << eof |         cat << eof | ||||||
| tmp=\$(mktemp) | tmpfile=\$(mktemp ${file}.cdist.XXXXXXXXXX) | ||||||
| grep -v $greparg '$regex' '$file' > \$tmp && cat "\$tmp" > '$file' && rm -f "\$tmp" | # 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 | eof | ||||||
|     ;; |     ;; | ||||||
|     *) |     *) | ||||||
|  |  | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| #!/bin/sh | #!/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. | # This file is part of cdist. | ||||||
| # | # | ||||||
|  | @ -34,8 +34,13 @@ case "$type" in | ||||||
|    symbolic) |    symbolic) | ||||||
|       cd "$destination_dir" |       cd "$destination_dir" | ||||||
|       source_is=$(ls -l "$destination" | sed 's/.*-> //g') |       source_is=$(ls -l "$destination" | sed 's/.*-> //g') | ||||||
|       if [ -h "$destination" -a "$source_is" = "$source" ]; then |       if [ -h "$destination" ]; then | ||||||
|          echo present |          # ignore trailing slashes for comparison | ||||||
|  |          if [ "${source_is%/}" = "${source%/}" ]; then | ||||||
|  |             echo present | ||||||
|  |          else | ||||||
|  |             echo wrongsource | ||||||
|  |          fi | ||||||
|       else |       else | ||||||
|          echo absent |          echo absent | ||||||
|       fi |       fi | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| #!/bin/sh | #!/bin/sh | ||||||
| # | # | ||||||
| # 2011-2012 Nico Schottelius (nico-cdist at schottelius.org) | # 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. | # This file is part of cdist. | ||||||
| # | # | ||||||
|  | @ -18,9 +18,6 @@ | ||||||
| # You should have received a copy of the GNU General Public License | # You should have received a copy of the GNU General Public License | ||||||
| # along with cdist. If not, see <http://www.gnu.org/licenses/>. | # along with cdist. If not, see <http://www.gnu.org/licenses/>. | ||||||
| # | # | ||||||
| # |  | ||||||
| # Mostly a wrapper for ln |  | ||||||
| # |  | ||||||
| 
 | 
 | ||||||
| destination="/$__object_id" | destination="/$__object_id" | ||||||
| 
 | 
 | ||||||
|  | @ -50,20 +47,22 @@ case "$state_should" in | ||||||
|     present) |     present) | ||||||
|         if [ "$file_type" = "directory" ]; then |         if [ "$file_type" = "directory" ]; then | ||||||
|             # our destination is currently a directory, delete it |             # our destination is currently a directory, delete it | ||||||
|             cat << DONE |             printf 'rm -rf "%s" &&\n' "$destination" | ||||||
| rm -rf "$destination" |         else | ||||||
| DONE |            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 |         fi | ||||||
| 
 | 
 | ||||||
|         # create our link |         # create our link | ||||||
|         cat << DONE |         printf 'ln %s -f "%s" "%s"\n' "$lnopt" "$source" "$destination" | ||||||
| ln ${lnopt} -f "$source" "$destination" |  | ||||||
| DONE |  | ||||||
|     ;; |     ;; | ||||||
|     absent) |     absent) | ||||||
|         # only delete if it is a sym/hard link |         # only delete if it is a sym/hard link | ||||||
|         if [ "$file_type" = "symlink" -o "$file_type" = "hardlink" ]; then |         if [ "$file_type" = "symlink" -o "$file_type" = "hardlink" ]; then | ||||||
|             echo rm -f \"$destination\" |             printf 'rm -f "%s"\n' "$destination" | ||||||
|         fi |         fi | ||||||
|     ;; |     ;; | ||||||
|     *) |     *) | ||||||
|  |  | ||||||
|  | @ -16,7 +16,7 @@ This cdist type allows you to setup locales. | ||||||
| OPTIONAL PARAMETERS | OPTIONAL PARAMETERS | ||||||
| ------------------- | ------------------- | ||||||
| state:: | state:: | ||||||
|    'present' or 'absent' |    'present' or 'absent', defaults to present | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| EXAMPLES | EXAMPLES | ||||||
|  | @ -43,5 +43,5 @@ SEE ALSO | ||||||
| 
 | 
 | ||||||
| COPYING | 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). | granted under the terms of the GNU General Public License version 3 (GPLv3). | ||||||
|  |  | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| #!/bin/sh | #!/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. | # This file is part of cdist. | ||||||
| # | # | ||||||
|  | @ -29,4 +29,12 @@ case "$os" in | ||||||
|         # Debian needs a seperate package |         # Debian needs a seperate package | ||||||
|         __package locales --state present |         __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 | esac | ||||||
|  |  | ||||||
|  | @ -50,8 +50,11 @@ fi | ||||||
| 
 | 
 | ||||||
| pkg_version="$(cat "$__object/explorer/pkg_version")" | pkg_version="$(cat "$__object/explorer/pkg_version")" | ||||||
| 
 | 
 | ||||||
| # TODO: Shouldn't be hardcoded | if [ -f "$__object/parameter/pkg_path" ]; then                                   | ||||||
| echo export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/$os_version/packages/$machine/ |   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 | if [ "$pkg_version" ]; then | ||||||
|     state_is="present" |     state_is="present" | ||||||
|  | @ -65,12 +68,18 @@ case "$state_should" in | ||||||
|     present) |     present) | ||||||
|         # use this because pkg_add doesn't properly handle errors |         # use this because pkg_add doesn't properly handle errors | ||||||
|         cat << eof |         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 | # We didn't find the package in the list of 'installed packages', so it failed | ||||||
| if [ -n "\$status" ]; then | # 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" |     echo "Error: \$status" | ||||||
| 	exit 1 |     exit 1 | ||||||
| fi | fi | ||||||
| eof | eof | ||||||
|     ;; |     ;; | ||||||
|  | @ -79,9 +88,14 @@ eof | ||||||
|         # use this because pkg_add doesn't properly handle errors |         # use this because pkg_add doesn't properly handle errors | ||||||
|         cat << eof |         cat << eof | ||||||
| status=\$(pkg_delete "$pkgopts" "$name--$flavor") | status=\$(pkg_delete "$pkgopts" "$name--$flavor") | ||||||
|  | pkg_info | grep "^${name}.*${flavor}" > /dev/null 2>&1 | ||||||
| 
 | 
 | ||||||
| # no error | # We found the package in the list of 'installed packages' | ||||||
| if [ -n "\$status" ]; then | # 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" |     echo "Error: \$status" | ||||||
|     exit 1 |     exit 1 | ||||||
| fi | fi | ||||||
|  |  | ||||||
|  | @ -29,6 +29,8 @@ flavor:: | ||||||
| state:: | state:: | ||||||
|     Either "present" or "absent", defaults to "present" |     Either "present" or "absent", defaults to "present" | ||||||
| 
 | 
 | ||||||
|  | pkg_path:: | ||||||
|  |     Manually specify a PKG_PATH to add packages from. | ||||||
| 
 | 
 | ||||||
| EXAMPLES | EXAMPLES | ||||||
| -------- | -------- | ||||||
|  | @ -45,6 +47,10 @@ __package_pkg_openbsd python --state present --name python2 | ||||||
| 
 | 
 | ||||||
| # Remove obsolete package | # Remove obsolete package | ||||||
| __package_pkg_openbsd puppet --state absent | __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 | name | ||||||
| flavor | flavor | ||||||
| state | state | ||||||
|  | pkg_path | ||||||
|  |  | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| #!/bin/sh | #!/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. | # This file is part of cdist. | ||||||
| # | # | ||||||
|  | @ -27,6 +27,14 @@ else | ||||||
|    name="$__object_id" |    name="$__object_id" | ||||||
| fi | 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")" | state_should="$(cat "$__object/parameter/state")" | ||||||
| 
 | 
 | ||||||
| if grep -q -E "(centos|redhat|amazon)" "$__global/explorer/os"; then | if grep -q -E "(centos|redhat|amazon)" "$__global/explorer/os"; then | ||||||
|  | @ -47,7 +55,7 @@ fi | ||||||
| 
 | 
 | ||||||
| case "$state_should" in | case "$state_should" in | ||||||
|     present) |     present) | ||||||
|         echo yum $opts install \"$name\" |         echo yum $opts install \"$install_name\" | ||||||
|     ;; |     ;; | ||||||
|     absent) |     absent) | ||||||
|         echo yum $opts remove \"$name\" |         echo yum $opts remove \"$name\" | ||||||
|  |  | ||||||
|  | @ -27,6 +27,8 @@ name:: | ||||||
| 
 | 
 | ||||||
| state:: | state:: | ||||||
|     Either "present" or "absent", defaults to "present" |     Either "present" or "absent", defaults to "present" | ||||||
|  | url:: | ||||||
|  |     URL to use for the package | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| EXAMPLES | EXAMPLES | ||||||
|  | @ -41,6 +43,9 @@ __package_yum python --state present --name python2 | ||||||
| 
 | 
 | ||||||
| # Remove obsolete package | # Remove obsolete package | ||||||
| __package_yum puppet --state absent | __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 | name | ||||||
| state | state | ||||||
|  | url | ||||||
|  |  | ||||||
|  | @ -16,7 +16,7 @@ This type is used on *BSD systems to manage the pf firewall's ruleset. | ||||||
| REQUIRED PARAMETERS | REQUIRED PARAMETERS | ||||||
| ------------------- | ------------------- | ||||||
| state:: | state:: | ||||||
|    Either "absent" (no ruleset at all) or "present" |    Either "absent" (no ruleset at all) or "present", defaults to "present". | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| OPTIONAL PARAMETERS | 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 | source | ||||||
|  | state | ||||||
|  |  | ||||||
|  | @ -19,8 +19,7 @@ | ||||||
| # | # | ||||||
| 
 | 
 | ||||||
| name="$__object_id" | name="$__object_id" | ||||||
| state_should="present" | state_should="$(cat "$__object/parameter/state")" | ||||||
| [ -f "$__object/parameter/state" ] && state_should="$(cat "$__object/parameter/state")" |  | ||||||
| state_is="$(cat "$__object/explorer/state")" | state_is="$(cat "$__object/explorer/state")" | ||||||
| 
 | 
 | ||||||
| if [ "$state_should" != "$state_is" ]; then | if [ "$state_should" != "$state_is" ]; then | ||||||
|  |  | ||||||
|  | @ -16,7 +16,7 @@ This cdist type allows you to create or drop postgres databases. | ||||||
| OPTIONAL PARAMETERS | OPTIONAL PARAMETERS | ||||||
| ------------------- | ------------------- | ||||||
| state:: | state:: | ||||||
|    either 'present' or 'absent' |    either 'present' or 'absent', defaults to 'present'. | ||||||
| 
 | 
 | ||||||
| owner:: | owner:: | ||||||
|    the role owning this database |    the role owning this database | ||||||
|  |  | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | present | ||||||
|  | @ -20,8 +20,7 @@ | ||||||
| 
 | 
 | ||||||
| name="$__object_id" | name="$__object_id" | ||||||
| state_is="$(cat "$__object/explorer/state")" | state_is="$(cat "$__object/explorer/state")" | ||||||
| state_should="present" | state_should="$(cat "$__object/parameter/state")" | ||||||
| [ -f "$__object/parameter/state" ] && state_should="$(cat "$__object/parameter/state")" |  | ||||||
| 
 | 
 | ||||||
| [ "$state_is" = "$state_should" ] && exit 0 | [ "$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. | qemu and (qemu-)kvm. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| REQUIRED PARAMETERS |  | ||||||
| ------------------- |  | ||||||
| size:: |  | ||||||
|     Size of the image in qemu-img compatible units. |  | ||||||
|     See qemu-img(1). |  | ||||||
| 
 |  | ||||||
| 
 | 
 | ||||||
| OPTIONAL PARAMETERS | OPTIONAL PARAMETERS | ||||||
| ------------------- | ------------------- | ||||||
| state:: | state:: | ||||||
|     Either "present" or "absent", defaults to "present" |     Either "present" or "absent", defaults to "present" | ||||||
|  | size:: | ||||||
|  |     Size of the image in qemu-img compatible units. | ||||||
|  | 
 | ||||||
|  |     Required if state is "present". | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| EXAMPLES | EXAMPLES | ||||||
|  | @ -42,9 +40,10 @@ __qemu_img /home/services/kvm/vm/myoldvm/system-disk --state absent | ||||||
| SEE ALSO | SEE ALSO | ||||||
| -------- | -------- | ||||||
| - cdist-type(7) | - cdist-type(7) | ||||||
|  | - qemu-img(1) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| COPYING | 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). | granted under the terms of the GNU General Public License version 3 (GPLv3). | ||||||
|  |  | ||||||
|  | @ -3,11 +3,23 @@ | ||||||
| # | # | ||||||
| 
 | 
 | ||||||
| format="$(cat "$__object/parameter/format")" | format="$(cat "$__object/parameter/format")" | ||||||
| state="$(cat "$__object/parameter/state")" | state_should="$(cat "$__object/parameter/state")" | ||||||
| 
 | 
 | ||||||
| diskimage="/$__object_id" | diskimage="/$__object_id" | ||||||
| 
 | 
 | ||||||
| # Absent is ensured by __file, present by gencode-remote | case "$state_should" in | ||||||
| if [ "$state" = "absent" ]; then |     present) | ||||||
|     __file "$diskimage" --state absent |         if [ ! -f "$__object/parameter/size" ]; then | ||||||
| fi |             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 | ||||||
|  |     ;; | ||||||
|  |     *) | ||||||
|  |         echo "Unsupported state: $state_should" >&2 | ||||||
|  |         exit 1 | ||||||
|  |     ;; | ||||||
|  | esac | ||||||
|  |  | ||||||
|  | @ -1,2 +1,3 @@ | ||||||
| format | format | ||||||
| state | 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 | REQUIRED PARAMETERS | ||||||
| ------------------- | ------------------- | ||||||
| state:: | state:: | ||||||
|     Either "present" or "absent". |     Either "present" or "absent", defaults to "present". | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| EXAMPLES | 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:: | gemset:: | ||||||
|     The gemset to use |     The gemset to use | ||||||
| state:: | state:: | ||||||
|     Either "present" or "absent" |     Either "present" or "absent", defaults to "present". | ||||||
| 
 | 
 | ||||||
| OPTIONAL PARAMETERS | 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 | default | ||||||
|  | state | ||||||
|  |  | ||||||
|  | @ -1,3 +1,2 @@ | ||||||
| state |  | ||||||
| gemset | gemset | ||||||
| user | user | ||||||
|  |  | ||||||
|  | @ -18,7 +18,7 @@ REQUIRED PARAMETERS | ||||||
| user:: | user:: | ||||||
|     The remote user account to use |     The remote user account to use | ||||||
| state:: | state:: | ||||||
|     Either "present" or "absent". |     Either "present" or "absent", defaults to "present". | ||||||
| 
 | 
 | ||||||
| BOOLEAN PARAMETERS | 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 | user | ||||||
|  |  | ||||||
|  | @ -18,7 +18,7 @@ REQUIRED PARAMETERS | ||||||
| user:: | user:: | ||||||
|     The remote user account to use |     The remote user account to use | ||||||
| state:: | state:: | ||||||
|     Either "present" or "absent". |     Either "present" or "absent", defaults to "present". | ||||||
| 
 | 
 | ||||||
| BOOLEAN PARAMETERS | 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 | 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:: | file:: | ||||||
|    an alternative destination file, defaults to ~$owner/.ssh/authorized_keys |    an alternative destination file, defaults to ~$owner/.ssh/authorized_keys | ||||||
| 
 | 
 | ||||||
| comment:: |  | ||||||
|    an optional comment |  | ||||||
| 
 |  | ||||||
| 
 | 
 | ||||||
| BOOLEAN PARAMETERS | BOOLEAN PARAMETERS | ||||||
| ------------------ | ------------------ | ||||||
|  | @ -67,12 +64,11 @@ __ssh_authorized_keys root \ | ||||||
| __ssh_authorized_keys user-name \ | __ssh_authorized_keys user-name \ | ||||||
|    --key "ssh-rsa AXYZAAB3NzaC1yc2..." |    --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 \ | __ssh_authorized_keys some-fancy-id \ | ||||||
|    --owner user-name \ |    --owner user-name \ | ||||||
|    --key "ssh-rsa AXYZAAB3NzaC1yc2..." \ |    --key "ssh-rsa AXYZAAB3NzaC1yc2..." \ | ||||||
|    --key "ssh-rsa AZXYAAB3NzaC1yc2..." \ |    --key "ssh-rsa AZXYAAB3NzaC1yc2..." | ||||||
|    --comment "allow the members of project foo to login" |  | ||||||
| 
 | 
 | ||||||
| # same as above, but authorized_keys file in non standard location | # same as above, but authorized_keys file in non standard location | ||||||
| __ssh_authorized_keys some-fancy-id \ | __ssh_authorized_keys some-fancy-id \ | ||||||
|  | @ -97,5 +93,5 @@ SEE ALSO | ||||||
| 
 | 
 | ||||||
| COPYING | 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). | granted under the terms of the GNU General Public License version 3 (GPLv3). | ||||||
|  |  | ||||||
|  | @ -1,6 +1,7 @@ | ||||||
| #!/bin/sh | #!/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. | # This file is part of cdist. | ||||||
| # | # | ||||||
|  | @ -32,7 +33,7 @@ else | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| if [ ! -f "$__object/parameter/noparent" -o ! -f "$__object/parameter/nofile" ]; then | 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 |    if [ -z "$group" ]; then | ||||||
|       echo "Failed to get owners group from explorer." >&2 |       echo "Failed to get owners group from explorer." >&2 | ||||||
|       exit 1 |       exit 1 | ||||||
|  | @ -56,16 +57,32 @@ if [ ! -f "$__object/parameter/noparent" -o ! -f "$__object/parameter/nofile" ]; | ||||||
|    fi |    fi | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| # Generate entry for inclusion in authorized_keys file | # Remove legacy blocks created by old versions of this type | ||||||
| ( | # FIXME: remove me in 3.2+ | ||||||
| if [ -f "$__object/parameter/comment" ]; then |  | ||||||
|    echo "# $(cat "$__object/parameter/comment")" |  | ||||||
| fi |  | ||||||
| cat "$__object/parameter/key" |  | ||||||
| ) | \ |  | ||||||
| __block "$__object_name" \ | __block "$__object_name" \ | ||||||
|    --file "$file" \ |    --file "$file" \ | ||||||
|    --prefix "#cdist:$__object_name" \ |    --prefix "#cdist:$__object_name" \ | ||||||
|    --suffix "#/cdist:$__object_name" \ |    --suffix "#/cdist:$__object_name" \ | ||||||
|    --state "$state" \ |    --state 'absent' \ | ||||||
|    --text - |    --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 | owner | ||||||
| state | state | ||||||
| file | file | ||||||
| comment |  | ||||||
|  |  | ||||||
|  | @ -27,13 +27,18 @@ os=$(cat "$__global/explorer/os") | ||||||
|          |          | ||||||
| case "$os" in | case "$os" in | ||||||
|     archlinux|debian|ubuntu) |     archlinux|debian|ubuntu) | ||||||
|         __package tzdata --state present |         package=tzdata | ||||||
|         require="__package/tzdata" __link /etc/localtime    \ |     ;; | ||||||
|             --source "/usr/share/zoneinfo/${timezone}"      \ |     suse) | ||||||
|             --type symbolic |         package=timezone | ||||||
|     ;; |     ;; | ||||||
|     *) |     *) | ||||||
|         echo "Unsupported OS $os" >&2 |         echo "Unsupported OS $os" >&2 | ||||||
|         exit 1 |         exit 1 | ||||||
|     ;; |     ;; | ||||||
| esac | 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 | # Default to using shadow passwords | ||||||
| database="shadow" | database="shadow" | ||||||
| 
 | 
 | ||||||
| if [ "$os" = "freebsd" ]; then | case "$os" in | ||||||
|    database="passwd" |   "freebsd"|"openbsd")  database="passwd";; | ||||||
| fi | esac | ||||||
|  |    | ||||||
| 
 | 
 | ||||||
| getent "$database" "$name" || true | 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/>. | # 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 | if [ -f "$__object/parameter/uri" ]; then | ||||||
|    uri="$(cat "$__object/parameter/repo_uri")" |    uri="$(cat "$__object/parameter/uri")" | ||||||
| else | else | ||||||
|    uri="$__object_id" |    uri="$__object_id" | ||||||
| fi | fi | ||||||
|  |  | ||||||
|  | @ -25,7 +25,7 @@ | ||||||
| #exec >&2 | #exec >&2 | ||||||
| #set -x | #set -x | ||||||
| 
 | 
 | ||||||
| zypper_def_opts=" -q " | zypper_def_opts=" -q --non-interactive --gpg-auto-import-keys " | ||||||
| 
 | 
 | ||||||
| if [ -f "$__object/parameter/repo_desc" ]; then | if [ -f "$__object/parameter/repo_desc" ]; then | ||||||
|    desc="$(cat "$__object/parameter/repo_desc")" |    desc="$(cat "$__object/parameter/repo_desc")" | ||||||
|  | @ -33,8 +33,8 @@ else | ||||||
|    desc="$__object_id" |    desc="$__object_id" | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| if [ -f "$__object/parameter/repo_uri" ]; then | if [ -f "$__object/parameter/uri" ]; then | ||||||
|    uri="$(cat "$__object/parameter/repo_uri")" |    uri="$(cat "$__object/parameter/uri")" | ||||||
| else | else | ||||||
|    uri="$__object_id" |    uri="$__object_id" | ||||||
| fi | fi | ||||||
|  | @ -65,7 +65,7 @@ fi | ||||||
| case "$state" in | case "$state" in | ||||||
|    present) |    present) | ||||||
|          if [ -z "$desc" ] || [ -z "$uri" ]; then |          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 |              exit 4 | ||||||
|          fi |          fi | ||||||
|          if [ -z "$repo_id" ]; then |          if [ -z "$repo_id" ]; then | ||||||
|  |  | ||||||
|  | @ -22,13 +22,13 @@ OPTIONAL PARAMETERS | ||||||
| ------------------- | ------------------- | ||||||
| state:: | state:: | ||||||
|     Either "present" or "absent" or "enabled" or "disabled", defaults to "present" +  |     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 +  |     #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 repo_uri +  |          for all following states, the repo can be searched via repo_id or uri +  | ||||||
|     #absent#   - drop the repo if found +  |     #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 +  |     #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 +  |     #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. |     If supplied, use the uri and not the object id as repo uri. | ||||||
| 
 | 
 | ||||||
| repo_desc:: | repo_desc:: | ||||||
|  | @ -43,10 +43,10 @@ EXAMPLES | ||||||
| 
 | 
 | ||||||
| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ||||||
| # Ensure testrepo in installed | # 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 | # 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) | # Drop repo by id number (attention: repos are always numbered from 1 to max) | ||||||
| __zypper_repo testrepo --state absent --repo_id 1 | __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 | __zypper_repo testrepo2 --state enabled --repo_id 2 | ||||||
| 
 | 
 | ||||||
| # enable repo by uri | # 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 | # disable a repo works like enabling it | ||||||
| __zypper_repo testrepo4 --state disabled --repo_id 4 | __zypper_repo testrepo4 --state disabled --repo_id 4 | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| state | state | ||||||
| repo_uri | uri | ||||||
| repo_desc | repo_desc | ||||||
| repo_id | repo_id | ||||||
|  |  | ||||||
|  | @ -20,8 +20,8 @@ | ||||||
| # | # | ||||||
| # Manage services with Zypper (mostly suse) | # Manage services with Zypper (mostly suse) | ||||||
| # | # | ||||||
| if [ -f "$__object/parameter/service_uri" ]; then | if [ -f "$__object/parameter/uri" ]; then | ||||||
|    uri="$(cat "$__object/parameter/service_uri")" |    uri="$(cat "$__object/parameter/uri")" | ||||||
| else | else | ||||||
|    uri="/$__object_id" |    uri="/$__object_id" | ||||||
| fi | 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