check-mk/debian/check-mk-config-icinga.postinst
2017-05-24 10:32:49 +02:00

84 lines
3.2 KiB
Bash

#!/bin/bash
set -e
# a little helper for getting permissions right
setperm() {
local user="$1"
local group="$2"
local mode="$3"
local file="$4"
shift 4
# only do something when no setting exists
if ! dpkg-statoverride --list "$file" >/dev/null 2>&1; then
chown "$user":"$group" "$file"
chmod "$mode" "$file"
fi
}
dpkg-maintscript-helper mv_conffile \
/etc/icinga/objects/check_mk_templates.cfg \
/etc/icinga/objects/check_mk/check_mk_templates.cfg \
1.1.10-2 -- "$@"
# older releases (1.1.12p7-1 at least) delivered the multisite conffile to
# /etc/apache2/conf.d. If it exists we need to move it to conf-available
# once it's moved then the code below will setup the conf.d symlink.
# This code wasn't in place until 1.2.6p4-2, so we need to check everything
# before that.
dpkg-maintscript-helper mv_conffile \
/etc/apache2/conf.d/check_mk_multisite.cfg \
/etc/apache2/conf-available/check_mk_multisite.cfg \
1.2.6p4-2 -- "$@"
if [ -e '/etc/icinga/objects/check_mk_objects.cfg' ];
then
echo 'Migrate /etc/icinga/objects/check_mk_objects.cfg to /etc/icinga/objects/check_mk/check_mk_objects.cfg'
mv /etc/icinga/objects/check_mk_objects.cfg \
/etc/icinga/objects/check_mk/check_mk_objects.cfg
fi
case "$1" in
configure)
#make sure our nagios user exists
if ! getent passwd nagios > /dev/null ; then
echo 'Adding system-user for nagios' 1>&2
adduser --system --group --home /var/lib/nagios \
--disabled-login --force-badname nagios > /dev/null
fi
#fix permissions for some directorys
test -d /etc/icinga/objects/check_mk || mkdir -p /etc/icinga/objects/check_mk
setperm root nagios 0775 /etc/icinga/objects/check_mk
#handle the apache2.2 -> apache2.4 upgrade (see https://wiki.debian.org/Apache/PackagingFor24)
CONF="check-mk-multisite"
COMMON_STATE=$(dpkg-query -f '${Status}' -W 'apache2.2-common' 2>/dev/null | awk '{print $3}' || true)
if [ -e /usr/share/apache2/apache2-maintscript-helper ] ; then
. /usr/share/apache2/apache2-maintscript-helper
apache2_invoke enconf $CONF || exit $?
elif [ "$COMMON_STATE" = "installed" ] || [ "$COMMON_STATE" = "unpacked" ] ; then
if [ -d /etc/apache2/conf.d/ ]; then
if [ -L /etc/apache2/conf.d/$CONF.conf ]; then
# it's a symlink, all is well
true
elif [ -e /etc/apache2/conf.d/$CONF.conf ]; then
# it's not a symlink, but exists, error
echo "ERROR: /etc/apache2/conf.d/$CONF.conf is not a symlink, please investigate" 1>&2
else
# we need to create the symlink
ln -s ../conf-available/$CONF.conf /etc/apache2/conf.d/$CONF.conf
fi
fi
fi
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \$1'" >&2
exit 1
;;
esac
#DEBHELPER#