forked from ungleich-public/cdist
		
	add new types to manage consul and friends
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
This commit is contained in:
		
					parent
					
						
							
								4f7ae8425d
							
						
					
				
			
			
				commit
				
					
						2c7ab566e1
					
				
			
		
					 83 changed files with 2308 additions and 0 deletions
				
			
		
							
								
								
									
										71
									
								
								cdist/conf/type/__consul/man.text
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								cdist/conf/type/__consul/man.text
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,71 @@
 | 
				
			||||||
 | 
					cdist-type__consul(7)
 | 
				
			||||||
 | 
					=====================
 | 
				
			||||||
 | 
					Steven Armstrong <steven-cdist--@--armstrong.cc>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NAME
 | 
				
			||||||
 | 
					----
 | 
				
			||||||
 | 
					cdist-type__consul - install consul
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DESCRIPTION
 | 
				
			||||||
 | 
					-----------
 | 
				
			||||||
 | 
					Quick and dirty installation of the consul binary.
 | 
				
			||||||
 | 
					Note that the consul binary is downloaded on the server and then deployed using
 | 
				
			||||||
 | 
					the __file type.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Future ideas:
 | 
				
			||||||
 | 
					- get latest version info from https://checkpoint-api.hashicorp.com/v1/check/consul
 | 
				
			||||||
 | 
					   - then download from
 | 
				
			||||||
 | 
					      https://dl.bintray.com/mitchellh/consul/${current_version}_${os}_${arch}.zip
 | 
				
			||||||
 | 
					- install from given path to binary
 | 
				
			||||||
 | 
					- download from given url
 | 
				
			||||||
 | 
					- install from packet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OPTIONAL PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					install-from::
 | 
				
			||||||
 | 
					   uri from where to download consul. This can be anything that curl understands.
 | 
				
			||||||
 | 
					   If install-uri ends with .zip the downloaded file will be unziped and the
 | 
				
			||||||
 | 
					   contained file deployed as the consul binary. If install-uri does not end in .zip
 | 
				
			||||||
 | 
					   it is assumed to be the consul binary and will be deployed as is.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					install-to::
 | 
				
			||||||
 | 
					   where to install the binary. Defaults to /usr/local/bin/consul
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					state::
 | 
				
			||||||
 | 
					   either 'present' or 'absent'. Defaults to 'present'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXAMPLES
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					# just install using defaults
 | 
				
			||||||
 | 
					__consul
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# download on the machine running cdist, then unzip, then upload to the target host
 | 
				
			||||||
 | 
					__consul \
 | 
				
			||||||
 | 
					   --install-from https://dl.bintray.com/mitchellh/consul/0.4.1_linux_amd64.zip
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# take binary from local folder on the machine running cdist
 | 
				
			||||||
 | 
					__consul \
 | 
				
			||||||
 | 
					   --install-from file:///cluster/adm/software/consul/bin/consul
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# install the consul binary to a specific location
 | 
				
			||||||
 | 
					__consul \
 | 
				
			||||||
 | 
					   --install-to /somewhere/special/consul
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SEE ALSO
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					- cdist-type(7)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPYING
 | 
				
			||||||
 | 
					-------
 | 
				
			||||||
 | 
					Copyright \(C) 2015 Steven Armstrong. Free use of this software is
 | 
				
			||||||
 | 
					granted under the terms of the GNU General Public License version 3 (GPLv3).
 | 
				
			||||||
							
								
								
									
										65
									
								
								cdist/conf/type/__consul/manifest
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										65
									
								
								cdist/conf/type/__consul/manifest
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,65 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 2015 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")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					case "$os" in
 | 
				
			||||||
 | 
					   centos|redhat|ubuntu|debian|archlinux|gentoo)
 | 
				
			||||||
 | 
					      # any linux should work
 | 
				
			||||||
 | 
					      :
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					   *)
 | 
				
			||||||
 | 
					      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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					state="$(cat "$__object/parameter/state")"
 | 
				
			||||||
 | 
					install_from="$(cat "$__object/parameter/install-from")"
 | 
				
			||||||
 | 
					install_to="$(cat "$__object/parameter/install-to")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "$state" = "absent" ]; then
 | 
				
			||||||
 | 
					   __file "$install_to" \
 | 
				
			||||||
 | 
					      --state absent
 | 
				
			||||||
 | 
					   exit 0
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					case "$install_from" in
 | 
				
			||||||
 | 
					   /*|file://*)
 | 
				
			||||||
 | 
					      source="${install_from#*file://}"
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					   *.zip)
 | 
				
			||||||
 | 
					      mkdir "$__object/files"
 | 
				
			||||||
 | 
					      source="$__object/files/consul"
 | 
				
			||||||
 | 
					      # FIXME: need some persistent place to cache downloaded files
 | 
				
			||||||
 | 
					      curl -s "$install_from" | unzip -p > "$source"
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					   *)
 | 
				
			||||||
 | 
					      echo "Do not know how to install from: $install_from" >&2
 | 
				
			||||||
 | 
					      exit 1
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__file "$install_to" \
 | 
				
			||||||
 | 
					   --owner root --group root --mode 755 \
 | 
				
			||||||
 | 
					   --source "$source"
 | 
				
			||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__consul/parameter/default/install-from
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__consul/parameter/default/install-from
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					https://dl.bintray.com/mitchellh/consul/0.4.1_linux_amd64.zip
 | 
				
			||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__consul/parameter/default/install-to
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__consul/parameter/default/install-to
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					/usr/local/bin/consul
 | 
				
			||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__consul/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__consul/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					present
 | 
				
			||||||
							
								
								
									
										3
									
								
								cdist/conf/type/__consul/parameter/optional
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								cdist/conf/type/__consul/parameter/optional
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,3 @@
 | 
				
			||||||
 | 
					install-from
 | 
				
			||||||
 | 
					install-to
 | 
				
			||||||
 | 
					state
 | 
				
			||||||
							
								
								
									
										0
									
								
								cdist/conf/type/__consul/singleton
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								cdist/conf/type/__consul/singleton
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										17
									
								
								cdist/conf/type/__consul_agent/files/consul.systemd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								cdist/conf/type/__consul_agent/files/consul.systemd
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					[Unit]
 | 
				
			||||||
 | 
					Description=Consul Agent
 | 
				
			||||||
 | 
					Wants=basic.target
 | 
				
			||||||
 | 
					After=basic.target network.target
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Service]
 | 
				
			||||||
 | 
					User=consul
 | 
				
			||||||
 | 
					Group=consul
 | 
				
			||||||
 | 
					Environment="GOMAXPROCS=2"
 | 
				
			||||||
 | 
					ExecStart=/usr/local/bin/consul agent -config-dir /etc/consul/conf.d
 | 
				
			||||||
 | 
					ExecReload=/bin/kill -HUP $MAINPID
 | 
				
			||||||
 | 
					KillMode=process
 | 
				
			||||||
 | 
					Restart=on-failure
 | 
				
			||||||
 | 
					RestartSec=42s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Install]
 | 
				
			||||||
 | 
					WantedBy=multi-user.target
 | 
				
			||||||
							
								
								
									
										93
									
								
								cdist/conf/type/__consul_agent/files/consul.sysv
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								cdist/conf/type/__consul_agent/files/consul.sysv
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,93 @@
 | 
				
			||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# /etc/rc.d/init.d/consul
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Daemonize the consul agent.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# chkconfig: 2345 95 95
 | 
				
			||||||
 | 
					# description: Service discovery and configuration made easy. \
 | 
				
			||||||
 | 
					# Distributed, highly available, and datacenter-aware.
 | 
				
			||||||
 | 
					# processname: consul
 | 
				
			||||||
 | 
					# pidfile: /var/run/consul/pidfile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Source function library.
 | 
				
			||||||
 | 
					. /etc/init.d/functions
 | 
				
			||||||
 | 
					NAME=consul
 | 
				
			||||||
 | 
					CONSUL=/usr/local/bin/consul
 | 
				
			||||||
 | 
					CONFIG=/etc/$NAME/conf.d
 | 
				
			||||||
 | 
					PID_FILE=/var/run/$NAME/pidfile
 | 
				
			||||||
 | 
					LOG_FILE=/var/log/$NAME
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ -e /etc/sysconfig/$NAME ] && . /etc/sysconfig/$NAME
 | 
				
			||||||
 | 
					export GOMAXPROCS=${GOMAXPROCS:-2}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkdir -p /var/run/$NAME
 | 
				
			||||||
 | 
					chown consul /var/run/$NAME
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start() {
 | 
				
			||||||
 | 
					   echo -n "Starting $NAME: "
 | 
				
			||||||
 | 
					   daemon --user=consul \
 | 
				
			||||||
 | 
					      --pidfile="$PID_FILE" \
 | 
				
			||||||
 | 
					      "$CONSUL" agent -pid-file="$PID_FILE" -config-dir "$CONFIG" >> "$LOG_FILE" &
 | 
				
			||||||
 | 
					   retcode=$?
 | 
				
			||||||
 | 
					   touch /var/lock/subsys/$NAME
 | 
				
			||||||
 | 
					   return $retcode
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					stop() {
 | 
				
			||||||
 | 
					   echo -n "Shutting down $NAME: "
 | 
				
			||||||
 | 
					   "$CONSUL" leave
 | 
				
			||||||
 | 
					   retcode=$?
 | 
				
			||||||
 | 
					   rm -f /var/lock/subsys/$NAME
 | 
				
			||||||
 | 
					   return $retcode
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					case "$1" in
 | 
				
			||||||
 | 
					   start)
 | 
				
			||||||
 | 
					      if $(status -p "$PID_FILE" $NAME >/dev/null); then
 | 
				
			||||||
 | 
					         echo "$NAME already running"
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					         start
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					   stop)
 | 
				
			||||||
 | 
					      if $(status -p "$PID_FILE" $NAME >/dev/null); then
 | 
				
			||||||
 | 
					         stop
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					         echo "$NAME not running"
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					   info)
 | 
				
			||||||
 | 
					      "$CONSUL" info
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					   status)
 | 
				
			||||||
 | 
					      status -p "$PID_FILE" $NAME
 | 
				
			||||||
 | 
					      exit $?
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					   restart)
 | 
				
			||||||
 | 
					      if $(status -p "$PID_FILE" $NAME >/dev/null); then
 | 
				
			||||||
 | 
					         stop
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					      start
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					   reload)
 | 
				
			||||||
 | 
					      if $(status -p "$PID_FILE" $NAME >/dev/null); then
 | 
				
			||||||
 | 
					         kill -HUP `cat $PID_FILE`
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					         echo "$NAME not running"
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					   condrestart)
 | 
				
			||||||
 | 
					      if [ -f /var/lock/subsys/$NAME ]; then
 | 
				
			||||||
 | 
					         if $(status -p "$PID_FILE" $NAME >/dev/null); then
 | 
				
			||||||
 | 
					            stop
 | 
				
			||||||
 | 
					         fi
 | 
				
			||||||
 | 
					         start
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					   *)
 | 
				
			||||||
 | 
					      echo "Usage: $NAME {start|stop|status|reload|restart}"
 | 
				
			||||||
 | 
					      exit 1
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
 | 
					exit $?
 | 
				
			||||||
							
								
								
									
										13
									
								
								cdist/conf/type/__consul_agent/files/consul.upstart
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								cdist/conf/type/__consul_agent/files/consul.upstart
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					description "Consul Agent"
 | 
				
			||||||
 | 
					start on (local-filesystems and net-device-up IFACE!=lo)
 | 
				
			||||||
 | 
					stop on runlevel [06]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					setuid consul
 | 
				
			||||||
 | 
					setgid consul
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					respawn
 | 
				
			||||||
 | 
					respawn limit 10 10
 | 
				
			||||||
 | 
					kill timeout 10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exec /usr/local/bin/consul agent -config-dir /etc/consul/conf.d
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										31
									
								
								cdist/conf/type/__consul_agent/gencode-remote
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										31
									
								
								cdist/conf/type/__consul_agent/gencode-remote
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,31 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 2015 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/>.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					service="consul"
 | 
				
			||||||
 | 
					state="$(cat "$__object/parameter/state")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					case "$state" in
 | 
				
			||||||
 | 
					   present)
 | 
				
			||||||
 | 
					      :
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					   absent)
 | 
				
			||||||
 | 
					      echo "service $service stop || true"
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
							
								
								
									
										134
									
								
								cdist/conf/type/__consul_agent/man.text
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										134
									
								
								cdist/conf/type/__consul_agent/man.text
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,134 @@
 | 
				
			||||||
 | 
					cdist-type__consul_agent(7)
 | 
				
			||||||
 | 
					===========================
 | 
				
			||||||
 | 
					Steven Armstrong <steven-cdist--@--armstrong.cc>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NAME
 | 
				
			||||||
 | 
					----
 | 
				
			||||||
 | 
					cdist-type__consul_agent - manage the consul agent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DESCRIPTION
 | 
				
			||||||
 | 
					-----------
 | 
				
			||||||
 | 
					Configure and manage the consul agent.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REQUIRED PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					None.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OPTIONAL PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					bind-addr::
 | 
				
			||||||
 | 
					   sets the bind address for cluster communication
 | 
				
			||||||
 | 
					bootstrap-expect::
 | 
				
			||||||
 | 
					   sets server to expect bootstrap mode
 | 
				
			||||||
 | 
					ca-file-source::
 | 
				
			||||||
 | 
					   path to a PEM encoded certificate authority file which will be uploaded and
 | 
				
			||||||
 | 
					   configure using the ca_file config option.
 | 
				
			||||||
 | 
					cert-file-source::
 | 
				
			||||||
 | 
					   path to a PEM encoded certificate file which will be uploaded and
 | 
				
			||||||
 | 
					   configure using the cert_file config option.
 | 
				
			||||||
 | 
					client-addr::
 | 
				
			||||||
 | 
					   sets the address to bind for client access
 | 
				
			||||||
 | 
					datacenter::
 | 
				
			||||||
 | 
					   datacenter of the agent
 | 
				
			||||||
 | 
					encrypt::
 | 
				
			||||||
 | 
					   provides the gossip encryption key
 | 
				
			||||||
 | 
					group::
 | 
				
			||||||
 | 
					   the primary group for the agent
 | 
				
			||||||
 | 
					json-config::
 | 
				
			||||||
 | 
					   path to a partial json config file without leading { and trailing }.
 | 
				
			||||||
 | 
					   If json-config is '-' (dash), take what was written to stdin as the file content.
 | 
				
			||||||
 | 
					key-file-source::
 | 
				
			||||||
 | 
					   path to a PEM encoded private key file which will be uploaded and
 | 
				
			||||||
 | 
					   configure using the key_file config option.
 | 
				
			||||||
 | 
					node-name::
 | 
				
			||||||
 | 
					   name of this node. Must be unique in the cluster
 | 
				
			||||||
 | 
					retry-join::
 | 
				
			||||||
 | 
					   address to attempt joining every retry_interval until at least one join works.
 | 
				
			||||||
 | 
					   Can be specified multiple times.
 | 
				
			||||||
 | 
					user::
 | 
				
			||||||
 | 
					   the user to run the agent as
 | 
				
			||||||
 | 
					state::
 | 
				
			||||||
 | 
					   if the agent is 'present' or 'absent'. Defaults to 'present'.
 | 
				
			||||||
 | 
					   Currently state=absent is not working due to some dependency issues.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BOOLEAN PARAMETERS
 | 
				
			||||||
 | 
					------------------
 | 
				
			||||||
 | 
					disable-remote-exec::
 | 
				
			||||||
 | 
					   disables support for remote execution. When set to true, the agent will ignore any incoming remote exec requests.
 | 
				
			||||||
 | 
					disable-update-check::
 | 
				
			||||||
 | 
					   disables automatic checking for security bulletins and new version releases
 | 
				
			||||||
 | 
					leave-on-terminate::
 | 
				
			||||||
 | 
					   gracefully leave cluster on SIGTERM
 | 
				
			||||||
 | 
					rejoin-after-leave::
 | 
				
			||||||
 | 
					   rejoin the cluster using the previous state after leaving
 | 
				
			||||||
 | 
					server::
 | 
				
			||||||
 | 
					   used to control if an agent is in server or client mode
 | 
				
			||||||
 | 
					syslog::
 | 
				
			||||||
 | 
					   enables logging to syslog
 | 
				
			||||||
 | 
					verify-incoming::
 | 
				
			||||||
 | 
					   enforce the use of TLS and verify a client's authenticity on incomming connections
 | 
				
			||||||
 | 
					verify-outgoing::
 | 
				
			||||||
 | 
					   enforce the use of TLS and verify the peers authenticity on outgoing connections
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXAMPLES
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					# configure as server, bootstrap and rejoin
 | 
				
			||||||
 | 
					hostname="$(cat "$__global/explorer/hostname")"
 | 
				
			||||||
 | 
					__consul_agent \
 | 
				
			||||||
 | 
					   --datacenter dc1 \
 | 
				
			||||||
 | 
					   --node-name "${hostname%%.*}" \
 | 
				
			||||||
 | 
					   --disable-update-check \
 | 
				
			||||||
 | 
					   --server \
 | 
				
			||||||
 | 
					   --rejoin-after-leave \
 | 
				
			||||||
 | 
					   --bootstrap-expect 3 \
 | 
				
			||||||
 | 
					   --retry-join consul-01 \
 | 
				
			||||||
 | 
					   --retry-join consul-02 \
 | 
				
			||||||
 | 
					   --retry-join consul-03
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# configure as server, bootstrap and rejoin with ssl support
 | 
				
			||||||
 | 
					hostname="$(cat "$__global/explorer/hostname")"
 | 
				
			||||||
 | 
					__consul_agent \
 | 
				
			||||||
 | 
					   --datacenter dc1 \
 | 
				
			||||||
 | 
					   --node-name "${hostname%%.*}" \
 | 
				
			||||||
 | 
					   --disable-update-check \
 | 
				
			||||||
 | 
					   --server \
 | 
				
			||||||
 | 
					   --rejoin-after-leave \
 | 
				
			||||||
 | 
					   --bootstrap-expect 3 \
 | 
				
			||||||
 | 
					   --retry-join consul-01 \
 | 
				
			||||||
 | 
					   --retry-join consul-02 \
 | 
				
			||||||
 | 
					   --retry-join consul-03 \
 | 
				
			||||||
 | 
					   --ca-file-source /path/to/ca.pem \
 | 
				
			||||||
 | 
					   --cert-file-source /path/to/cert.pem \
 | 
				
			||||||
 | 
					   --key-file-source /path/to/key.pem \
 | 
				
			||||||
 | 
					   --verify-incoming \
 | 
				
			||||||
 | 
					   --verify-outgoing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# configure as client and try joining existing cluster
 | 
				
			||||||
 | 
					__consul_agent \
 | 
				
			||||||
 | 
					   --datacenter dc1 \
 | 
				
			||||||
 | 
					   --node-name "${hostname%%.*}" \
 | 
				
			||||||
 | 
					   --disable-update-check \
 | 
				
			||||||
 | 
					   --retry-join consul-01 \
 | 
				
			||||||
 | 
					   --retry-join consul-02 \
 | 
				
			||||||
 | 
					   --retry-join consul-03
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SEE ALSO
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					- cdist-type(7)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPYING
 | 
				
			||||||
 | 
					-------
 | 
				
			||||||
 | 
					Copyright \(C) 2015 Steven Armstrong. Free use of this software is
 | 
				
			||||||
 | 
					granted under the terms of the GNU General Public License version 3 (GPLv3).
 | 
				
			||||||
							
								
								
									
										175
									
								
								cdist/conf/type/__consul_agent/manifest
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										175
									
								
								cdist/conf/type/__consul_agent/manifest
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,175 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 2015 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")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					case "$os" in
 | 
				
			||||||
 | 
					   centos|redhat)
 | 
				
			||||||
 | 
					      # whitelist safeguard
 | 
				
			||||||
 | 
					      :
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					   *)
 | 
				
			||||||
 | 
					      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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					state="$(cat "$__object/parameter/state")"
 | 
				
			||||||
 | 
					user="$(cat "$__object/parameter/user")"
 | 
				
			||||||
 | 
					group="$(cat "$__object/parameter/group")"
 | 
				
			||||||
 | 
					data_dir="/var/lib/consul"
 | 
				
			||||||
 | 
					conf_dir="/etc/consul/conf.d"
 | 
				
			||||||
 | 
					conf_file="config.json"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# FIXME: there has got to be a better way to handle the dependencies in this case
 | 
				
			||||||
 | 
					case "$state" in
 | 
				
			||||||
 | 
					   present)
 | 
				
			||||||
 | 
					      __group "$group" --system --state "$state"
 | 
				
			||||||
 | 
					      require="__group/$group" \
 | 
				
			||||||
 | 
					         __user "$user" --system --gid "$group" \
 | 
				
			||||||
 | 
					            --home "$data_dir" --state "$state"
 | 
				
			||||||
 | 
					      export require="__user/consul"
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					   absent)
 | 
				
			||||||
 | 
					      echo "Sorry, state=absent currently not supported :-(" >&2
 | 
				
			||||||
 | 
					      exit 1
 | 
				
			||||||
 | 
					      require="$__object_name" \
 | 
				
			||||||
 | 
					         __user "$user" --system --gid "$group" --state "$state"
 | 
				
			||||||
 | 
					      require="__user/$user" \
 | 
				
			||||||
 | 
					         __group "$group" --system --state "$state"
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__directory /etc/consul \
 | 
				
			||||||
 | 
					   --owner root --group "$group" --mode 750 --state "$state"
 | 
				
			||||||
 | 
					require="__directory/etc/consul" \
 | 
				
			||||||
 | 
					   __directory "$conf_dir" \
 | 
				
			||||||
 | 
					      --owner root --group "$group" --mode 750 --state "$state"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ -f "$__object/parameter/ca-file-source" -o -f "$__object/parameter/cert-file-source" -o -f "$__object/parameter/key-file-source" ]; then
 | 
				
			||||||
 | 
					   # create directory for ssl certs
 | 
				
			||||||
 | 
					   require="__directory/etc/consul" \
 | 
				
			||||||
 | 
					      __directory /etc/consul/ssl \
 | 
				
			||||||
 | 
					         --owner root --group "$group" --mode 750 --state "$state"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__directory "$data_dir" \
 | 
				
			||||||
 | 
					   --owner "$user" --group "$group" --mode 770 --state "$state"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Generate json config file
 | 
				
			||||||
 | 
					(
 | 
				
			||||||
 | 
					echo "{"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# parameters we define ourself
 | 
				
			||||||
 | 
					printf '   "data_dir": "%s"\n' "$data_dir"
 | 
				
			||||||
 | 
					printf '   ,"config_dir": "%s"\n' "$conf_dir"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					for param in $(ls "$__object/parameter/"); do
 | 
				
			||||||
 | 
					   case "$param" in
 | 
				
			||||||
 | 
					      state|user|group|json-config) continue ;;
 | 
				
			||||||
 | 
					      ca-file-source|cert-file-source|key-file-source)
 | 
				
			||||||
 | 
					         source="$(cat "$__object/parameter/$param")"
 | 
				
			||||||
 | 
					         destination="/etc/consul/ssl/${source##*/}"
 | 
				
			||||||
 | 
					         require="__directory/etc/consul/ssl" \
 | 
				
			||||||
 | 
					            __file "$destination" \
 | 
				
			||||||
 | 
					               --owner root --group consul --mode 640 \
 | 
				
			||||||
 | 
					               --source "$source" \
 | 
				
			||||||
 | 
					               --state "$state"
 | 
				
			||||||
 | 
					         key="$(echo "${param%-*}" | tr '-' '_')"
 | 
				
			||||||
 | 
					         printf '   ,"%s": "%s"\n' "$key" "$destination"
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					      disable-remote-exec|disable-update-check|leave-on-terminate|rejoin-after-leave|server|syslog|verify-incoming|verify-outgoing)
 | 
				
			||||||
 | 
					         # handle boolean parameters
 | 
				
			||||||
 | 
					         key="$(echo "$param" | tr '-' '_')"
 | 
				
			||||||
 | 
					         printf '   ,"%s": true\n' "$key"
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					      retry-join)
 | 
				
			||||||
 | 
					         # join multiple parameters into json array
 | 
				
			||||||
 | 
					         retry_join="$(awk '{printf "\""$1"\","}' "$__object/parameter/retry-join")"
 | 
				
			||||||
 | 
					         # remove trailing ,
 | 
				
			||||||
 | 
					         printf '   ,"retry_join": [%s]\n' "${retry_join%*,}"
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					      bootstrap-expect)
 | 
				
			||||||
 | 
					         # integer key=value parameters
 | 
				
			||||||
 | 
					         key="$(echo "$param" | tr '-' '_')"
 | 
				
			||||||
 | 
					         printf '   ,"%s": %s\n' "$key" "$(cat "$__object/parameter/$param")"
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					      *)
 | 
				
			||||||
 | 
					         # string key=value parameters
 | 
				
			||||||
 | 
					         key="$(echo "$param" | tr '-' '_')"
 | 
				
			||||||
 | 
					         printf '   ,"%s": "%s"\n' "$key" "$(cat "$__object/parameter/$param")"
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					   esac
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					if [ -f "$__object/parameter/json-config" ]; then
 | 
				
			||||||
 | 
					   json_config="$(cat "$__object/parameter/json-config")"
 | 
				
			||||||
 | 
					   if [ "$json_config" = "-" ]; then
 | 
				
			||||||
 | 
					      json_config="$__object/stdin"
 | 
				
			||||||
 | 
					   fi
 | 
				
			||||||
 | 
					   printf ','
 | 
				
			||||||
 | 
					   # remove trailing ,
 | 
				
			||||||
 | 
					   json=$(cat "$json_config")
 | 
				
			||||||
 | 
					   echo "${json%*,}"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					echo "}"
 | 
				
			||||||
 | 
					) | \
 | 
				
			||||||
 | 
					require="__directory${conf_dir}" \
 | 
				
			||||||
 | 
					   __config_file "${conf_dir}/${conf_file}" \
 | 
				
			||||||
 | 
					      --owner root --group "$group" --mode 640 \
 | 
				
			||||||
 | 
					      --state "$state" \
 | 
				
			||||||
 | 
					      --onchange 'service consul status >/dev/null && service consul reload || true' \
 | 
				
			||||||
 | 
					      --source -
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Install init script to start on boot
 | 
				
			||||||
 | 
					case "$os" in
 | 
				
			||||||
 | 
					   centos|redhat)
 | 
				
			||||||
 | 
					      os_version="$(sed 's/[^0-9.]//g' "$__global/explorer/os_version")"
 | 
				
			||||||
 | 
					      major_version="${os_version%%.*}"
 | 
				
			||||||
 | 
					      case "$major_version" in
 | 
				
			||||||
 | 
					         7)
 | 
				
			||||||
 | 
					            __file /lib/systemd/system/consul.service \
 | 
				
			||||||
 | 
					               --owner root --group root --mode 0555 \
 | 
				
			||||||
 | 
					               --state "$state" \
 | 
				
			||||||
 | 
					               --source "$__type/files/consul.systemd"
 | 
				
			||||||
 | 
					            export require="__file/lib/systemd/system/consul.service"
 | 
				
			||||||
 | 
					         ;;
 | 
				
			||||||
 | 
					         *)
 | 
				
			||||||
 | 
					            __file /etc/init.d/consul \
 | 
				
			||||||
 | 
					               --owner root --group root --mode 0555 \
 | 
				
			||||||
 | 
					               --state "$state" \
 | 
				
			||||||
 | 
					               --source "$__type/files/consul.sysv"
 | 
				
			||||||
 | 
					            export require="__file/etc/init.d/consul"
 | 
				
			||||||
 | 
					         ;;
 | 
				
			||||||
 | 
					      esac
 | 
				
			||||||
 | 
					      __start_on_boot consul --state "$state"
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					   ubuntu)
 | 
				
			||||||
 | 
					      __file /etc/init/consul.conf \
 | 
				
			||||||
 | 
					         --owner root --group root --mode 0644 \
 | 
				
			||||||
 | 
					         --state "$state" \
 | 
				
			||||||
 | 
					         --source "$__type/files/consul.upstart"
 | 
				
			||||||
 | 
					      export require="__file/etc/init/consul.conf"
 | 
				
			||||||
 | 
					      __start_on_boot consul --state "$state"
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
							
								
								
									
										8
									
								
								cdist/conf/type/__consul_agent/parameter/boolean
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								cdist/conf/type/__consul_agent/parameter/boolean
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,8 @@
 | 
				
			||||||
 | 
					disable-remote-exec
 | 
				
			||||||
 | 
					disable-update-check
 | 
				
			||||||
 | 
					leave-on-terminate
 | 
				
			||||||
 | 
					rejoin-after-leave
 | 
				
			||||||
 | 
					server
 | 
				
			||||||
 | 
					syslog
 | 
				
			||||||
 | 
					verify-incoming
 | 
				
			||||||
 | 
					verify-outgoing
 | 
				
			||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__consul_agent/parameter/default/group
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__consul_agent/parameter/default/group
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					consul
 | 
				
			||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__consul_agent/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__consul_agent/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					present
 | 
				
			||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__consul_agent/parameter/default/user
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__consul_agent/parameter/default/user
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					consul
 | 
				
			||||||
							
								
								
									
										13
									
								
								cdist/conf/type/__consul_agent/parameter/optional
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								cdist/conf/type/__consul_agent/parameter/optional
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					bind-addr
 | 
				
			||||||
 | 
					bootstrap-expect
 | 
				
			||||||
 | 
					ca-file-source
 | 
				
			||||||
 | 
					cert-file-source
 | 
				
			||||||
 | 
					client-addr
 | 
				
			||||||
 | 
					datacenter
 | 
				
			||||||
 | 
					encrypt
 | 
				
			||||||
 | 
					group
 | 
				
			||||||
 | 
					json-config
 | 
				
			||||||
 | 
					key-file-source
 | 
				
			||||||
 | 
					node-name
 | 
				
			||||||
 | 
					user
 | 
				
			||||||
 | 
					state
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					retry-join
 | 
				
			||||||
							
								
								
									
										0
									
								
								cdist/conf/type/__consul_agent/singleton
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								cdist/conf/type/__consul_agent/singleton
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										68
									
								
								cdist/conf/type/__consul_check/man.text
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								cdist/conf/type/__consul_check/man.text
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,68 @@
 | 
				
			||||||
 | 
					cdist-type__consul_check(7)
 | 
				
			||||||
 | 
					=============================
 | 
				
			||||||
 | 
					Steven Armstrong <steven-cdist--@--armstrong.cc>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NAME
 | 
				
			||||||
 | 
					----
 | 
				
			||||||
 | 
					cdist-type__consul_check - manages consul checks
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DESCRIPTION
 | 
				
			||||||
 | 
					-----------
 | 
				
			||||||
 | 
					Generate and deploy check definitions for a consul agent.
 | 
				
			||||||
 | 
					See http://www.consul.io/docs/agent/checks.html for parameter documentation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Use either script toghether with interval, or use ttl.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REQUIRED PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					None.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OPTIONAL PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					interval::
 | 
				
			||||||
 | 
					   the interval in which the script given with --script should be run
 | 
				
			||||||
 | 
					script::
 | 
				
			||||||
 | 
					   the shell command to run every --interval
 | 
				
			||||||
 | 
					ttl::
 | 
				
			||||||
 | 
					   how long a check is considered healthy without being updated through the
 | 
				
			||||||
 | 
					   HTTP interfave
 | 
				
			||||||
 | 
					id::
 | 
				
			||||||
 | 
					   Defaults to --name
 | 
				
			||||||
 | 
					name::
 | 
				
			||||||
 | 
					   The name of this check. Defaults to __object_id
 | 
				
			||||||
 | 
					notes::
 | 
				
			||||||
 | 
					   human readable description
 | 
				
			||||||
 | 
					state::
 | 
				
			||||||
 | 
					   if this check is 'present' or 'absent'. Defaults to 'present'.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXAMPLES
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					__consul_check redis \
 | 
				
			||||||
 | 
					   --script /usr/local/bin/check_redis.py \
 | 
				
			||||||
 | 
					   --interval 10s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__consul_check some-object-id \
 | 
				
			||||||
 | 
					   --id web-app \
 | 
				
			||||||
 | 
					   --name "Web App Status" \
 | 
				
			||||||
 | 
					   --notes "Web app does a curl internally every 10 seconds" \
 | 
				
			||||||
 | 
					   --ttl 30s
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SEE ALSO
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					- cdist-type(7)
 | 
				
			||||||
 | 
					- cdist-type__consul_agent(7)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPYING
 | 
				
			||||||
 | 
					-------
 | 
				
			||||||
 | 
					Copyright \(C) 2015 Steven Armstrong. Free use of this software is
 | 
				
			||||||
 | 
					granted under the terms of the GNU General Public License version 3 (GPLv3).
 | 
				
			||||||
							
								
								
									
										64
									
								
								cdist/conf/type/__consul_check/manifest
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										64
									
								
								cdist/conf/type/__consul_check/manifest
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,64 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 2015 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/>.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					name="$(cat "$__object/parameter/name" 2>/dev/null || echo "$__object_id")"
 | 
				
			||||||
 | 
					conf_dir="/etc/consul/conf.d"
 | 
				
			||||||
 | 
					conf_file="check_${name}.json"
 | 
				
			||||||
 | 
					state="$(cat "$__object/parameter/state")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Sanity checks
 | 
				
			||||||
 | 
					if [ -f "$__object/parameter/script" -a -f "$__object/parameter/ttl" ]; then
 | 
				
			||||||
 | 
					   echo "Use either --script together with --interval OR --ttl, but not both" >&2
 | 
				
			||||||
 | 
					   exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					if [ -f "$__object/parameter/script" -a ! -f "$__object/parameter/interval" ]; then
 | 
				
			||||||
 | 
					   echo "When using --script you must also define --interval" >&2
 | 
				
			||||||
 | 
					   exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Generate json config file
 | 
				
			||||||
 | 
					(
 | 
				
			||||||
 | 
					echo "{"
 | 
				
			||||||
 | 
					printf '   "check": {\n'
 | 
				
			||||||
 | 
					printf '      "name": "%s"\n' "$name"
 | 
				
			||||||
 | 
					for param in $(ls "$__object/parameter/"); do
 | 
				
			||||||
 | 
					   case "$param" in
 | 
				
			||||||
 | 
					      state|name|interval) continue ;;
 | 
				
			||||||
 | 
					      script)
 | 
				
			||||||
 | 
					         printf '      ,"script": "%s"\n' "$(cat "$__object/parameter/script")"
 | 
				
			||||||
 | 
					         printf '      ,"interval": "%s"\n' "$(cat "$__object/parameter/interval")"
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					      *)
 | 
				
			||||||
 | 
					         key="$(echo "$param" | tr '-' '_')"
 | 
				
			||||||
 | 
					         printf '      ,"%s": "%s"\n' "$key" "$(cat "$__object/parameter/$param")"
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					   esac
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					# end check
 | 
				
			||||||
 | 
					echo "   }"
 | 
				
			||||||
 | 
					# end json file
 | 
				
			||||||
 | 
					echo "}"
 | 
				
			||||||
 | 
					) | \
 | 
				
			||||||
 | 
					require="__directory${conf_dir}" \
 | 
				
			||||||
 | 
					   __config_file "${conf_dir}/${conf_file}" \
 | 
				
			||||||
 | 
					      --owner root --group consul --mode 640 \
 | 
				
			||||||
 | 
					      --state "$state" \
 | 
				
			||||||
 | 
					      --onchange 'service consul status >/dev/null && service consul reload || true' \
 | 
				
			||||||
 | 
					      --source -
 | 
				
			||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__consul_check/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__consul_check/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					present
 | 
				
			||||||
							
								
								
									
										7
									
								
								cdist/conf/type/__consul_check/parameter/optional
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								cdist/conf/type/__consul_check/parameter/optional
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,7 @@
 | 
				
			||||||
 | 
					id
 | 
				
			||||||
 | 
					interval
 | 
				
			||||||
 | 
					name
 | 
				
			||||||
 | 
					notes
 | 
				
			||||||
 | 
					script
 | 
				
			||||||
 | 
					state
 | 
				
			||||||
 | 
					ttl
 | 
				
			||||||
							
								
								
									
										24
									
								
								cdist/conf/type/__consul_reload/gencode-remote
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										24
									
								
								cdist/conf/type/__consul_reload/gencode-remote
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,24 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 2015 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/>.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					service="consul"
 | 
				
			||||||
 | 
					if grep -q "^__file/etc/consul/conf.d/" "$__messages_in"; then
 | 
				
			||||||
 | 
					   echo "service $service status && service $service reload || true"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
							
								
								
									
										42
									
								
								cdist/conf/type/__consul_reload/man.text
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								cdist/conf/type/__consul_reload/man.text
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,42 @@
 | 
				
			||||||
 | 
					cdist-type__consul_reload(7)
 | 
				
			||||||
 | 
					============================
 | 
				
			||||||
 | 
					Steven Armstrong <steven-cdist--@--armstrong.cc>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NAME
 | 
				
			||||||
 | 
					----
 | 
				
			||||||
 | 
					cdist-type__consul_reload - reload consul
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DESCRIPTION
 | 
				
			||||||
 | 
					-----------
 | 
				
			||||||
 | 
					Reload consul after configuration changes.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REQUIRED PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					None.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OPTIONAL PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					None.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXAMPLES
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					__consul_reload
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SEE ALSO
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					- cdist-type(7)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPYING
 | 
				
			||||||
 | 
					-------
 | 
				
			||||||
 | 
					Copyright \(C) 2015 Steven Armstrong. Free use of this software is
 | 
				
			||||||
 | 
					granted under the terms of the GNU General Public License version 3 (GPLv3).
 | 
				
			||||||
							
								
								
									
										0
									
								
								cdist/conf/type/__consul_reload/singleton
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								cdist/conf/type/__consul_reload/singleton
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										71
									
								
								cdist/conf/type/__consul_service/man.text
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								cdist/conf/type/__consul_service/man.text
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,71 @@
 | 
				
			||||||
 | 
					cdist-type__consul_service(7)
 | 
				
			||||||
 | 
					=============================
 | 
				
			||||||
 | 
					Steven Armstrong <steven-cdist--@--armstrong.cc>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NAME
 | 
				
			||||||
 | 
					----
 | 
				
			||||||
 | 
					cdist-type__consul_service - manages consul services
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DESCRIPTION
 | 
				
			||||||
 | 
					-----------
 | 
				
			||||||
 | 
					Generate and deploy service definitions for a consul agent.
 | 
				
			||||||
 | 
					See http://www.consul.io/docs/agent/services.html for parameter documentation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Use either script together with interval, or use ttl.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REQUIRED PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					None.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OPTIONAL PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					check-interval::
 | 
				
			||||||
 | 
					   the interval in which the script given with --check-script should be run
 | 
				
			||||||
 | 
					check-script::
 | 
				
			||||||
 | 
					   the shell command to run every --check-interval
 | 
				
			||||||
 | 
					check-ttl::
 | 
				
			||||||
 | 
					   how long a service is considered healthy without being updated through the
 | 
				
			||||||
 | 
					   HTTP interfave
 | 
				
			||||||
 | 
					id::
 | 
				
			||||||
 | 
					   Defaults to --name
 | 
				
			||||||
 | 
					name::
 | 
				
			||||||
 | 
					   The name of this service. Defaults to __object_id
 | 
				
			||||||
 | 
					port::
 | 
				
			||||||
 | 
					   the port at which this service can be reached
 | 
				
			||||||
 | 
					state::
 | 
				
			||||||
 | 
					   if this service is 'present' or 'absent'. Defaults to 'present'.
 | 
				
			||||||
 | 
					tag::
 | 
				
			||||||
 | 
					   a tag to add to this service. Can be specified multiple times.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXAMPLES
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					__consul_service redis \
 | 
				
			||||||
 | 
					   --tag master \
 | 
				
			||||||
 | 
					   --tag production \
 | 
				
			||||||
 | 
					   --port 8000 \
 | 
				
			||||||
 | 
					   --check-script /usr/local/bin/check_redis.py \
 | 
				
			||||||
 | 
					   --check-interval 10s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__consul_service webapp \
 | 
				
			||||||
 | 
					   --port 80 \
 | 
				
			||||||
 | 
					   --check-ttl 10s
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SEE ALSO
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					- cdist-type(7)
 | 
				
			||||||
 | 
					- cdist-type__consul_agent(7)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPYING
 | 
				
			||||||
 | 
					-------
 | 
				
			||||||
 | 
					Copyright \(C) 2015 Steven Armstrong. Free use of this software is
 | 
				
			||||||
 | 
					granted under the terms of the GNU General Public License version 3 (GPLv3).
 | 
				
			||||||
							
								
								
									
										83
									
								
								cdist/conf/type/__consul_service/manifest
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										83
									
								
								cdist/conf/type/__consul_service/manifest
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,83 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 2015 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/>.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					name="$(cat "$__object/parameter/name" 2>/dev/null || echo "$__object_id")"
 | 
				
			||||||
 | 
					conf_dir="/etc/consul/conf.d"
 | 
				
			||||||
 | 
					conf_file="service_${name}.json"
 | 
				
			||||||
 | 
					state="$(cat "$__object/parameter/state")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Sanity checks
 | 
				
			||||||
 | 
					if [ -f "$__object/parameter/check-script" -a -f "$__object/parameter/check-ttl" ]; then
 | 
				
			||||||
 | 
					   echo "Use either --check-script together with --check-interval OR --check-ttl, but not both" >&2
 | 
				
			||||||
 | 
					   exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					if [ -f "$__object/parameter/check-script" -a ! -f "$__object/parameter/check-interval" ]; then
 | 
				
			||||||
 | 
					   echo "When using --check-script you must also define --check-interval" >&2
 | 
				
			||||||
 | 
					   exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Generate json config file
 | 
				
			||||||
 | 
					(
 | 
				
			||||||
 | 
					echo "{"
 | 
				
			||||||
 | 
					printf '   "service": {\n'
 | 
				
			||||||
 | 
					printf '      "name": "%s"\n' "$name"
 | 
				
			||||||
 | 
					for param in $(ls "$__object/parameter/"); do
 | 
				
			||||||
 | 
					   case "$param" in
 | 
				
			||||||
 | 
					      state|name|check-interval) continue ;;
 | 
				
			||||||
 | 
					      check-script)
 | 
				
			||||||
 | 
					         printf '     ,"check": {\n'
 | 
				
			||||||
 | 
					         printf '         "script": "%s"\n' "$(cat "$__object/parameter/check-script")"
 | 
				
			||||||
 | 
					         printf '         ,"interval": "%s"\n' "$(cat "$__object/parameter/check-interval")"
 | 
				
			||||||
 | 
					         printf '      }\n'
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					      check-ttl)
 | 
				
			||||||
 | 
					         printf '     ,"check": {\n'
 | 
				
			||||||
 | 
					         printf '         "ttl": "%s"\n' "$(cat "$__object/parameter/check-ttl")"
 | 
				
			||||||
 | 
					         printf '      }\n'
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					      tag)
 | 
				
			||||||
 | 
					         # create json array from newline delimited file
 | 
				
			||||||
 | 
					         tags="$(awk '{printf "\""$1"\","}' "$__object/parameter/tag")"
 | 
				
			||||||
 | 
					         # remove trailing ,
 | 
				
			||||||
 | 
					         printf '      ,"tags": [%s]\n' "${tags%*,}"
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					      port)
 | 
				
			||||||
 | 
					         # integer key=value parameters
 | 
				
			||||||
 | 
					         key="$(echo "$param" | tr '-' '_')"
 | 
				
			||||||
 | 
					         printf '      ,"%s": %s\n' "$key" "$(cat "$__object/parameter/$param")"
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					      *)
 | 
				
			||||||
 | 
					         # string key=value parameters
 | 
				
			||||||
 | 
					         key="$(echo "$param" | tr '-' '_')"
 | 
				
			||||||
 | 
					         printf '      ,"%s": "%s"\n' "$key" "$(cat "$__object/parameter/$param")"
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					   esac
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					# end service
 | 
				
			||||||
 | 
					echo "   }"
 | 
				
			||||||
 | 
					# end json file
 | 
				
			||||||
 | 
					echo "}"
 | 
				
			||||||
 | 
					) | \
 | 
				
			||||||
 | 
					require="__directory${conf_dir}" \
 | 
				
			||||||
 | 
					   __config_file "${conf_dir}/${conf_file}" \
 | 
				
			||||||
 | 
					      --owner root --group consul --mode 640 \
 | 
				
			||||||
 | 
					      --state "$state" \
 | 
				
			||||||
 | 
					      --onchange 'service consul status >/dev/null && service consul reload || true' \
 | 
				
			||||||
 | 
					      --source -
 | 
				
			||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__consul_service/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__consul_service/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					present
 | 
				
			||||||
							
								
								
									
										7
									
								
								cdist/conf/type/__consul_service/parameter/optional
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								cdist/conf/type/__consul_service/parameter/optional
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,7 @@
 | 
				
			||||||
 | 
					check-interval
 | 
				
			||||||
 | 
					check-script
 | 
				
			||||||
 | 
					check-ttl
 | 
				
			||||||
 | 
					id
 | 
				
			||||||
 | 
					name
 | 
				
			||||||
 | 
					port
 | 
				
			||||||
 | 
					state
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					tag
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,19 @@
 | 
				
			||||||
 | 
					[Unit]
 | 
				
			||||||
 | 
					Description=Consul-Template Daemon
 | 
				
			||||||
 | 
					Wants=basic.target
 | 
				
			||||||
 | 
					After=basic.target network.target
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Service]
 | 
				
			||||||
 | 
					User=root
 | 
				
			||||||
 | 
					Group=root
 | 
				
			||||||
 | 
					Environment="CONSUL_TEMPLATE_LOG=info"
 | 
				
			||||||
 | 
					Environment="GOMAXPROCS=2"
 | 
				
			||||||
 | 
					ExecStart=/usr/local/bin/consul-template -config /etc/consul-template/conf.d
 | 
				
			||||||
 | 
					ExecReload=/bin/kill -HUP $MAINPID
 | 
				
			||||||
 | 
					KillMode=process
 | 
				
			||||||
 | 
					Restart=on-failure
 | 
				
			||||||
 | 
					RestartSec=10s
 | 
				
			||||||
 | 
					LimitNOFILE=4096
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Install]
 | 
				
			||||||
 | 
					WantedBy=multi-user.target
 | 
				
			||||||
							
								
								
									
										89
									
								
								cdist/conf/type/__consul_template/files/consul-template.sysv
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								cdist/conf/type/__consul_template/files/consul-template.sysv
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,89 @@
 | 
				
			||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# /etc/rc.d/init.d/consul-template
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Daemonize the consul-template agent.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# chkconfig: 2345 95 95
 | 
				
			||||||
 | 
					# description: Generic template rendering and notifications with Consul
 | 
				
			||||||
 | 
					# processname: consul-template
 | 
				
			||||||
 | 
					# pidfile: /var/run/consul-template/pidfile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Source function library.
 | 
				
			||||||
 | 
					. /etc/init.d/functions
 | 
				
			||||||
 | 
					NAME=consul-template
 | 
				
			||||||
 | 
					CONSUL_TEMPLATE=/usr/local/bin/consul-template
 | 
				
			||||||
 | 
					CONFIG=/etc/$NAME/conf.d
 | 
				
			||||||
 | 
					PID_FILE=/var/run/$NAME/pidfile
 | 
				
			||||||
 | 
					LOG_FILE=/var/log/$NAME
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ -e /etc/sysconfig/$NAME ] && . /etc/sysconfig/$NAME
 | 
				
			||||||
 | 
					export CONSUL_TEMPLATE_LOG=${CONSUL_TEMPLATE_LOG:-info}
 | 
				
			||||||
 | 
					export GOMAXPROCS=${GOMAXPROCS:-2}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkdir -p /var/run/$NAME
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start() {
 | 
				
			||||||
 | 
					   echo -n "Starting $NAME: "
 | 
				
			||||||
 | 
					   daemon --pidfile="$PID_FILE" \
 | 
				
			||||||
 | 
					      "$CONSUL_TEMPLATE" -config "$CONFIG" >> "$LOG_FILE" 2>&1 &
 | 
				
			||||||
 | 
					   echo $! > "$PID_FILE"
 | 
				
			||||||
 | 
					   retcode=$?
 | 
				
			||||||
 | 
					   touch /var/lock/subsys/$NAME
 | 
				
			||||||
 | 
					   return $retcode
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					stop() {
 | 
				
			||||||
 | 
					   echo -n "Shutting down $NAME: "
 | 
				
			||||||
 | 
					   killproc -p $PID_FILE $CONSUL_TEMPLATE
 | 
				
			||||||
 | 
					   retcode=$?
 | 
				
			||||||
 | 
					   rm -f /var/lock/subsys/$NAME
 | 
				
			||||||
 | 
					   return $retcode
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					case "$1" in
 | 
				
			||||||
 | 
					   start)
 | 
				
			||||||
 | 
					      if $(status -p "$PID_FILE" $NAME >/dev/null); then
 | 
				
			||||||
 | 
					         echo "$NAME already running"
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					         start
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					   stop)
 | 
				
			||||||
 | 
					      if $(status -p "$PID_FILE" $NAME >/dev/null); then
 | 
				
			||||||
 | 
					         stop
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					         echo "$NAME not running"
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					   status)
 | 
				
			||||||
 | 
					      status -p "$PID_FILE" $NAME
 | 
				
			||||||
 | 
					      exit $?
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					   restart)
 | 
				
			||||||
 | 
					      if $(status -p "$PID_FILE" $NAME >/dev/null); then
 | 
				
			||||||
 | 
					         stop
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					      start
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					   reload)
 | 
				
			||||||
 | 
					      if $(status -p "$PID_FILE" $NAME >/dev/null); then
 | 
				
			||||||
 | 
					         kill -HUP `cat $PID_FILE`
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					         echo "$NAME not running"
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					   condrestart)
 | 
				
			||||||
 | 
					      if [ -f /var/lock/subsys/$NAME ]; then
 | 
				
			||||||
 | 
					         if $(status -p "$PID_FILE" $NAME >/dev/null); then
 | 
				
			||||||
 | 
					            stop
 | 
				
			||||||
 | 
					         fi
 | 
				
			||||||
 | 
					         start
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					   *)
 | 
				
			||||||
 | 
					      echo "Usage: $NAME {start|stop|status|reload|restart}"
 | 
				
			||||||
 | 
					      exit 1
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
 | 
					exit $?
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,12 @@
 | 
				
			||||||
 | 
					description "Consul-Template Daemon"
 | 
				
			||||||
 | 
					start on (local-filesystems and net-device-up IFACE!=lo)
 | 
				
			||||||
 | 
					stop on runlevel [06]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					env CONSUL_TEMPLATE_LOG=info
 | 
				
			||||||
 | 
					env GOMAXPROCS=${GOMAXPROCS}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exec /usr/local/bin/consul-template -config /etc/consul-template/conf.d >> /var/log/consul-template 2>&1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					respawn
 | 
				
			||||||
 | 
					respawn limit 10 10
 | 
				
			||||||
 | 
					kill timeout 10
 | 
				
			||||||
							
								
								
									
										72
									
								
								cdist/conf/type/__consul_template/man.text
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								cdist/conf/type/__consul_template/man.text
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,72 @@
 | 
				
			||||||
 | 
					cdist-type__consul_template(7)
 | 
				
			||||||
 | 
					==============================
 | 
				
			||||||
 | 
					Steven Armstrong <steven-cdist--@--armstrong.cc>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NAME
 | 
				
			||||||
 | 
					----
 | 
				
			||||||
 | 
					cdist-type__consul_template - manage the consul-template service
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DESCRIPTION
 | 
				
			||||||
 | 
					-----------
 | 
				
			||||||
 | 
					Installs consul-template, generates a global config file and creates directory
 | 
				
			||||||
 | 
					for per template config files.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REQUIRED PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					None.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OPTIONAL PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					auth::
 | 
				
			||||||
 | 
					   specify a username (and password) for basic authentication.
 | 
				
			||||||
 | 
					batch-size::
 | 
				
			||||||
 | 
					   the size of the batch when polling multiple dependencies.
 | 
				
			||||||
 | 
					consul::
 | 
				
			||||||
 | 
					   the location of the Consul instance to query (may be an IP address or FQDN) with port.
 | 
				
			||||||
 | 
					   Defaults to 'localhost:8500'.
 | 
				
			||||||
 | 
					max-stale::
 | 
				
			||||||
 | 
					   the maximum staleness of a query. If specified, Consul will distribute work among all
 | 
				
			||||||
 | 
					   servers instead of just the leader.
 | 
				
			||||||
 | 
					retry::
 | 
				
			||||||
 | 
					   the amount of time to wait if Consul returns an error when communicating
 | 
				
			||||||
 | 
					   with the API.
 | 
				
			||||||
 | 
					token::
 | 
				
			||||||
 | 
					   the Consul API token.
 | 
				
			||||||
 | 
					wait::
 | 
				
			||||||
 | 
					   the minimum(:maximum) to wait before rendering a new template to disk and
 | 
				
			||||||
 | 
					   triggering a command, separated by a colon (:). If the optional maximum
 | 
				
			||||||
 | 
					   value is omitted, it is assumed to be 4x the required minimum value.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BOOLEAN PARAMETERS
 | 
				
			||||||
 | 
					------------------
 | 
				
			||||||
 | 
					ssl::
 | 
				
			||||||
 | 
					   use HTTPS while talking to Consul. Requires the Consul server to be configured to serve secure connections.
 | 
				
			||||||
 | 
					ssl-no-verify::
 | 
				
			||||||
 | 
					   ignore certificate warnings. Only used if ssl is enabled.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXAMPLES
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					__consul_template \
 | 
				
			||||||
 | 
					   --consul consul.service.consul:8500 \
 | 
				
			||||||
 | 
					   --retry 30s
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SEE ALSO
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					- cdist-type(7)
 | 
				
			||||||
 | 
					- https://github.com/hashicorp/consul-template
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPYING
 | 
				
			||||||
 | 
					-------
 | 
				
			||||||
 | 
					Copyright \(C) 2015 Steven Armstrong. Free use of this software is
 | 
				
			||||||
 | 
					granted under the terms of the GNU General Public License version 3 (GPLv3).
 | 
				
			||||||
							
								
								
									
										121
									
								
								cdist/conf/type/__consul_template/manifest
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										121
									
								
								cdist/conf/type/__consul_template/manifest
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,121 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 2015 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")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					case "$os" in
 | 
				
			||||||
 | 
					   centos|redhat)
 | 
				
			||||||
 | 
					      # whitelist safeguard
 | 
				
			||||||
 | 
					      :
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					   *)
 | 
				
			||||||
 | 
					      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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					state="present"
 | 
				
			||||||
 | 
					conf_dir="/etc/consul-template/conf.d"
 | 
				
			||||||
 | 
					conf_file="config.hcl"
 | 
				
			||||||
 | 
					template_dir="/etc/consul-template/template"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__directory /etc/consul-template \
 | 
				
			||||||
 | 
					   --owner root --group root --mode 750
 | 
				
			||||||
 | 
					require="__directory/etc/consul-template" \
 | 
				
			||||||
 | 
					   __directory "$conf_dir" \
 | 
				
			||||||
 | 
					      --owner root --group root --mode 750
 | 
				
			||||||
 | 
					require="__directory/etc/consul-template" \
 | 
				
			||||||
 | 
					   __directory "$template_dir" \
 | 
				
			||||||
 | 
					      --owner root --group root --mode 750
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__staged_file /usr/local/bin/consul-template \
 | 
				
			||||||
 | 
					   --source https://github.com/hashicorp/consul-template/releases/download/v0.6.5/consul-template_0.6.5_linux_amd64.tar.gz \
 | 
				
			||||||
 | 
					   --cksum '1356006333 8496656 consul-template' \
 | 
				
			||||||
 | 
					   --fetch-command 'curl -s -L "%s"' \
 | 
				
			||||||
 | 
					   --prepare-command 'tar -xzf "%s"; cat consul-template_*/consul-template' \
 | 
				
			||||||
 | 
					   --state present \
 | 
				
			||||||
 | 
					   --group root \
 | 
				
			||||||
 | 
					   --owner root \
 | 
				
			||||||
 | 
					   --mode 755
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Generate hcl config file
 | 
				
			||||||
 | 
					(
 | 
				
			||||||
 | 
					for param in $(ls "$__object/parameter/"); do
 | 
				
			||||||
 | 
					   case "$param" in
 | 
				
			||||||
 | 
					      ssl|ssl-no-verify) # boolean
 | 
				
			||||||
 | 
					         key="$(echo "$param" | tr '-' '_')"
 | 
				
			||||||
 | 
					         printf '%s = true\n' "$key"
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					      auth|batch-size|consul|max-stale|retry|token|wait)
 | 
				
			||||||
 | 
					         key="$(echo "$param" | tr '-' '_')"
 | 
				
			||||||
 | 
					         printf '%s = "%s"\n' "$key" "$(cat "$__object/parameter/$param")"
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					      *)
 | 
				
			||||||
 | 
					         # ignore unknown parameters
 | 
				
			||||||
 | 
					         :
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					   esac
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					) | \
 | 
				
			||||||
 | 
					require="__directory${conf_dir}" \
 | 
				
			||||||
 | 
					   __config_file "${conf_dir}/${conf_file}" \
 | 
				
			||||||
 | 
					      --owner root --group root --mode 640 \
 | 
				
			||||||
 | 
					      --state "$state" \
 | 
				
			||||||
 | 
					      --onchange 'service consul-template status >/dev/null && service consul-template reload || true' \
 | 
				
			||||||
 | 
					      --source -
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Install init script to start on boot
 | 
				
			||||||
 | 
					service="consul-template"
 | 
				
			||||||
 | 
					case "$os" in
 | 
				
			||||||
 | 
					   centos|redhat)
 | 
				
			||||||
 | 
					      os_version="$(sed 's/[^0-9.]//g' "$__global/explorer/os_version")"
 | 
				
			||||||
 | 
					      major_version="${os_version%%.*}"
 | 
				
			||||||
 | 
					      case "$major_version" in
 | 
				
			||||||
 | 
					         7)
 | 
				
			||||||
 | 
					            __file "/lib/systemd/system/${service}.service" \
 | 
				
			||||||
 | 
					               --owner root --group root --mode 0555 \
 | 
				
			||||||
 | 
					               --state "$state" \
 | 
				
			||||||
 | 
					               --source "$__type/files/${service}.systemd"
 | 
				
			||||||
 | 
					            export require="__file/lib/systemd/system/${service}.service"
 | 
				
			||||||
 | 
					         ;;
 | 
				
			||||||
 | 
					         *)
 | 
				
			||||||
 | 
					            __file "/etc/init.d/${service}" \
 | 
				
			||||||
 | 
					               --owner root --group root --mode 0555 \
 | 
				
			||||||
 | 
					               --state "$state" \
 | 
				
			||||||
 | 
					               --source "$__type/files/${service}.sysv"
 | 
				
			||||||
 | 
					            export require="__file/etc/init.d/${service}"
 | 
				
			||||||
 | 
					         ;;
 | 
				
			||||||
 | 
					      esac
 | 
				
			||||||
 | 
					      __start_on_boot "$service" --state "$state"
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					   ubuntu)
 | 
				
			||||||
 | 
					      __file "/etc/init/${service}.conf" \
 | 
				
			||||||
 | 
					         --owner root --group root --mode 0644 \
 | 
				
			||||||
 | 
					         --state "$state" \
 | 
				
			||||||
 | 
					         --source "$__type/files/${service}.upstart"
 | 
				
			||||||
 | 
					      export require="__file/etc/init/${service}.conf"
 | 
				
			||||||
 | 
					      __start_on_boot "$service" --state "$state"
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
							
								
								
									
										2
									
								
								cdist/conf/type/__consul_template/parameter/boolean
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								cdist/conf/type/__consul_template/parameter/boolean
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,2 @@
 | 
				
			||||||
 | 
					ssl
 | 
				
			||||||
 | 
					ssl-no-verify
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					localhost:8500
 | 
				
			||||||
							
								
								
									
										7
									
								
								cdist/conf/type/__consul_template/parameter/optional
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								cdist/conf/type/__consul_template/parameter/optional
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,7 @@
 | 
				
			||||||
 | 
					auth
 | 
				
			||||||
 | 
					batch-size
 | 
				
			||||||
 | 
					consul
 | 
				
			||||||
 | 
					max-stale
 | 
				
			||||||
 | 
					retry
 | 
				
			||||||
 | 
					token
 | 
				
			||||||
 | 
					wait
 | 
				
			||||||
							
								
								
									
										0
									
								
								cdist/conf/type/__consul_template/singleton
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								cdist/conf/type/__consul_template/singleton
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										69
									
								
								cdist/conf/type/__consul_template_template/man.text
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								cdist/conf/type/__consul_template_template/man.text
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,69 @@
 | 
				
			||||||
 | 
					cdist-type__consul_template_template(7)
 | 
				
			||||||
 | 
					=======================================
 | 
				
			||||||
 | 
					Steven Armstrong <steven-cdist--@--armstrong.cc>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NAME
 | 
				
			||||||
 | 
					----
 | 
				
			||||||
 | 
					cdist-type__consul_template_template - manage consul-template templates
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DESCRIPTION
 | 
				
			||||||
 | 
					-----------
 | 
				
			||||||
 | 
					Generate and deploy template definitions for a consul-template.
 | 
				
			||||||
 | 
					See https://github.com/hashicorp/consul-template#examples for documentation.
 | 
				
			||||||
 | 
					Templates are written in the Go template format.
 | 
				
			||||||
 | 
					Either the --source or the --source-file parameter must be given.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REQUIRED PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					destination::
 | 
				
			||||||
 | 
					   the destination where the generated file should go.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OPTIONAL PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					command::
 | 
				
			||||||
 | 
					   an optional command to run after rendering the template to its destination.
 | 
				
			||||||
 | 
					source::
 | 
				
			||||||
 | 
					   path to the template source. Conflicts --source-file.
 | 
				
			||||||
 | 
					source-file::
 | 
				
			||||||
 | 
					   path to a local file which is uploaded using the __file type and configured
 | 
				
			||||||
 | 
					   as the source.
 | 
				
			||||||
 | 
					   If source is '-' (dash), take what was written to stdin as the file content.
 | 
				
			||||||
 | 
					   Conflicts --source.
 | 
				
			||||||
 | 
					state::
 | 
				
			||||||
 | 
					   if this template is 'present' or 'absent'. Defaults to 'present'.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXAMPLES
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					# configure template on the target
 | 
				
			||||||
 | 
					__consul_template_template nginx \
 | 
				
			||||||
 | 
					   --source /etc/my-consul-templates/nginx.ctmpl \
 | 
				
			||||||
 | 
					   --destination /etc/nginx/nginx.conf \
 | 
				
			||||||
 | 
					   --command 'service nginx restart'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# upload a local file to the target and configure it
 | 
				
			||||||
 | 
					__consul_template_template nginx \
 | 
				
			||||||
 | 
					   --source-file "$__manifest/files/nginx.ctmpl" \
 | 
				
			||||||
 | 
					   --destination /etc/nginx/nginx.conf \
 | 
				
			||||||
 | 
					   --command 'service nginx restart'
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SEE ALSO
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					- cdist-type(7)
 | 
				
			||||||
 | 
					- cdist-type__consul_template(7)
 | 
				
			||||||
 | 
					- cdist-type__consul_template_config(7)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPYING
 | 
				
			||||||
 | 
					-------
 | 
				
			||||||
 | 
					Copyright \(C) 2015 Steven Armstrong. Free use of this software is
 | 
				
			||||||
 | 
					granted under the terms of the GNU General Public License version 3 (GPLv3).
 | 
				
			||||||
							
								
								
									
										74
									
								
								cdist/conf/type/__consul_template_template/manifest
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										74
									
								
								cdist/conf/type/__consul_template_template/manifest
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,74 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 2015 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/>.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					name="$(cat "$__object/parameter/name" 2>/dev/null || echo "$__object_id")"
 | 
				
			||||||
 | 
					state="$(cat "$__object/parameter/state")"
 | 
				
			||||||
 | 
					conf_dir="/etc/consul-template/conf.d"
 | 
				
			||||||
 | 
					conf_file="template_${name}.hcl"
 | 
				
			||||||
 | 
					template_dir="/etc/consul-template/template"
 | 
				
			||||||
 | 
					require=""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Sanity checks
 | 
				
			||||||
 | 
					if [ -f "$__object/parameter/source" -a -f "$__object/parameter/source-file" ]; then
 | 
				
			||||||
 | 
					   echo "Use either --source OR --source-file, but not both." >&2
 | 
				
			||||||
 | 
					   exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					if [ ! -f "$__object/parameter/source" -a ! -f "$__object/parameter/source-file" ]; then
 | 
				
			||||||
 | 
					   echo "Either --source OR --source-file must be given." >&2
 | 
				
			||||||
 | 
					   exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Generate hcl config file
 | 
				
			||||||
 | 
					(
 | 
				
			||||||
 | 
					printf 'template {\n'
 | 
				
			||||||
 | 
					for param in $(ls "$__object/parameter/"); do
 | 
				
			||||||
 | 
					   case "$param" in
 | 
				
			||||||
 | 
					      source-file)
 | 
				
			||||||
 | 
					         source="$(cat "$__object/parameter/$param")"
 | 
				
			||||||
 | 
					         if [ "$source" = "-" ]; then
 | 
				
			||||||
 | 
					            source="$__object/stdin"
 | 
				
			||||||
 | 
					         fi
 | 
				
			||||||
 | 
					         destination="${template_dir}/${name}"
 | 
				
			||||||
 | 
					         require="__directory${template_dir}" \
 | 
				
			||||||
 | 
					            __file "$destination" \
 | 
				
			||||||
 | 
					               --owner root --group root --mode 640 \
 | 
				
			||||||
 | 
					               --source "$source" \
 | 
				
			||||||
 | 
					               --state "$state"
 | 
				
			||||||
 | 
					         export require="__file${destination}"
 | 
				
			||||||
 | 
					         printf '   source = "%s"\n' "$destination"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					      source|destination|command)
 | 
				
			||||||
 | 
					         printf '   %s = "%s"\n' "$param" "$(cat "$__object/parameter/$param")"
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					      *)
 | 
				
			||||||
 | 
					         # ignore unknown parameters
 | 
				
			||||||
 | 
					         :
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					   esac
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					printf '}\n'
 | 
				
			||||||
 | 
					) | \
 | 
				
			||||||
 | 
					require="$require __directory${conf_dir}" \
 | 
				
			||||||
 | 
					   __config_file "${conf_dir}/${conf_file}" \
 | 
				
			||||||
 | 
					      --owner root --group root --mode 640 \
 | 
				
			||||||
 | 
					      --state "$state" \
 | 
				
			||||||
 | 
					      --onchange 'service consul-template status >/dev/null && service consul-template reload || true' \
 | 
				
			||||||
 | 
					      --source -
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					present
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,4 @@
 | 
				
			||||||
 | 
					command
 | 
				
			||||||
 | 
					source
 | 
				
			||||||
 | 
					source-file
 | 
				
			||||||
 | 
					state
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					destination
 | 
				
			||||||
							
								
								
									
										64
									
								
								cdist/conf/type/__consul_watch_checks/man.text
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								cdist/conf/type/__consul_watch_checks/man.text
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,64 @@
 | 
				
			||||||
 | 
					cdist-type__consul_watch_checks(7)
 | 
				
			||||||
 | 
					==================================
 | 
				
			||||||
 | 
					Steven Armstrong <steven-cdist--@--armstrong.cc>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NAME
 | 
				
			||||||
 | 
					----
 | 
				
			||||||
 | 
					cdist-type__consul_watch_checks - manages consul checks watches
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DESCRIPTION
 | 
				
			||||||
 | 
					-----------
 | 
				
			||||||
 | 
					Generate and deploy watch definitions of type 'checks' for a consul agent.
 | 
				
			||||||
 | 
					See http://www.consul.io/docs/agent/watches.html for parameter documentation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REQUIRED PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					handler::
 | 
				
			||||||
 | 
					   the handler to invoke when the data view updates
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OPTIONAL PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					datacenter::
 | 
				
			||||||
 | 
					   can be provided to override the agent's default datacenter
 | 
				
			||||||
 | 
					filter-service::
 | 
				
			||||||
 | 
					   filter to a specific service. Conflicts with --filter-state.
 | 
				
			||||||
 | 
					filter-state::
 | 
				
			||||||
 | 
					   filter to a specific state. Conflicts with --filter-service.
 | 
				
			||||||
 | 
					state::
 | 
				
			||||||
 | 
					   if this watch is 'present' or 'absent'. Defaults to 'present'.
 | 
				
			||||||
 | 
					token::
 | 
				
			||||||
 | 
					   can be provided to override the agent's default ACL token
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXAMPLES
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					__consul_watch_checks some-id \
 | 
				
			||||||
 | 
					   --handler /usr/bin/my-handler.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__consul_watch_checks some-id \
 | 
				
			||||||
 | 
					   --filter-service consul \
 | 
				
			||||||
 | 
					   --handler /usr/bin/my-handler.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__consul_watch_checks some-id \
 | 
				
			||||||
 | 
					   --filter-state passing \
 | 
				
			||||||
 | 
					   --handler /usr/bin/my-handler.sh
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SEE ALSO
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					- cdist-type(7)
 | 
				
			||||||
 | 
					- cdist-type__consul_agent(7)
 | 
				
			||||||
 | 
					- http://www.consul.io/docs/agent/watches.html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPYING
 | 
				
			||||||
 | 
					-------
 | 
				
			||||||
 | 
					Copyright \(C) 2015 Steven Armstrong. Free use of this software is
 | 
				
			||||||
 | 
					granted under the terms of the GNU General Public License version 3 (GPLv3).
 | 
				
			||||||
							
								
								
									
										61
									
								
								cdist/conf/type/__consul_watch_checks/manifest
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										61
									
								
								cdist/conf/type/__consul_watch_checks/manifest
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,61 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 2015 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/>.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cdist_type="${__type##*/}"
 | 
				
			||||||
 | 
					watch_type="${cdist_type##*_}"
 | 
				
			||||||
 | 
					conf_dir="/etc/consul/conf.d"
 | 
				
			||||||
 | 
					conf_file="watch_${watch_type}_${__object_id}.json"
 | 
				
			||||||
 | 
					state="$(cat "$__object/parameter/state")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Sanity checks
 | 
				
			||||||
 | 
					if [ -f "$__object/parameter/filter-service" -a -f "$__object/parameter/filter-state" ]; then
 | 
				
			||||||
 | 
					   echo "Use either --filter-service or --filter-state but not both." >&2
 | 
				
			||||||
 | 
					   exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Generate json config file
 | 
				
			||||||
 | 
					(
 | 
				
			||||||
 | 
					echo "{"
 | 
				
			||||||
 | 
					printf '   "watches": [{\n'
 | 
				
			||||||
 | 
					printf '      "type": "%s"\n' "$watch_type"
 | 
				
			||||||
 | 
					for param in $(ls "$__object/parameter/"); do
 | 
				
			||||||
 | 
					   case "$param" in
 | 
				
			||||||
 | 
					      state) continue ;;
 | 
				
			||||||
 | 
					      filter-*)
 | 
				
			||||||
 | 
					         key="${param##*-}"
 | 
				
			||||||
 | 
					         printf '      ,"%s": "%s"\n' "$key" "$(cat "$__object/parameter/$param")"
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					      *)
 | 
				
			||||||
 | 
					         key="$(echo "$param" | tr '-' '_')"
 | 
				
			||||||
 | 
					         printf '      ,"%s": "%s"\n' "$key" "$(cat "$__object/parameter/$param")"
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					   esac
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					# end watches
 | 
				
			||||||
 | 
					echo "   }]"
 | 
				
			||||||
 | 
					# end json file
 | 
				
			||||||
 | 
					echo "}"
 | 
				
			||||||
 | 
					) | \
 | 
				
			||||||
 | 
					require="__directory${conf_dir}" \
 | 
				
			||||||
 | 
					   __config_file "${conf_dir}/${conf_file}" \
 | 
				
			||||||
 | 
					      --owner root --group consul --mode 640 \
 | 
				
			||||||
 | 
					      --state "$state" \
 | 
				
			||||||
 | 
					      --onchange 'service consul status >/dev/null && service consul reload || true' \
 | 
				
			||||||
 | 
					      --source -
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					present
 | 
				
			||||||
							
								
								
									
										5
									
								
								cdist/conf/type/__consul_watch_checks/parameter/optional
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								cdist/conf/type/__consul_watch_checks/parameter/optional
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,5 @@
 | 
				
			||||||
 | 
					datacenter
 | 
				
			||||||
 | 
					filter-service
 | 
				
			||||||
 | 
					filter-state
 | 
				
			||||||
 | 
					state
 | 
				
			||||||
 | 
					token
 | 
				
			||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__consul_watch_checks/parameter/required
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__consul_watch_checks/parameter/required
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					handler
 | 
				
			||||||
							
								
								
									
										58
									
								
								cdist/conf/type/__consul_watch_event/man.text
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								cdist/conf/type/__consul_watch_event/man.text
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,58 @@
 | 
				
			||||||
 | 
					cdist-type__consul_watch_event(7)
 | 
				
			||||||
 | 
					=================================
 | 
				
			||||||
 | 
					Steven Armstrong <steven-cdist--@--armstrong.cc>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NAME
 | 
				
			||||||
 | 
					----
 | 
				
			||||||
 | 
					cdist-type__consul_watch_event - manages consul event watches
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DESCRIPTION
 | 
				
			||||||
 | 
					-----------
 | 
				
			||||||
 | 
					Generate and deploy watch definitions of type 'event' for a consul agent.
 | 
				
			||||||
 | 
					See http://www.consul.io/docs/agent/watches.html for parameter documentation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REQUIRED PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					handler::
 | 
				
			||||||
 | 
					   the handler to invoke when the data view updates
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OPTIONAL PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					datacenter::
 | 
				
			||||||
 | 
					   can be provided to override the agent's default datacenter
 | 
				
			||||||
 | 
					name::
 | 
				
			||||||
 | 
					   restrict the watch to only events with the given name
 | 
				
			||||||
 | 
					state::
 | 
				
			||||||
 | 
					   if this watch is 'present' or 'absent'. Defaults to 'present'.
 | 
				
			||||||
 | 
					token::
 | 
				
			||||||
 | 
					   can be provided to override the agent's default ACL token
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXAMPLES
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					__consul_watch_event some-id \
 | 
				
			||||||
 | 
					   --handler /usr/bin/my-handler.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__consul_watch_event some-id \
 | 
				
			||||||
 | 
					   --name web-deploy \
 | 
				
			||||||
 | 
					   --handler /usr/bin/my-handler.sh
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SEE ALSO
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					- cdist-type(7)
 | 
				
			||||||
 | 
					- cdist-type__consul_agent(7)
 | 
				
			||||||
 | 
					- http://www.consul.io/docs/agent/watches.html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPYING
 | 
				
			||||||
 | 
					-------
 | 
				
			||||||
 | 
					Copyright \(C) 2015 Steven Armstrong. Free use of this software is
 | 
				
			||||||
 | 
					granted under the terms of the GNU General Public License version 3 (GPLv3).
 | 
				
			||||||
							
								
								
									
										51
									
								
								cdist/conf/type/__consul_watch_event/manifest
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										51
									
								
								cdist/conf/type/__consul_watch_event/manifest
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,51 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 2015 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/>.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cdist_type="${__type##*/}"
 | 
				
			||||||
 | 
					watch_type="${cdist_type##*_}"
 | 
				
			||||||
 | 
					conf_dir="/etc/consul/conf.d"
 | 
				
			||||||
 | 
					conf_file="watch_${watch_type}_${__object_id}.json"
 | 
				
			||||||
 | 
					state="$(cat "$__object/parameter/state")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Generate json config file
 | 
				
			||||||
 | 
					(
 | 
				
			||||||
 | 
					echo "{"
 | 
				
			||||||
 | 
					printf '   "watches": [{\n'
 | 
				
			||||||
 | 
					printf '      "type": "%s"\n' "$watch_type"
 | 
				
			||||||
 | 
					for param in $(ls "$__object/parameter/"); do
 | 
				
			||||||
 | 
					   case "$param" in
 | 
				
			||||||
 | 
					      state) continue ;;
 | 
				
			||||||
 | 
					      *)
 | 
				
			||||||
 | 
					         key="$(echo "$param" | tr '-' '_')"
 | 
				
			||||||
 | 
					         printf '      ,"%s": "%s"\n' "$key" "$(cat "$__object/parameter/$param")"
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					   esac
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					# end watches
 | 
				
			||||||
 | 
					echo "   }]"
 | 
				
			||||||
 | 
					# end json file
 | 
				
			||||||
 | 
					echo "}"
 | 
				
			||||||
 | 
					) | \
 | 
				
			||||||
 | 
					require="__directory${conf_dir}" \
 | 
				
			||||||
 | 
					   __config_file "${conf_dir}/${conf_file}" \
 | 
				
			||||||
 | 
					      --owner root --group consul --mode 640 \
 | 
				
			||||||
 | 
					      --state "$state" \
 | 
				
			||||||
 | 
					      --onchange 'service consul status >/dev/null && service consul reload || true' \
 | 
				
			||||||
 | 
					      --source -
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					present
 | 
				
			||||||
							
								
								
									
										4
									
								
								cdist/conf/type/__consul_watch_event/parameter/optional
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								cdist/conf/type/__consul_watch_event/parameter/optional
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,4 @@
 | 
				
			||||||
 | 
					datacenter
 | 
				
			||||||
 | 
					name
 | 
				
			||||||
 | 
					state
 | 
				
			||||||
 | 
					token
 | 
				
			||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__consul_watch_event/parameter/required
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__consul_watch_event/parameter/required
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					handler
 | 
				
			||||||
							
								
								
									
										55
									
								
								cdist/conf/type/__consul_watch_key/man.text
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								cdist/conf/type/__consul_watch_key/man.text
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,55 @@
 | 
				
			||||||
 | 
					cdist-type__consul_watch_key(7)
 | 
				
			||||||
 | 
					===============================
 | 
				
			||||||
 | 
					Steven Armstrong <steven-cdist--@--armstrong.cc>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NAME
 | 
				
			||||||
 | 
					----
 | 
				
			||||||
 | 
					cdist-type__consul_watch_key - manages consul key watches
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DESCRIPTION
 | 
				
			||||||
 | 
					-----------
 | 
				
			||||||
 | 
					Generate and deploy watch definitions of type 'key' for a consul agent.
 | 
				
			||||||
 | 
					See http://www.consul.io/docs/agent/watches.html for parameter documentation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REQUIRED PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					handler::
 | 
				
			||||||
 | 
					   the handler to invoke when the data view updates
 | 
				
			||||||
 | 
					key::
 | 
				
			||||||
 | 
					   the key to watch for changes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OPTIONAL PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					datacenter::
 | 
				
			||||||
 | 
					   can be provided to override the agent's default datacenter
 | 
				
			||||||
 | 
					state::
 | 
				
			||||||
 | 
					   if this watch is 'present' or 'absent'. Defaults to 'present'.
 | 
				
			||||||
 | 
					token::
 | 
				
			||||||
 | 
					   can be provided to override the agent's default ACL token
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXAMPLES
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					__consul_watch_key some-id \
 | 
				
			||||||
 | 
					   --key foo/bar/baz \
 | 
				
			||||||
 | 
					   --handler /usr/bin/my-key-handler.sh
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SEE ALSO
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					- cdist-type(7)
 | 
				
			||||||
 | 
					- cdist-type__consul_agent(7)
 | 
				
			||||||
 | 
					- http://www.consul.io/docs/agent/watches.html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPYING
 | 
				
			||||||
 | 
					-------
 | 
				
			||||||
 | 
					Copyright \(C) 2015 Steven Armstrong. Free use of this software is
 | 
				
			||||||
 | 
					granted under the terms of the GNU General Public License version 3 (GPLv3).
 | 
				
			||||||
							
								
								
									
										51
									
								
								cdist/conf/type/__consul_watch_key/manifest
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										51
									
								
								cdist/conf/type/__consul_watch_key/manifest
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,51 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 2015 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/>.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cdist_type="${__type##*/}"
 | 
				
			||||||
 | 
					watch_type="${cdist_type##*_}"
 | 
				
			||||||
 | 
					conf_dir="/etc/consul/conf.d"
 | 
				
			||||||
 | 
					conf_file="watch_${watch_type}_${__object_id}.json"
 | 
				
			||||||
 | 
					state="$(cat "$__object/parameter/state")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Generate json config file
 | 
				
			||||||
 | 
					(
 | 
				
			||||||
 | 
					echo "{"
 | 
				
			||||||
 | 
					printf '   "watches": [{\n'
 | 
				
			||||||
 | 
					printf '      "type": "%s"\n' "$watch_type"
 | 
				
			||||||
 | 
					for param in $(ls "$__object/parameter/"); do
 | 
				
			||||||
 | 
					   case "$param" in
 | 
				
			||||||
 | 
					      state) continue ;;
 | 
				
			||||||
 | 
					      *)
 | 
				
			||||||
 | 
					         key="$(echo "$param" | tr '-' '_')"
 | 
				
			||||||
 | 
					         printf '      ,"%s": "%s"\n' "$key" "$(cat "$__object/parameter/$param")"
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					   esac
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					# end watches
 | 
				
			||||||
 | 
					echo "   }]"
 | 
				
			||||||
 | 
					# end json file
 | 
				
			||||||
 | 
					echo "}"
 | 
				
			||||||
 | 
					) | \
 | 
				
			||||||
 | 
					require="__directory${conf_dir}" \
 | 
				
			||||||
 | 
					   __config_file "${conf_dir}/${conf_file}" \
 | 
				
			||||||
 | 
					      --owner root --group consul --mode 640 \
 | 
				
			||||||
 | 
					      --state "$state" \
 | 
				
			||||||
 | 
					      --onchange 'service consul status >/dev/null && service consul reload || true' \
 | 
				
			||||||
 | 
					      --source -
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					present
 | 
				
			||||||
							
								
								
									
										3
									
								
								cdist/conf/type/__consul_watch_key/parameter/optional
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								cdist/conf/type/__consul_watch_key/parameter/optional
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,3 @@
 | 
				
			||||||
 | 
					datacenter
 | 
				
			||||||
 | 
					state
 | 
				
			||||||
 | 
					token
 | 
				
			||||||
							
								
								
									
										2
									
								
								cdist/conf/type/__consul_watch_key/parameter/required
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								cdist/conf/type/__consul_watch_key/parameter/required
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,2 @@
 | 
				
			||||||
 | 
					handler
 | 
				
			||||||
 | 
					key
 | 
				
			||||||
							
								
								
									
										55
									
								
								cdist/conf/type/__consul_watch_keyprefix/man.text
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								cdist/conf/type/__consul_watch_keyprefix/man.text
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,55 @@
 | 
				
			||||||
 | 
					cdist-type__consul_watch_keyprefix(7)
 | 
				
			||||||
 | 
					=====================================
 | 
				
			||||||
 | 
					Steven Armstrong <steven-cdist--@--armstrong.cc>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NAME
 | 
				
			||||||
 | 
					----
 | 
				
			||||||
 | 
					cdist-type__consul_watch_keyprefix - manages consul keyprefix watches
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DESCRIPTION
 | 
				
			||||||
 | 
					-----------
 | 
				
			||||||
 | 
					Generate and deploy watch definitions of type 'keyprefix' for a consul agent.
 | 
				
			||||||
 | 
					See http://www.consul.io/docs/agent/watches.html for parameter documentation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REQUIRED PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					handler::
 | 
				
			||||||
 | 
					   the handler to invoke when the data view updates
 | 
				
			||||||
 | 
					prefix::
 | 
				
			||||||
 | 
					   the prefix of keys to watch for changes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OPTIONAL PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					datacenter::
 | 
				
			||||||
 | 
					   can be provided to override the agent's default datacenter
 | 
				
			||||||
 | 
					state::
 | 
				
			||||||
 | 
					   if this watch is 'present' or 'absent'. Defaults to 'present'.
 | 
				
			||||||
 | 
					token::
 | 
				
			||||||
 | 
					   can be provided to override the agent's default ACL token
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXAMPLES
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					__consul_watch_keyprefix some-id \
 | 
				
			||||||
 | 
					   --prefix foo/ \
 | 
				
			||||||
 | 
					   --handler /usr/bin/my-prefix-handler.sh
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SEE ALSO
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					- cdist-type(7)
 | 
				
			||||||
 | 
					- cdist-type__consul_agent(7)
 | 
				
			||||||
 | 
					- http://www.consul.io/docs/agent/watches.html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPYING
 | 
				
			||||||
 | 
					-------
 | 
				
			||||||
 | 
					Copyright \(C) 2015 Steven Armstrong. Free use of this software is
 | 
				
			||||||
 | 
					granted under the terms of the GNU General Public License version 3 (GPLv3).
 | 
				
			||||||
							
								
								
									
										51
									
								
								cdist/conf/type/__consul_watch_keyprefix/manifest
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										51
									
								
								cdist/conf/type/__consul_watch_keyprefix/manifest
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,51 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 2015 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/>.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cdist_type="${__type##*/}"
 | 
				
			||||||
 | 
					watch_type="${cdist_type##*_}"
 | 
				
			||||||
 | 
					conf_dir="/etc/consul/conf.d"
 | 
				
			||||||
 | 
					conf_file="watch_${watch_type}_${__object_id}.json"
 | 
				
			||||||
 | 
					state="$(cat "$__object/parameter/state")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Generate json config file
 | 
				
			||||||
 | 
					(
 | 
				
			||||||
 | 
					echo "{"
 | 
				
			||||||
 | 
					printf '   "watches": [{\n'
 | 
				
			||||||
 | 
					printf '      "type": "%s"\n' "$watch_type"
 | 
				
			||||||
 | 
					for param in $(ls "$__object/parameter/"); do
 | 
				
			||||||
 | 
					   case "$param" in
 | 
				
			||||||
 | 
					      state) continue ;;
 | 
				
			||||||
 | 
					      *)
 | 
				
			||||||
 | 
					         key="$(echo "$param" | tr '-' '_')"
 | 
				
			||||||
 | 
					         printf '      ,"%s": "%s"\n' "$key" "$(cat "$__object/parameter/$param")"
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					   esac
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					# end watches
 | 
				
			||||||
 | 
					echo "   }]"
 | 
				
			||||||
 | 
					# end json file
 | 
				
			||||||
 | 
					echo "}"
 | 
				
			||||||
 | 
					) | \
 | 
				
			||||||
 | 
					require="__directory${conf_dir}" \
 | 
				
			||||||
 | 
					   __config_file "${conf_dir}/${conf_file}" \
 | 
				
			||||||
 | 
					      --owner root --group consul --mode 640 \
 | 
				
			||||||
 | 
					      --state "$state" \
 | 
				
			||||||
 | 
					      --onchange 'service consul status >/dev/null && service consul reload || true' \
 | 
				
			||||||
 | 
					      --source -
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					present
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,3 @@
 | 
				
			||||||
 | 
					datacenter
 | 
				
			||||||
 | 
					state
 | 
				
			||||||
 | 
					token
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,2 @@
 | 
				
			||||||
 | 
					handler
 | 
				
			||||||
 | 
					keyprefix
 | 
				
			||||||
							
								
								
									
										52
									
								
								cdist/conf/type/__consul_watch_nodes/man.text
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								cdist/conf/type/__consul_watch_nodes/man.text
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,52 @@
 | 
				
			||||||
 | 
					cdist-type__consul_watch_nodes(7)
 | 
				
			||||||
 | 
					=================================
 | 
				
			||||||
 | 
					Steven Armstrong <steven-cdist--@--armstrong.cc>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NAME
 | 
				
			||||||
 | 
					----
 | 
				
			||||||
 | 
					cdist-type__consul_watch_nodes - manages consul nodes watches
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DESCRIPTION
 | 
				
			||||||
 | 
					-----------
 | 
				
			||||||
 | 
					Generate and deploy watch definitions of type 'nodes' for a consul agent.
 | 
				
			||||||
 | 
					See http://www.consul.io/docs/agent/watches.html for parameter documentation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REQUIRED PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					handler::
 | 
				
			||||||
 | 
					   the handler to invoke when the data view updates
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OPTIONAL PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					datacenter::
 | 
				
			||||||
 | 
					   can be provided to override the agent's default datacenter
 | 
				
			||||||
 | 
					state::
 | 
				
			||||||
 | 
					   if this watch is 'present' or 'absent'. Defaults to 'present'.
 | 
				
			||||||
 | 
					token::
 | 
				
			||||||
 | 
					   can be provided to override the agent's default ACL token
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXAMPLES
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					__consul_watch_nodes some-id \
 | 
				
			||||||
 | 
					   --handler /usr/bin/my-key-handler.sh
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SEE ALSO
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					- cdist-type(7)
 | 
				
			||||||
 | 
					- cdist-type__consul_agent(7)
 | 
				
			||||||
 | 
					- http://www.consul.io/docs/agent/watches.html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPYING
 | 
				
			||||||
 | 
					-------
 | 
				
			||||||
 | 
					Copyright \(C) 2015 Steven Armstrong. Free use of this software is
 | 
				
			||||||
 | 
					granted under the terms of the GNU General Public License version 3 (GPLv3).
 | 
				
			||||||
							
								
								
									
										51
									
								
								cdist/conf/type/__consul_watch_nodes/manifest
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										51
									
								
								cdist/conf/type/__consul_watch_nodes/manifest
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,51 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 2015 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/>.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cdist_type="${__type##*/}"
 | 
				
			||||||
 | 
					watch_type="${cdist_type##*_}"
 | 
				
			||||||
 | 
					conf_dir="/etc/consul/conf.d"
 | 
				
			||||||
 | 
					conf_file="watch_${watch_type}_${__object_id}.json"
 | 
				
			||||||
 | 
					state="$(cat "$__object/parameter/state")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Generate json config file
 | 
				
			||||||
 | 
					(
 | 
				
			||||||
 | 
					echo "{"
 | 
				
			||||||
 | 
					printf '   "watches": [{\n'
 | 
				
			||||||
 | 
					printf '      "type": "%s"\n' "$watch_type"
 | 
				
			||||||
 | 
					for param in $(ls "$__object/parameter/"); do
 | 
				
			||||||
 | 
					   case "$param" in
 | 
				
			||||||
 | 
					      state) continue ;;
 | 
				
			||||||
 | 
					      *)
 | 
				
			||||||
 | 
					         key="$(echo "$param" | tr '-' '_')"
 | 
				
			||||||
 | 
					         printf '      ,"%s": "%s"\n' "$key" "$(cat "$__object/parameter/$param")"
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					   esac
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					# end watches
 | 
				
			||||||
 | 
					echo "   }]"
 | 
				
			||||||
 | 
					# end json file
 | 
				
			||||||
 | 
					echo "}"
 | 
				
			||||||
 | 
					) | \
 | 
				
			||||||
 | 
					require="__directory${conf_dir}" \
 | 
				
			||||||
 | 
					   __config_file "${conf_dir}/${conf_file}" \
 | 
				
			||||||
 | 
					      --owner root --group consul --mode 640 \
 | 
				
			||||||
 | 
					      --state "$state" \
 | 
				
			||||||
 | 
					      --onchange 'service consul status >/dev/null && service consul reload || true' \
 | 
				
			||||||
 | 
					      --source -
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					present
 | 
				
			||||||
							
								
								
									
										3
									
								
								cdist/conf/type/__consul_watch_nodes/parameter/optional
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								cdist/conf/type/__consul_watch_nodes/parameter/optional
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,3 @@
 | 
				
			||||||
 | 
					datacenter
 | 
				
			||||||
 | 
					state
 | 
				
			||||||
 | 
					token
 | 
				
			||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__consul_watch_nodes/parameter/required
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__consul_watch_nodes/parameter/required
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					handler
 | 
				
			||||||
							
								
								
									
										74
									
								
								cdist/conf/type/__consul_watch_service/man.text
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								cdist/conf/type/__consul_watch_service/man.text
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,74 @@
 | 
				
			||||||
 | 
					cdist-type__consul_watch_service(7)
 | 
				
			||||||
 | 
					===================================
 | 
				
			||||||
 | 
					Steven Armstrong <steven-cdist--@--armstrong.cc>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NAME
 | 
				
			||||||
 | 
					----
 | 
				
			||||||
 | 
					cdist-type__consul_watch_service - manages consul service watches
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DESCRIPTION
 | 
				
			||||||
 | 
					-----------
 | 
				
			||||||
 | 
					Generate and deploy watch definitions of type 'service' for a consul agent.
 | 
				
			||||||
 | 
					See http://www.consul.io/docs/agent/watches.html for parameter documentation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REQUIRED PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					handler::
 | 
				
			||||||
 | 
					   the handler to invoke when the data view updates
 | 
				
			||||||
 | 
					service::
 | 
				
			||||||
 | 
					   the service to watch for changes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OPTIONAL PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					datacenter::
 | 
				
			||||||
 | 
					   can be provided to override the agent's default datacenter
 | 
				
			||||||
 | 
					state::
 | 
				
			||||||
 | 
					   if this watch is 'present' or 'absent'. Defaults to 'present'.
 | 
				
			||||||
 | 
					token::
 | 
				
			||||||
 | 
					   can be provided to override the agent's default ACL token
 | 
				
			||||||
 | 
					tag::
 | 
				
			||||||
 | 
					   filter by tag
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BOOLEAN PARAMETERS
 | 
				
			||||||
 | 
					------------------
 | 
				
			||||||
 | 
					passingonly::
 | 
				
			||||||
 | 
					   specifies if only hosts passing all checks are displayed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXAMPLES
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					__consul_watch_service some-id \
 | 
				
			||||||
 | 
					   --service consul \
 | 
				
			||||||
 | 
					   --handler /usr/bin/my-handler.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__consul_watch_service some-id \
 | 
				
			||||||
 | 
					   --service redis \
 | 
				
			||||||
 | 
					   --tag production \
 | 
				
			||||||
 | 
					   --handler /usr/bin/my-handler.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__consul_watch_service some-id \
 | 
				
			||||||
 | 
					   --service redis \
 | 
				
			||||||
 | 
					   --tag production \
 | 
				
			||||||
 | 
					   --passingonly \
 | 
				
			||||||
 | 
					   --handler /usr/bin/my-handler.sh
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SEE ALSO
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					- cdist-type(7)
 | 
				
			||||||
 | 
					- cdist-type__consul_agent(7)
 | 
				
			||||||
 | 
					- http://www.consul.io/docs/agent/watches.html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPYING
 | 
				
			||||||
 | 
					-------
 | 
				
			||||||
 | 
					Copyright \(C) 2015 Steven Armstrong. Free use of this software is
 | 
				
			||||||
 | 
					granted under the terms of the GNU General Public License version 3 (GPLv3).
 | 
				
			||||||
							
								
								
									
										54
									
								
								cdist/conf/type/__consul_watch_service/manifest
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										54
									
								
								cdist/conf/type/__consul_watch_service/manifest
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,54 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 2015 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/>.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cdist_type="${__type##*/}"
 | 
				
			||||||
 | 
					watch_type="${cdist_type##*_}"
 | 
				
			||||||
 | 
					conf_dir="/etc/consul/conf.d"
 | 
				
			||||||
 | 
					conf_file="watch_${watch_type}_${__object_id}.json"
 | 
				
			||||||
 | 
					state="$(cat "$__object/parameter/state")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Generate json config file
 | 
				
			||||||
 | 
					(
 | 
				
			||||||
 | 
					echo "{"
 | 
				
			||||||
 | 
					printf '   "watches": [{\n'
 | 
				
			||||||
 | 
					printf '      "type": "%s"\n' "$watch_type"
 | 
				
			||||||
 | 
					for param in $(ls "$__object/parameter/"); do
 | 
				
			||||||
 | 
					   case "$param" in
 | 
				
			||||||
 | 
					      state) continue ;;
 | 
				
			||||||
 | 
					      passingonly)
 | 
				
			||||||
 | 
					         printf '      ,"passingonly": true\n'
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					      *)
 | 
				
			||||||
 | 
					         key="$(echo "$param" | tr '-' '_')"
 | 
				
			||||||
 | 
					         printf '      ,"%s": "%s"\n' "$key" "$(cat "$__object/parameter/$param")"
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					   esac
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					# end watches
 | 
				
			||||||
 | 
					echo "   }]"
 | 
				
			||||||
 | 
					# end json file
 | 
				
			||||||
 | 
					echo "}"
 | 
				
			||||||
 | 
					) | \
 | 
				
			||||||
 | 
					require="__directory${conf_dir}" \
 | 
				
			||||||
 | 
					   __config_file "${conf_dir}/${conf_file}" \
 | 
				
			||||||
 | 
					      --owner root --group consul --mode 640 \
 | 
				
			||||||
 | 
					      --state "$state" \
 | 
				
			||||||
 | 
					      --onchange 'service consul status >/dev/null && service consul reload || true' \
 | 
				
			||||||
 | 
					      --source -
 | 
				
			||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__consul_watch_service/parameter/boolean
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__consul_watch_service/parameter/boolean
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					passingonly
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					present
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,4 @@
 | 
				
			||||||
 | 
					datacenter
 | 
				
			||||||
 | 
					state
 | 
				
			||||||
 | 
					tag
 | 
				
			||||||
 | 
					token
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,2 @@
 | 
				
			||||||
 | 
					handler
 | 
				
			||||||
 | 
					service
 | 
				
			||||||
							
								
								
									
										52
									
								
								cdist/conf/type/__consul_watch_services/man.text
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								cdist/conf/type/__consul_watch_services/man.text
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,52 @@
 | 
				
			||||||
 | 
					cdist-type__consul_watch_services(7)
 | 
				
			||||||
 | 
					====================================
 | 
				
			||||||
 | 
					Steven Armstrong <steven-cdist--@--armstrong.cc>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NAME
 | 
				
			||||||
 | 
					----
 | 
				
			||||||
 | 
					cdist-type__consul_watch_services - manages consul services watches
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DESCRIPTION
 | 
				
			||||||
 | 
					-----------
 | 
				
			||||||
 | 
					Generate and deploy watch definitions of type 'services' for a consul agent.
 | 
				
			||||||
 | 
					See http://www.consul.io/docs/agent/watches.html for parameter documentation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REQUIRED PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					handler::
 | 
				
			||||||
 | 
					   the handler to invoke when the data view updates
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OPTIONAL PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					datacenter::
 | 
				
			||||||
 | 
					   can be provided to override the agent's default datacenter
 | 
				
			||||||
 | 
					state::
 | 
				
			||||||
 | 
					   if this watch is 'present' or 'absent'. Defaults to 'present'.
 | 
				
			||||||
 | 
					token::
 | 
				
			||||||
 | 
					   can be provided to override the agent's default ACL token
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXAMPLES
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					__consul_watch_services some-id \
 | 
				
			||||||
 | 
					   --handler /usr/bin/my-key-handler.sh
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SEE ALSO
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					- cdist-type(7)
 | 
				
			||||||
 | 
					- cdist-type__consul_agent(7)
 | 
				
			||||||
 | 
					- http://www.consul.io/docs/agent/watches.html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPYING
 | 
				
			||||||
 | 
					-------
 | 
				
			||||||
 | 
					Copyright \(C) 2015 Steven Armstrong. Free use of this software is
 | 
				
			||||||
 | 
					granted under the terms of the GNU General Public License version 3 (GPLv3).
 | 
				
			||||||
							
								
								
									
										51
									
								
								cdist/conf/type/__consul_watch_services/manifest
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										51
									
								
								cdist/conf/type/__consul_watch_services/manifest
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,51 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 2015 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/>.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cdist_type="${__type##*/}"
 | 
				
			||||||
 | 
					watch_type="${cdist_type##*_}"
 | 
				
			||||||
 | 
					conf_dir="/etc/consul/conf.d"
 | 
				
			||||||
 | 
					conf_file="watch_${watch_type}_${__object_id}.json"
 | 
				
			||||||
 | 
					state="$(cat "$__object/parameter/state")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Generate json config file
 | 
				
			||||||
 | 
					(
 | 
				
			||||||
 | 
					echo "{"
 | 
				
			||||||
 | 
					printf '   "watches": [{\n'
 | 
				
			||||||
 | 
					printf '      "type": "%s"\n' "$watch_type"
 | 
				
			||||||
 | 
					for param in $(ls "$__object/parameter/"); do
 | 
				
			||||||
 | 
					   case "$param" in
 | 
				
			||||||
 | 
					      state) continue ;;
 | 
				
			||||||
 | 
					      *)
 | 
				
			||||||
 | 
					         key="$(echo "$param" | tr '-' '_')"
 | 
				
			||||||
 | 
					         printf '      ,"%s": "%s"\n' "$key" "$(cat "$__object/parameter/$param")"
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					   esac
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					# end watches
 | 
				
			||||||
 | 
					echo "   }]"
 | 
				
			||||||
 | 
					# end json file
 | 
				
			||||||
 | 
					echo "}"
 | 
				
			||||||
 | 
					) | \
 | 
				
			||||||
 | 
					require="__directory${conf_dir}" \
 | 
				
			||||||
 | 
					   __config_file "${conf_dir}/${conf_file}" \
 | 
				
			||||||
 | 
					      --owner root --group consul --mode 640 \
 | 
				
			||||||
 | 
					      --state "$state" \
 | 
				
			||||||
 | 
					      --onchange 'service consul status >/dev/null && service consul reload || true' \
 | 
				
			||||||
 | 
					      --source -
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					present
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,3 @@
 | 
				
			||||||
 | 
					datacenter
 | 
				
			||||||
 | 
					state
 | 
				
			||||||
 | 
					token
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					handler
 | 
				
			||||||
