diff options
Diffstat (limited to 'extra')
| -rw-r--r-- | extra/nagios_check_failing_nodes.rb | 8 | ||||
| -rwxr-xr-x | extra/oxidized-report-git-commits | 80 | ||||
| -rw-r--r-- | extra/rvm.oxidized.upstart | 18 | 
3 files changed, 102 insertions, 4 deletions
| diff --git a/extra/nagios_check_failing_nodes.rb b/extra/nagios_check_failing_nodes.rb index 27a5c66..abb34ba 100644 --- a/extra/nagios_check_failing_nodes.rb +++ b/extra/nagios_check_failing_nodes.rb @@ -23,12 +23,12 @@ json.each do |node|    end  end -if pending -  puts '[WARN] Pending backup: ' + pending_nodes.join(',') -  exit 1 -elsif critical +if critical    puts '[CRIT] Unable to backup: ' + critical_nodes.join(',')    exit 2 +elsif pending +  puts '[WARN] Pending backup: ' + pending_nodes.join(',') +  exit 1  else    puts '[OK] Backup of all nodes completed successfully.'    exit 0 diff --git a/extra/oxidized-report-git-commits b/extra/oxidized-report-git-commits new file mode 100755 index 0000000..2b1a2d7 --- /dev/null +++ b/extra/oxidized-report-git-commits @@ -0,0 +1,80 @@ +#!/bin/sh +#  +# A script to maintain a local working copy of an oxidized configuration +# repository and mail out diffs for configuration changes +#  +# Copyright 2016 Nick Hilliard <nick@foobar.org>, All Rights Reserved +#  +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +#  +#   http://www.apache.org/licenses/LICENSE-2.0 +#  +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# usage: add the following hook to the oxidized config file: +#  +# hooks: +#  email_output: +#    type: exec +#    events: [post_store, node_fail] +#    cmd: 'update-local-repo.sh ~/gitdir/ | mail -s "Oxidized updates for ${OX_NODE_NAME}" update-recipient@example.com' +#    async: true +#    timeout: 120 +#  +# +# The script takes a single argument, namely a git working directory name, +# e.g.  "~/gitdir/".  This is only used as a staging directory and should +# not be set to be the same as the git repo directory. +# + +PATH=${PATH}:/usr/local/bin:/usr/local/sbin +export PATH + +gitdir=$1 + +if [ X${OX_REPO_COMMITREF} = "X" ]; then +	echo \$OX_REPO_COMMITREF not set +	exit 64 +fi + +if [ X${OX_REPO_NAME} = "X" ]; then +	echo \$OX_REPO_NAME not set +	exit 64 +fi +	 +if [ ! -d ${gitdir}/.git ]; then +	git clone -q ${OX_REPO_NAME} ${gitdir} + +	ret=$? +	if [ X"${ret}" != X0 ] && [ X"${ret}" != X1 ]; then +		echo git clone failed: aborting. +		exit 128 +	fi +fi + +cd ${gitdir} + +git pull -q > /dev/null 2>&1  +ret=$? +if [ X"${ret}" != X0 ] && [ X"${ret}" != X1 ]; then +	echo git pull failed: aborting. +	exit 128 +fi + +# Git is probably working at this stage, so safe to emit more info + +echo "Node name: ${OX_NODE_NAME}" +echo "Group Name: ${OX_NODE_GROUP}" +echo "Job Time: ${OX_JOB_TIME}" +echo "Git Commit ID: ${OX_REPO_COMMITREF}" +echo "Git Repo: ${OX_REPO_NAME}" +echo "Local working dir: ${gitdir}" +echo "" + +git diff --no-color ${OX_REPO_COMMITREF}~1..${OX_REPO_COMMITREF} diff --git a/extra/rvm.oxidized.upstart b/extra/rvm.oxidized.upstart new file mode 100644 index 0000000..23b5d69 --- /dev/null +++ b/extra/rvm.oxidized.upstart @@ -0,0 +1,18 @@ +start on started networking + +respawn + +setuid oxidized +setgid oxidized + +chdir /home/oxidized + +env HOME=/home/oxidized + +pre-start script +	test -x /usr/local/rvm/wrappers/ruby-2.1.2/oxidized || { stop; exit 0; } +end script + +script +	exec /usr/local/rvm/wrappers/ruby-2.1.2/oxidized +end script
\ No newline at end of file | 
