summaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
authorElvin Efendi <elvin.efendiyev@gmail.com>2016-01-04 11:00:14 -0500
committerElvin Efendi <elvin.efendiyev@gmail.com>2016-01-04 11:00:14 -0500
commite41f7b429901eb38ad785ad1fc2527dd41f35959 (patch)
tree02ba46c4f7d43b5721f3eb7de38599e0e019e5cf /extra
parentef1a59d2b29df5b00246ee34eba96b0cf4927fa2 (diff)
parentf339170c877ca296987d66c0c44223a8cad1d338 (diff)
Merge pull request #17 from Shopify/merge-upstream
Merge upstream
Diffstat (limited to 'extra')
-rw-r--r--extra/nagios_check_failing_nodes.rb8
-rwxr-xr-xextra/oxidized-report-git-commits80
-rw-r--r--extra/rvm.oxidized.upstart18
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