grafana/packaging/rpm/control/postinst

80 lines
2.9 KiB
Bash
Executable File

#!/bin/sh
set -e
[ -f /etc/sysconfig/grafana-server ] && . /etc/sysconfig/grafana-server
startGrafana() {
/bin/systemctl daemon-reload
/bin/systemctl start grafana-server.service
}
stopGrafana() {
/bin/systemctl stop grafana-server.service > /dev/null 2>&1 || :
}
# Initial installation: $1 == 1
# Upgrade: $1 == 2, and configured to restart on upgrade
if [ $1 -eq 1 ] ; then
[ -z "$GRAFANA_USER" ] && GRAFANA_USER="grafana"
[ -z "$GRAFANA_GROUP" ] && GRAFANA_GROUP="grafana"
if ! getent group "$GRAFANA_GROUP" > /dev/null 2>&1 ; then
groupadd -r "$GRAFANA_GROUP"
fi
if ! getent passwd "$GRAFANA_USER" > /dev/null 2>&1 ; then
useradd -r -g "$GRAFANA_GROUP" -d /usr/share/grafana -s /sbin/nologin \
-c "grafana user" "$GRAFANA_USER"
fi
# Set user permissions on /var/log/grafana, /var/lib/grafana
mkdir -p /var/log/grafana /var/lib/grafana
chown -R $GRAFANA_USER:$GRAFANA_GROUP /var/log/grafana /var/lib/grafana
chmod 755 /var/log/grafana /var/lib/grafana
# copy user config files
if [ ! -f $CONF_FILE ]; then
cp /usr/share/grafana/conf/sample.ini $CONF_FILE
cp /usr/share/grafana/conf/ldap.toml /etc/grafana/ldap.toml
fi
if [ ! -d $PROVISIONING_CFG_DIR ]; then
mkdir -p $PROVISIONING_CFG_DIR/dashboards $PROVISIONING_CFG_DIR/datasources
cp /usr/share/grafana/conf/provisioning/dashboards/sample.yaml $PROVISIONING_CFG_DIR/dashboards/sample.yaml
cp /usr/share/grafana/conf/provisioning/datasources/sample.yaml $PROVISIONING_CFG_DIR/datasources/sample.yaml
fi
if [ ! -d $PROVISIONING_CFG_DIR/plugins ]; then
mkdir -p $PROVISIONING_CFG_DIR/plugins
cp /usr/share/grafana/conf/provisioning/plugins/sample.yaml $PROVISIONING_CFG_DIR/plugins/sample.yaml
fi
if [ ! -d $PROVISIONING_CFG_DIR/access-control ]; then
mkdir -p $PROVISIONING_CFG_DIR/access-control
cp /usr/share/grafana/conf/provisioning/access-control/sample.yaml $PROVISIONING_CFG_DIR/access-control/sample.yaml
fi
if [ ! -d $PROVISIONING_CFG_DIR/alerting ]; then
mkdir -p $PROVISIONING_CFG_DIR/alerting
cp /usr/share/grafana/conf/provisioning/alerting/sample.yaml $PROVISIONING_CFG_DIR/alerting/sample.yaml
fi
# configuration files should not be modifiable by grafana user, as this can be a security issue
chown -Rh root:$GRAFANA_GROUP /etc/grafana/*
chmod 755 /etc/grafana
find /etc/grafana -type f -exec chmod 640 {} ';'
find /etc/grafana -type d -exec chmod 755 {} ';'
echo "### NOT starting on installation, please execute the following statements to configure grafana to start automatically using systemd"
echo " sudo /bin/systemctl daemon-reload"
echo " sudo /bin/systemctl enable grafana-server.service"
echo "### You can start grafana-server by executing"
echo " sudo /bin/systemctl start grafana-server.service"
elif [ $1 -ge 2 ] ; then
if [ "$RESTART_ON_UPGRADE" == "true" ]; then
stopGrafana
startGrafana
fi
fi