86 lines
2.2 KiB
Bash
Executable File
86 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
if [ -z "$1" ]; then
|
|
echo "The name of the plugin is empty"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$2" ]; then
|
|
echo "The version of the plugin is empty"
|
|
exit 1
|
|
fi
|
|
|
|
PLUGIN_NAME=$1
|
|
PLUGIN_VERSION=$2
|
|
PLUGIN_MAJOR=$(echo "$PLUGIN_VERSION" | cut -d. -f1)
|
|
PLUGIN_MINOR=$(echo "$PLUGIN_VERSION" | cut -d. -f2)
|
|
|
|
MANIFEST=nagios.pp
|
|
CONFIG_DIR=/etc/nagios3/conf.d
|
|
PREFIX_FILENAMES=lma_
|
|
EXTENSION_FILENAMES=.cfg
|
|
PUPPET=$(which puppet)
|
|
PLUGIN_PUPPET_DIR=$(ls -d /etc/fuel/plugins/"$PLUGIN_NAME-$PLUGIN_MAJOR.$PLUGIN_MINOR"/puppet)
|
|
LAST_CHECK=/var/cache/lma_last_astute_yaml.md5sum
|
|
LAST_CHECK_NODES=/var/cache/lma_last_nodes_yaml.md5sum
|
|
CURRENT_CHECK=/var/cache/lma_current_astute_yaml.md5sum
|
|
CURRENT_CHECK_NODES=/var/cache/lma_current_nodes_yaml.md5sum
|
|
ASTUTE=/etc/hiera/astute.yaml
|
|
|
|
if [ -f /etc/hiera/deleted_nodes.yaml ]; then
|
|
# MOS-9
|
|
NODES=/etc/hiera/deleted_nodes.yaml
|
|
else
|
|
# MOS-8
|
|
NODES=/etc/hiera/nodes.yaml
|
|
fi
|
|
|
|
if [[ -z "$PLUGIN_NAME" ]]; then
|
|
cat << EOT
|
|
Usage: $0 <PLUGIN_NAME>
|
|
|
|
If $ASTUTE or $NODES have changed since the last run, re-apply nagios manifest.
|
|
Before puppet apply, the script removes the StackLight nagios configuration files.
|
|
EOT
|
|
exit 1
|
|
fi
|
|
|
|
if [[ ! -f "$ASTUTE" || ! -f "$NODES" ]]; then
|
|
echo "Both files $ASTUTE and $NODES are missing !"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ ! -f $LAST_CHECK || ! -f $LAST_CHECK_NODES ]]; then
|
|
# First run
|
|
md5sum $ASTUTE 2>/dev/null > $LAST_CHECK
|
|
md5sum $NODES 2>/dev/null > $LAST_CHECK_NODES
|
|
exit 0
|
|
fi
|
|
|
|
md5sum $ASTUTE > $CURRENT_CHECK
|
|
md5sum $NODES > $CURRENT_CHECK_NODES
|
|
|
|
md5sum --status -c $LAST_CHECK
|
|
result_astute=$?
|
|
md5sum --status -c $LAST_CHECK_NODES
|
|
result_nodes=$?
|
|
|
|
if [[ $result_astute -ne 0 || $result_nodes -ne 0 ]]; then
|
|
if [ -d "$CONFIG_DIR" ]; then
|
|
rm -f "$CONFIG_DIR"/"$PREFIX_FILENAMES"*"$EXTENSION_FILENAMES"
|
|
fi
|
|
set -e
|
|
$PUPPET apply --modulepath="$PLUGIN_PUPPET_DIR/modules/:/etc/puppet/modules" "$PLUGIN_PUPPET_DIR/manifests/$MANIFEST"
|
|
set +e
|
|
|
|
md5sum --status -c $LAST_CHECK
|
|
result_astute=$?
|
|
md5sum --status -c $LAST_CHECK_NODES
|
|
result_nodes=$?
|
|
if [[ $result_astute -ne 0 || $result_nodes -ne 0 ]]; then
|
|
# OK, the hiera data hasn't been modified during the puppet run
|
|
md5sum $ASTUTE > $LAST_CHECK
|
|
md5sum $NODES > $LAST_CHECK_NODES
|
|
fi
|
|
fi
|