forked from ungleich-public/cdist
		
	add new type __xymon_apache as a helper for __xymon_server
		
	Details in `man.rst`
This commit is contained in:
		
					parent
					
						
							
								7d235fb013
							
						
					
				
			
			
				commit
				
					
						f35a1b9cdf
					
				
			
		
					 8 changed files with 207 additions and 0 deletions
				
			
		
							
								
								
									
										22
									
								
								cdist/conf/type/__xymon_apache/explorer/active-conf
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										22
									
								
								cdist/conf/type/__xymon_apache/explorer/active-conf
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,22 @@ | ||||||
|  | #!/bin/sh -e | ||||||
|  | # | ||||||
|  | # 2018-2019 Thomas Eckert (tom at it-eckert.de) | ||||||
|  | # | ||||||
|  | # 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/>. | ||||||
|  | 
 | ||||||
|  | if [ -d /etc/apache2/mods-enabled ]; then | ||||||
|  | 	ls -1 /etc/apache2/conf-enabled/ | ||||||
|  | fi | ||||||
							
								
								
									
										5
									
								
								cdist/conf/type/__xymon_apache/explorer/active-modules
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										5
									
								
								cdist/conf/type/__xymon_apache/explorer/active-modules
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,5 @@ | ||||||
|  | #!/bin/sh -e | ||||||
|  | 
 | ||||||
|  | if [ -d /etc/apache2/mods-enabled ]; then | ||||||
|  | 	/usr/sbin/apachectl -t -D DUMP_MODULES | awk '/.*_module/ { gsub(/_module.*$/, ""); gsub(/^ /, ""); print }'  | ||||||
|  | fi | ||||||
							
								
								
									
										56
									
								
								cdist/conf/type/__xymon_apache/gencode-remote
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										56
									
								
								cdist/conf/type/__xymon_apache/gencode-remote
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,56 @@ | ||||||
|  | #!/bin/sh -e | ||||||
|  | # | ||||||
|  | # 2018-2019 Thomas Eckert (tom at it-eckert.de) | ||||||
|  | # | ||||||
|  | # 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=$(cat "$__object/parameter/state") | ||||||
|  | 
 | ||||||
|  | os=$(cat "$__global/explorer/os") | ||||||
|  | case "$os" in | ||||||
|  | 	debian|ubuntu) | ||||||
|  | 		: | ||||||
|  | 	;; | ||||||
|  | 	*) | ||||||
|  | 		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 | ||||||
|  | 
 | ||||||
|  | if [ "$state" = "present"  ]; then | ||||||
|  | 	if ! grep -q ^rewrite "$__object/explorer/active-modules"; then | ||||||
|  | 		echo "a2enmod rewrite >/dev/null" | ||||||
|  | 		echo "mod:rewrite enabled" >> "$__messages_out" | ||||||
|  | 	fi | ||||||
|  | 	if ! grep -q "^cgi$" "$__object/explorer/active-modules"; then | ||||||
|  | 		echo "a2enmod cgi >/dev/null" | ||||||
|  | 		echo "mod:cgi enabled" >> "$__messages_out" | ||||||
|  | 	fi | ||||||
|  | 
 | ||||||
|  | 	if ! grep -q ^xymon.conf "$__object/explorer/active-conf"; then | ||||||
|  | 		echo "a2enconf xymon >/dev/null" | ||||||
|  | 		echo "conf:xymon enabled" >> "$__messages_out" | ||||||
|  | 	fi | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | if grep -q "^mod:.* enabled" "$__messages_out"; then | ||||||
|  | 	echo "systemctl restart apache2.service" | ||||||
|  | 	echo "apache restarted" >> "$__messages_out" | ||||||
|  | elif grep -q "^conf:xymon enabled" "$__messages_out"; then | ||||||
|  | 	echo "systemctl reload apache2.service" | ||||||
|  | 	echo "apache reloaded" >> "$__messages_out" | ||||||
|  | fi | ||||||
							
								
								
									
										79
									
								
								cdist/conf/type/__xymon_apache/man.rst
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								cdist/conf/type/__xymon_apache/man.rst
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,79 @@ | ||||||
|  | cdist-type__xymon_apache(7) | ||||||
|  | =========================== | ||||||
|  | 
 | ||||||