| 
						 | 
					@ -7,6 +7,20 @@ Changelog
 | 
				
			||||||
next:
 | 
					next:
 | 
				
			||||||
	* New type __staged_file: Manage staged files
 | 
						* New type __staged_file: Manage staged files
 | 
				
			||||||
	* New type __config_file: Manage configuration files and run code on change
 | 
						* New type __config_file: Manage configuration files and run code on change
 | 
				
			||||||
 | 
						* New type __consul: install consul
 | 
				
			||||||
 | 
						* New type __consul_agent: manage the consul agent
 | 
				
			||||||
 | 
						* New type __consul_check: manages consul checks
 | 
				
			||||||
 | 
						* New type __consul_reload: reload consul
 | 
				
			||||||
 | 
						* New type __consul_service: manages consul services
 | 
				
			||||||
 | 
						* New type __consul_template: manage the consul-template service
 | 
				
			||||||
 | 
						* New type __consul_template_template: manage consul-template templates
 | 
				
			||||||
 | 
						* New type __consul_watch_checks: manages consul checks watches
 | 
				
			||||||
 | 
						* New type __consul_watch_event: manages consul event watches
 | 
				
			||||||
 | 
						* New type __consul_watch_key: manages consul key watches
 | 
				
			||||||
 | 
						* New type __consul_watch_keyprefix: manages consul keyprefix watches
 | 
				
			||||||
 | 
						* New type __consul_watch_nodes: manages consul nodes watches
 | 
				
			||||||
 | 
						* New type __consul_watch_service: manages consul service watches
 | 
				
			||||||
 | 
						* New type __consul_watch_services: manages consul services watches
 | 
				
			||||||
 | 
					
 | 
				
			||||||
3.1.11:
 | 
					3.1.11:
 | 
				
			||||||
	* Type __start_on_boot: Support Ubuntu upstart
 | 
						* Type __start_on_boot: Support Ubuntu upstart
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue