mirror of
https://github.com/grafana/grafana.git
synced 2024-11-30 12:44:10 -06:00
71e5024d7a
* Stop and disable service on DEB package removal The condition for this code to run applies on package removal only, not on upgrade or reinstall which generally invoke the prerm script as well. Currently the service keeps running after package removal, failing at some point due to missing files. And if enabled, the attempted service start on every boot is doomed to fail. If the invoke-rc.d command exists, it can be assumed that update-rc.d exists as well, as both are part of the same init-system-helpers package in dpkg distro repositories. If neither systemd, nor the init system helper package is installed, the service is not tried to be disabled, since we cannot know a safe method to do so. Compared to the postinst script, "set -e" is skipped here, since we do not run any command which is allowed to fail the whole package removal. Signed-off-by: MichaIng <micha@dietpi.com> * Add postrm script to package build Signed-off-by: MichaIng <micha@dietpi.com> * Remove redundant check Co-authored-by: Dan Cech <dan@aussiedan.com> --------- Signed-off-by: MichaIng <micha@dietpi.com> Co-authored-by: Dan Cech <dan@aussiedan.com>
103 lines
3.8 KiB
Bash
Executable File
103 lines
3.8 KiB
Bash
Executable File
#!/usr/bin/env sh
|
|
|
|
set -e
|
|
|
|
[ -f /etc/default/grafana-server ] && . /etc/default/grafana-server
|
|
|
|
IS_UPGRADE=false
|
|
|
|
|
|
# Initial installation: $1 == configure
|
|
# Upgrade: $1 == configure, and $2 not empty
|
|
if [ "$1" = configure ]; then
|
|
[ -z "$GRAFANA_USER" ] && GRAFANA_USER="grafana"
|
|
[ -z "$GRAFANA_GROUP" ] && GRAFANA_GROUP="grafana"
|
|
if ! getent group "$GRAFANA_GROUP" > /dev/null 2>&1 ; then
|
|
addgroup --system "$GRAFANA_GROUP" --quiet
|
|
fi
|
|
if ! id "$GRAFANA_USER" > /dev/null 2>&1 ; then
|
|
adduser --system --home /usr/share/grafana --no-create-home \
|
|
--ingroup "$GRAFANA_GROUP" --disabled-password --shell /bin/false \
|
|
"$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/notifiers ]; then
|
|
mkdir -p $PROVISIONING_CFG_DIR/notifiers
|
|
cp /usr/share/grafana/conf/provisioning/notifiers/sample.yaml $PROVISIONING_CFG_DIR/notifiers/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 {} ';'
|
|
|
|
# If $1=configure and $2 is set, this is an upgrade
|
|
if [ "$2" != "" ]; then
|
|
IS_UPGRADE=true
|
|
fi
|
|
|
|
if [ "x$IS_UPGRADE" != "xtrue" ]; then
|
|
if command -v systemctl >/dev/null; then
|
|
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"
|
|
echo "### You can start grafana-server by executing"
|
|
echo " sudo /bin/systemctl start grafana-server"
|
|
elif command -v update-rc.d >/dev/null; then
|
|
echo "### NOT starting grafana-server by default on bootup, please execute"
|
|
echo " sudo update-rc.d grafana-server defaults 95 10"
|
|
echo "### In order to start grafana-server, execute"
|
|
echo " sudo service grafana-server start"
|
|
fi
|
|
elif [ "$RESTART_ON_UPGRADE" = "true" ]; then
|
|
|
|
echo -n "Restarting grafana-server service..."
|
|
|
|
if command -v systemctl >/dev/null; then
|
|
systemctl daemon-reload
|
|
systemctl restart grafana-server || true
|
|
elif [ -x /etc/init.d/grafana-server ]; then
|
|
if command -v invoke-rc.d >/dev/null; then
|
|
invoke-rc.d grafana-server restart || true
|
|
else
|
|
/etc/init.d/grafana-server restart || true
|
|
fi
|
|
fi
|
|
echo " OK"
|
|
|
|
fi
|
|
fi
|