|  | NAME | ||||||
|  | ---- | ||||||
|  | cdist-type__xymon_apache - Configure apache2-webserver for Xymon | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | DESCRIPTION | ||||||
|  | ----------- | ||||||
|  | This cdist type installs and configures apache2 to be used "exclusively" (in | ||||||
|  | the sense that no other use is taken care of) with Xymon (the systems and | ||||||
|  | network monitor). | ||||||
|  | 
 | ||||||
|  | It depends on `__xymon_server`. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | REQUIRED PARAMETERS | ||||||
|  | ------------------- | ||||||
|  | None. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | OPTIONAL PARAMETERS | ||||||
|  | ------------------- | ||||||
|  | state | ||||||
|  |    'present', 'absent', defaults to 'present'. | ||||||
|  | 
 | ||||||
|  | ipacl | ||||||
|  |    IP(-ranges) that have access to the Xymon webpages and CGIs. Apache2-style | ||||||
|  |    syntax suitable for `Require ip ...`. Example: `192.168.1.0/24 10.0.0.0/8` | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | MESSAGES | ||||||
|  | -------- | ||||||
|  | mod:rewrite enabled | ||||||
|  |    apache module enabled | ||||||
|  | conf:xymon enabled | ||||||
|  |    apache config for xymon enabled | ||||||
|  | apache restarted | ||||||
|  |    apache2.service was reloaded | ||||||
|  | apache reloaded | ||||||
|  |    apache2.service was restarted | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | EXPLORERS | ||||||
|  | --------- | ||||||
|  | active-conf | ||||||
|  |    lists apache2 `conf-enabled` | ||||||
|  | active-modules | ||||||
|  |    lists active apache2-modules | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | EXAMPLES | ||||||
|  | -------- | ||||||
|  | 
 | ||||||
|  | .. code-block:: sh | ||||||
|  | 
 | ||||||
|  |     # minmal, only localhost-access: | ||||||
|  |     __xymon_apache | ||||||
|  |     # allow more IPs to access the Xymon-webinterface: | ||||||
|  |     __xymon_apache --ipacl "192.168.0.0/16 10.0.0.0/8" --state "present" | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | SEE ALSO | ||||||
|  | -------- | ||||||
|  | :strong:`cdist__xymon_server`\ (7) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | AUTHORS | ||||||
|  | ------- | ||||||
|  | Thomas Eckert <tom--@--it-eckert.de> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | COPYING | ||||||
|  | ------- | ||||||
|  | Copyright \(C) 2018-2019 Thomas Eckert. 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. | ||||||
							
								
								
									
										42
									
								
								cdist/conf/type/__xymon_apache/manifest
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										42
									
								
								cdist/conf/type/__xymon_apache/manifest
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,42 @@ | ||||||
|  | #!/bin/sh -e | ||||||
|  | # | ||||||
|  | # 2018-2019 Thomas Eckert (tom at it-eckert.de) | ||||||
|  | # | ||||||
|  | # 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=$(cat "$__object/parameter/state") | ||||||
|  | 
 | ||||||
|  | os=$(cat "$__global/explorer/os") | ||||||
|  | case "$os" in | ||||||
|  | 	debian|ubuntu) | ||||||
|  | 		: | ||||||
|  | 	;; | ||||||
|  | 	*) | ||||||
|  | 		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 | ||||||
|  | 
 | ||||||
|  | __package apache2 --state "$state" | ||||||
|  | 
 | ||||||
|  | ## edit xymon.conf IP-ranges | ||||||
|  | if [ -f "$__object/parameter/ipacl" ]; then | ||||||
|  | 	require="__package/xymon" __line /etc/apache2/conf-available/xymon.conf \ | ||||||
|  | 		--line "        Require ip $(cat "$__object/parameter/ipacl")" \ | ||||||
|  | 		--after "^[[:space:]]*Require local" \ | ||||||
|  | 		--state "present" | ||||||
|  | fi | ||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__xymon_apache/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__xymon_apache/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | present | ||||||
							
								
								
									
										2
									
								
								cdist/conf/type/__xymon_apache/parameter/optional
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								cdist/conf/type/__xymon_apache/parameter/optional
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,2 @@ | ||||||
|  | state | ||||||
|  | ipacl | ||||||
							
								
								
									
										0
									
								
								cdist/conf/type/__xymon_apache/singleton
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								cdist/conf/type/__xymon_apache/singleton
									
										
									
									
									
										Normal file
									
								
							
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue