mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Server: Switch from separate server & cli to a unified grafana binary (#58286)
* avoid the need for a second bulky binary for grafana-cli * look for grafana-server in $PATH as well as same directory * implement unified "grafana" command * update dockerfiles, fix grafana-cli -v * update packaging to work with single binary - add wrapper scripts for grafana and grafana-server - update and sync package files - implement --sign flag of build package command - stop packaging scripts folder, they are not useful for end users - add support for --configOverrides in server command - remove unused nfpm.yaml config file * windows support
This commit is contained in:
@@ -1,35 +0,0 @@
|
||||
name: "grafana"
|
||||
arch: "${ARCH}"
|
||||
platform: "linux"
|
||||
version: "${VERSION}"
|
||||
section: "default"
|
||||
priority: "extra"
|
||||
replaces:
|
||||
- grafana
|
||||
provides:
|
||||
- grafana-server
|
||||
- grafana-cli
|
||||
depends:
|
||||
- adduser
|
||||
maintainer: "<contact@grafana.com>"
|
||||
description: |
|
||||
Grafana
|
||||
vendor: "Grafana"
|
||||
homepage: "https://grafana.com"
|
||||
license: "Apache 2"
|
||||
bindir: "/usr/sbin"
|
||||
files:
|
||||
"./bin/grafana-server": "/usr/sbin/grafana-server"
|
||||
"./bin/grafana-cli": "/usr/sbin/grafana-cli"
|
||||
config_files:
|
||||
./packaging/deb/init.d/grafana-server: "/etc/init.d/grafana-server"
|
||||
./packaging/deb/default/grafana-server: "/etc/default/grafana-server"
|
||||
./packaging/deb/systemd/grafana-server.service: "/usr/lib/systemd/system/grafana-server.service"
|
||||
overrides:
|
||||
rpm:
|
||||
scripts:
|
||||
preinstall: ./scripts/preinstall.sh
|
||||
postremove: ./scripts/postremove.sh
|
||||
deb:
|
||||
scripts:
|
||||
postinstall: ./packaging/deb/control/postinst
|
||||
@@ -7,23 +7,24 @@ set -e
|
||||
IS_UPGRADE=false
|
||||
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
[ -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
|
||||
# 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
|
||||
# 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
|
||||
@@ -97,6 +98,5 @@ case "$1" in
|
||||
fi
|
||||
echo " OK"
|
||||
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -36,7 +36,7 @@ CONF_FILE=$CONF_DIR/grafana.ini
|
||||
PROVISIONING_CFG_DIR=$CONF_DIR/provisioning
|
||||
MAX_OPEN_FILES=10000
|
||||
PID_FILE=/var/run/$NAME.pid
|
||||
DAEMON=/usr/sbin/$NAME
|
||||
DAEMON=$GRAFANA_HOME/bin/grafana
|
||||
|
||||
umask 0027
|
||||
|
||||
@@ -48,104 +48,102 @@ fi
|
||||
. /lib/lsb/init-functions
|
||||
|
||||
if [ -r /etc/default/rcS ]; then
|
||||
. /etc/default/rcS
|
||||
. /etc/default/rcS
|
||||
fi
|
||||
|
||||
# overwrite settings from default file
|
||||
if [ -f "$DEFAULT" ]; then
|
||||
. "$DEFAULT"
|
||||
. "$DEFAULT"
|
||||
fi
|
||||
|
||||
DAEMON_OPTS="--pidfile=${PID_FILE} --config=${CONF_FILE} --packaging=deb cfg:default.paths.provisioning=$PROVISIONING_CFG_DIR cfg:default.paths.data=${DATA_DIR} cfg:default.paths.logs=${LOG_DIR} cfg:default.paths.plugins=${PLUGINS_DIR}"
|
||||
DAEMON_OPTS="server --pidfile=${PID_FILE} --config=${CONF_FILE} --packaging=deb cfg:default.paths.provisioning=$PROVISIONING_CFG_DIR cfg:default.paths.data=${DATA_DIR} cfg:default.paths.logs=${LOG_DIR} cfg:default.paths.plugins=${PLUGINS_DIR}"
|
||||
|
||||
function checkUser() {
|
||||
if [ `id -u` -ne 0 ]; then
|
||||
echo "You need root privileges to run this script"
|
||||
exit 4
|
||||
echo "You need root privileges to run this script"
|
||||
exit 4
|
||||
fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
checkUser
|
||||
log_daemon_msg "Starting $DESC"
|
||||
checkUser
|
||||
log_daemon_msg "Starting $DESC"
|
||||
pid=`pidofproc -p $PID_FILE grafana`
|
||||
if [ -n "$pid" ] ; then
|
||||
log_begin_msg "Already running."
|
||||
log_end_msg 0
|
||||
exit 0
|
||||
fi
|
||||
|
||||
pid=`pidofproc -p $PID_FILE grafana`
|
||||
if [ -n "$pid" ] ; then
|
||||
log_begin_msg "Already running."
|
||||
log_end_msg 0
|
||||
exit 0
|
||||
fi
|
||||
# Prepare environment
|
||||
mkdir -p "$LOG_DIR" "$DATA_DIR" && chown "$GRAFANA_USER":"$GRAFANA_GROUP" "$LOG_DIR" "$DATA_DIR"
|
||||
touch "$PID_FILE" && chown "$GRAFANA_USER":"$GRAFANA_GROUP" "$PID_FILE"
|
||||
|
||||
# Prepare environment
|
||||
mkdir -p "$LOG_DIR" "$DATA_DIR" && chown "$GRAFANA_USER":"$GRAFANA_GROUP" "$LOG_DIR" "$DATA_DIR"
|
||||
touch "$PID_FILE" && chown "$GRAFANA_USER":"$GRAFANA_GROUP" "$PID_FILE"
|
||||
if [ -n "$MAX_OPEN_FILES" ]; then
|
||||
ulimit -n $MAX_OPEN_FILES
|
||||
fi
|
||||
|
||||
if [ -n "$MAX_OPEN_FILES" ]; then
|
||||
ulimit -n $MAX_OPEN_FILES
|
||||
fi
|
||||
# Start Daemon
|
||||
start-stop-daemon --start -b --chdir "$WORK_DIR" --user "$GRAFANA_USER" -c "$GRAFANA_USER" --pidfile "$PID_FILE" --exec $DAEMON -- $DAEMON_OPTS
|
||||
return=$?
|
||||
if [ $return -eq 0 ]
|
||||
then
|
||||
sleep 1
|
||||
# check if pid file has been written to
|
||||
if ! [[ -s $PID_FILE ]]; then
|
||||
log_end_msg 1
|
||||
exit 1
|
||||
fi
|
||||
i=0
|
||||
timeout=10
|
||||
# Wait for the process to be properly started before exiting
|
||||
until { cat "$PID_FILE" | xargs kill -0; } >/dev/null 2>&1
|
||||
do
|
||||
sleep 1
|
||||
i=$(($i + 1))
|
||||
if [ $i -gt $timeout ]; then
|
||||
log_end_msg 1
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# Start Daemon
|
||||
start-stop-daemon --start -b --chdir "$WORK_DIR" --user "$GRAFANA_USER" -c "$GRAFANA_USER" --pidfile "$PID_FILE" --exec $DAEMON -- $DAEMON_OPTS
|
||||
return=$?
|
||||
if [ $return -eq 0 ]
|
||||
then
|
||||
sleep 1
|
||||
|
||||
# check if pid file has been written to
|
||||
if ! [[ -s $PID_FILE ]]; then
|
||||
log_end_msg 1
|
||||
exit 1
|
||||
fi
|
||||
|
||||
i=0
|
||||
timeout=10
|
||||
# Wait for the process to be properly started before exiting
|
||||
until { cat "$PID_FILE" | xargs kill -0; } >/dev/null 2>&1
|
||||
do
|
||||
sleep 1
|
||||
i=$(($i + 1))
|
||||
if [ $i -gt $timeout ]; then
|
||||
log_end_msg 1
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
fi
|
||||
log_end_msg $return
|
||||
;;
|
||||
log_end_msg $return
|
||||
;;
|
||||
stop)
|
||||
checkUser
|
||||
log_daemon_msg "Stopping $DESC"
|
||||
checkUser
|
||||
log_daemon_msg "Stopping $DESC"
|
||||
|
||||
if [ -f "$PID_FILE" ]; then
|
||||
start-stop-daemon --stop --pidfile "$PID_FILE" \
|
||||
--user "$GRAFANA_USER" \
|
||||
--retry=TERM/20/KILL/5 >/dev/null
|
||||
if [ $? -eq 1 ]; then
|
||||
log_progress_msg "$DESC is not running but pid file exists, cleaning up"
|
||||
elif [ $? -eq 3 ]; then
|
||||
PID="`cat $PID_FILE`"
|
||||
log_failure_msg "Failed to stop $DESC (pid $PID)"
|
||||
exit 1
|
||||
fi
|
||||
rm -f "$PID_FILE"
|
||||
else
|
||||
log_progress_msg "(not running)"
|
||||
fi
|
||||
log_end_msg 0
|
||||
;;
|
||||
if [ -f "$PID_FILE" ]; then
|
||||
start-stop-daemon --stop --pidfile "$PID_FILE" \
|
||||
--user "$GRAFANA_USER" \
|
||||
--retry=TERM/20/KILL/5 >/dev/null
|
||||
if [ $? -eq 1 ]; then
|
||||
log_progress_msg "$DESC is not running but pid file exists, cleaning up"
|
||||
elif [ $? -eq 3 ]; then
|
||||
PID="`cat $PID_FILE`"
|
||||
log_failure_msg "Failed to stop $DESC (pid $PID)"
|
||||
exit 1
|
||||
fi
|
||||
rm -f "$PID_FILE"
|
||||
else
|
||||
log_progress_msg "(not running)"
|
||||
fi
|
||||
log_end_msg 0
|
||||
;;
|
||||
status)
|
||||
status_of_proc -p $PID_FILE grafana grafana && exit 0 || exit $?
|
||||
status_of_proc -p $PID_FILE grafana grafana && exit 0 || exit $?
|
||||
;;
|
||||
restart|force-reload)
|
||||
if [ -f "$PID_FILE" ]; then
|
||||
$0 stop
|
||||
sleep 1
|
||||
fi
|
||||
$0 start
|
||||
;;
|
||||
if [ -f "$PID_FILE" ]; then
|
||||
$0 stop
|
||||
sleep 1
|
||||
fi
|
||||
$0 start
|
||||
;;
|
||||
*)
|
||||
log_success_msg "Usage: $0 {start|stop|restart|force-reload|status}"
|
||||
exit 3
|
||||
;;
|
||||
log_success_msg "Usage: $0 {start|stop|restart|force-reload|status}"
|
||||
exit 3
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -14,15 +14,14 @@ Restart=on-failure
|
||||
WorkingDirectory=/usr/share/grafana
|
||||
RuntimeDirectory=grafana
|
||||
RuntimeDirectoryMode=0750
|
||||
ExecStart=/usr/sbin/grafana-server \
|
||||
ExecStart=/usr/share/grafana/bin/grafana server \
|
||||
--config=${CONF_FILE} \
|
||||
--pidfile=${PID_FILE_DIR}/grafana-server.pid \
|
||||
--packaging=deb \
|
||||
cfg:default.paths.logs=${LOG_DIR} \
|
||||
cfg:default.paths.data=${DATA_DIR} \
|
||||
cfg:default.paths.plugins=${PLUGINS_DIR} \
|
||||
cfg:default.paths.provisioning=${PROVISIONING_CFG_DIR}
|
||||
|
||||
cfg:default.paths.provisioning=${PROVISIONING_CFG_DIR}
|
||||
|
||||
LimitNOFILE=10000
|
||||
TimeoutStopSec=20
|
||||
|
||||
@@ -70,14 +70,14 @@ if [ ! -z "${GF_INSTALL_PLUGINS}" ]; then
|
||||
if [[ $plugin =~ .*\;.* ]]; then
|
||||
pluginUrl=$(echo "$plugin" | cut -d';' -f 1)
|
||||
pluginInstallFolder=$(echo "$plugin" | cut -d';' -f 2)
|
||||
grafana-cli --pluginUrl ${pluginUrl} --pluginsDir "${GF_PATHS_PLUGINS}" plugins install "${pluginInstallFolder}"
|
||||
grafana cli --pluginUrl ${pluginUrl} --pluginsDir "${GF_PATHS_PLUGINS}" plugins install "${pluginInstallFolder}"
|
||||
else
|
||||
grafana-cli --pluginsDir "${GF_PATHS_PLUGINS}" plugins install ${plugin}
|
||||
grafana cli --pluginsDir "${GF_PATHS_PLUGINS}" plugins install ${plugin}
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
exec grafana-server \
|
||||
exec grafana server \
|
||||
--homepath="$GF_PATHS_HOME" \
|
||||
--config="$GF_PATHS_CONFIG" \
|
||||
--packaging=docker \
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
DAEMON=grafana-server
|
||||
EXECUTABLE=/usr/local/bin/grafana-server
|
||||
EXECUTABLE=/usr/share/grafana/bin/grafana
|
||||
CONFIG=/usr/local/etc/grafana/grafana.ini
|
||||
HOMEPATH=/usr/local/share/grafana
|
||||
LOGPATH=/usr/local/var/log/grafana
|
||||
@@ -11,7 +11,7 @@ DASHBOARDSCFGPATH=/usr/local/etc/grafana/dashboards
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
$EXECUTABLE --config=$CONFIG --homepath=$HOMEPATH cfg:default.paths.datasources=$DATASOURCECFGPATH cfg:default.paths.dashboards=$DASHBOARDSCFGPATH cfg:default.paths.logs=$LOGPATH cfg:default.paths.data=$DATAPATH cfg:default.paths.plugins=$PLUGINPATH 2> /dev/null &
|
||||
$EXECUTABLE server --config=$CONFIG --homepath=$HOMEPATH cfg:default.paths.datasources=$DATASOURCECFGPATH cfg:default.paths.dashboards=$DASHBOARDSCFGPATH cfg:default.paths.logs=$LOGPATH cfg:default.paths.data=$DATAPATH cfg:default.paths.plugins=$PLUGINPATH 2> /dev/null &
|
||||
[ $? -eq 0 ] && echo "$DAEMON started"
|
||||
;;
|
||||
stop)
|
||||
|
||||
@@ -7,37 +7,42 @@ set -e
|
||||
startGrafana() {
|
||||
if [ -x /bin/systemctl ] ; then
|
||||
/bin/systemctl daemon-reload
|
||||
/bin/systemctl start grafana-server.service
|
||||
elif [ -x /etc/init.d/grafana-server ] ; then
|
||||
/etc/init.d/grafana-server start
|
||||
elif [ -x /etc/rc.d/init.d/grafana-server ] ; then
|
||||
/etc/rc.d/init.d/grafana-server start
|
||||
fi
|
||||
/bin/systemctl start grafana-server.service
|
||||
elif [ -x /etc/init.d/grafana-server ] ; then
|
||||
/etc/init.d/grafana-server start
|
||||
elif [ -x /etc/rc.d/init.d/grafana-server ] ; then
|
||||
/etc/rc.d/init.d/grafana-server start
|
||||
fi
|
||||
}
|
||||
|
||||
stopGrafana() {
|
||||
if [ -x /bin/systemctl ] ; then
|
||||
/bin/systemctl stop grafana-server.service > /dev/null 2>&1 || :
|
||||
elif [ -x /etc/init.d/grafana-service ] ; then
|
||||
/etc/init.d/grafana-service stop
|
||||
elif [ -x /etc/rc.d/init.d/grafana-service ] ; then
|
||||
/etc/rc.d/init.d/grafana-service stop
|
||||
fi
|
||||
if [ -x /bin/systemctl ] ; then
|
||||
/bin/systemctl stop grafana-server.service > /dev/null 2>&1 || :
|
||||
elif [ -x /etc/init.d/grafana-service ] ; then
|
||||
/etc/init.d/grafana-service stop
|
||||
elif [ -x /etc/rc.d/init.d/grafana-service ] ; then
|
||||
/etc/rc.d/init.d/grafana-service stop
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# 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
|
||||
[ -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 -d /usr/share/grafana -s /sbin/nologin \
|
||||
-c "grafana user" grafana
|
||||
fi
|
||||
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
|
||||
@@ -71,11 +76,6 @@ if [ $1 -eq 1 ] ; then
|
||||
cp /usr/share/grafana/conf/provisioning/alerting/sample.yaml $PROVISIONING_CFG_DIR/alerting/sample.yaml
|
||||
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
|
||||
|
||||
# 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
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
PATH=/bin:/usr/bin:/sbin:/usr/sbin
|
||||
NAME=grafana-server
|
||||
DESC="Grafana Server"
|
||||
DEFAULT=/etc/sysconfig/$NAME
|
||||
|
||||
GRAFANA_USER=grafana
|
||||
GRAFANA_GROUP=grafana
|
||||
@@ -35,7 +36,7 @@ CONF_FILE=$CONF_DIR/grafana.ini
|
||||
PROVISIONING_CFG_DIR=$CONF_DIR/provisioning
|
||||
MAX_OPEN_FILES=10000
|
||||
PID_FILE=/var/run/$NAME.pid
|
||||
DAEMON=/usr/sbin/$NAME
|
||||
DAEMON=$GRAFANA_HOME/bin/grafana
|
||||
|
||||
if [ ! -x $DAEMON ]; then
|
||||
echo "Program not installed or not executable"
|
||||
@@ -58,9 +59,11 @@ if [ -f /etc/rc.d/init.d/functions ]; then
|
||||
fi
|
||||
|
||||
# overwrite settings from default file
|
||||
[ -e /etc/sysconfig/$NAME ] && . /etc/sysconfig/$NAME
|
||||
if [ -f "$DEFAULT" ]; then
|
||||
. "$DEFAULT"
|
||||
fi
|
||||
|
||||
DAEMON_OPTS="--pidfile=${PID_FILE} --config=${CONF_FILE} --packaging=rpm cfg:default.paths.provisioning=$PROVISIONING_CFG_DIR cfg:default.paths.data=${DATA_DIR} cfg:default.paths.logs=${LOG_DIR} cfg:default.paths.plugins=${PLUGINS_DIR}"
|
||||
DAEMON_OPTS="server --pidfile=${PID_FILE} --config=${CONF_FILE} --packaging=rpm cfg:default.paths.provisioning=$PROVISIONING_CFG_DIR cfg:default.paths.data=${DATA_DIR} cfg:default.paths.logs=${LOG_DIR} cfg:default.paths.plugins=${PLUGINS_DIR}"
|
||||
|
||||
function isRunning() {
|
||||
status -p $PID_FILE $NAME > /dev/null 2>&1
|
||||
|
||||
@@ -14,14 +14,14 @@ Restart=on-failure
|
||||
WorkingDirectory=/usr/share/grafana
|
||||
RuntimeDirectory=grafana
|
||||
RuntimeDirectoryMode=0750
|
||||
ExecStart=/usr/sbin/grafana-server \
|
||||
ExecStart=/usr/share/grafana/bin/grafana server \
|
||||
--config=${CONF_FILE} \
|
||||
--pidfile=${PID_FILE_DIR}/grafana-server.pid \
|
||||
--packaging=rpm \
|
||||
cfg:default.paths.logs=${LOG_DIR} \
|
||||
cfg:default.paths.data=${DATA_DIR} \
|
||||
cfg:default.paths.plugins=${PLUGINS_DIR} \
|
||||
cfg:default.paths.provisioning=${PROVISIONING_CFG_DIR}
|
||||
cfg:default.paths.provisioning=${PROVISIONING_CFG_DIR}
|
||||
|
||||
LimitNOFILE=10000
|
||||
TimeoutStopSec=20
|
||||
|
||||
49
packaging/wrappers/grafana
Executable file
49
packaging/wrappers/grafana
Executable file
@@ -0,0 +1,49 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# Wrapper for the grafana binary
|
||||
# This file serves as a wrapper for the grafana binary. It ensures we set
|
||||
# the system-wide Grafana configuration that was bundled with the package as we
|
||||
# use the binary.
|
||||
|
||||
DEFAULT=/etc/default/grafana
|
||||
|
||||
GRAFANA_HOME="${GRAFANA_HOME:-/usr/share/grafana}"
|
||||
|
||||
CONF_DIR=/etc/grafana
|
||||
DATA_DIR=/var/lib/grafana
|
||||
PLUGINS_DIR=/var/lib/grafana/plugins
|
||||
LOG_DIR=/var/log/grafana
|
||||
|
||||
CONF_FILE=$CONF_DIR/grafana.ini
|
||||
PROVISIONING_CFG_DIR=$CONF_DIR/provisioning
|
||||
|
||||
EXECUTABLE="$GRAFANA_HOME/bin/grafana"
|
||||
|
||||
if [ ! -x $EXECUTABLE ]; then
|
||||
echo "$EXECUTABLE not installed or not executable"
|
||||
exit 5
|
||||
fi
|
||||
|
||||
# overwrite settings from default file
|
||||
if [ -f "$DEFAULT" ]; then
|
||||
. "$DEFAULT"
|
||||
fi
|
||||
|
||||
OPTS="--homepath=${GRAFANA_HOME} \
|
||||
--config=${CONF_FILE} \
|
||||
--configOverrides='cfg:default.paths.provisioning=$PROVISIONING_CFG_DIR \
|
||||
cfg:default.paths.data=${DATA_DIR} \
|
||||
cfg:default.paths.logs=${LOG_DIR} \
|
||||
cfg:default.paths.plugins=${PLUGINS_DIR}'"
|
||||
|
||||
CMD="${1:-}"
|
||||
shift
|
||||
|
||||
# special handling to pass --pluginsDir to cli
|
||||
# can remove once it fully supports cfg:default.paths.plugins
|
||||
if [ "$CMD" = cli ]; then
|
||||
OPTS="$OPTS \
|
||||
--pluginsDir=${PLUGINS_DIR}"
|
||||
fi
|
||||
|
||||
eval $EXECUTABLE "$CMD" "$OPTS" "$@"
|
||||
@@ -1,13 +1,14 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# Wrapper for the grafana-cli binary
|
||||
# This file serves as a wrapper for the grafana-cli binary. It ensures we set
|
||||
# Wrapper for the grafana binary
|
||||
# This file serves as a wrapper for the grafana binary. It ensures we set
|
||||
# the system-wide Grafana configuration that was bundled with the package as we
|
||||
# use the binary.
|
||||
|
||||
DEFAULT=/etc/default/grafana
|
||||
|
||||
GRAFANA_HOME=/usr/share/grafana
|
||||
GRAFANA_HOME="${GRAFANA_HOME:-/usr/share/grafana}"
|
||||
|
||||
CONF_DIR=/etc/grafana
|
||||
DATA_DIR=/var/lib/grafana
|
||||
PLUGINS_DIR=/var/lib/grafana/plugins
|
||||
@@ -16,10 +17,10 @@ LOG_DIR=/var/log/grafana
|
||||
CONF_FILE=$CONF_DIR/grafana.ini
|
||||
PROVISIONING_CFG_DIR=$CONF_DIR/provisioning
|
||||
|
||||
EXECUTABLE=$GRAFANA_HOME/bin/grafana-cli
|
||||
EXECUTABLE="$GRAFANA_HOME/bin/grafana"
|
||||
|
||||
if [ ! -x $EXECUTABLE ]; then
|
||||
echo "Program not installed or not executable"
|
||||
echo "$EXECUTABLE not installed or not executable"
|
||||
exit 5
|
||||
fi
|
||||
|
||||
@@ -36,4 +37,6 @@ OPTS="--homepath=${GRAFANA_HOME} \
|
||||
cfg:default.paths.logs=${LOG_DIR} \
|
||||
cfg:default.paths.plugins=${PLUGINS_DIR}'"
|
||||
|
||||
eval $EXECUTABLE "$OPTS" '$@'
|
||||
CMD=cli
|
||||
|
||||
eval $EXECUTABLE "$CMD" "$OPTS" "$@"
|
||||
|
||||
41
packaging/wrappers/grafana-server
Executable file
41
packaging/wrappers/grafana-server
Executable file
@@ -0,0 +1,41 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# Wrapper for the grafana binary
|
||||
# This file serves as a wrapper for the grafana binary. It ensures we set
|
||||
# the system-wide Grafana configuration that was bundled with the package as we
|
||||
# use the binary.
|
||||
|
||||
DEFAULT=/etc/default/grafana
|
||||
|
||||
GRAFANA_HOME="${GRAFANA_HOME:-/usr/share/grafana}"
|
||||
|
||||
CONF_DIR=/etc/grafana
|
||||
DATA_DIR=/var/lib/grafana
|
||||
PLUGINS_DIR=/var/lib/grafana/plugins
|
||||
LOG_DIR=/var/log/grafana
|
||||
|
||||
CONF_FILE=$CONF_DIR/grafana.ini
|
||||
PROVISIONING_CFG_DIR=$CONF_DIR/provisioning
|
||||
|
||||
EXECUTABLE="$GRAFANA_HOME/bin/grafana"
|
||||
|
||||
if [ ! -x $EXECUTABLE ]; then
|
||||
echo "$EXECUTABLE not installed or not executable"
|
||||
exit 5
|
||||
fi
|
||||
|
||||
# overwrite settings from default file
|
||||
if [ -f "$DEFAULT" ]; then
|
||||
. "$DEFAULT"
|
||||
fi
|
||||
|
||||
OPTS="--homepath=${GRAFANA_HOME} \
|
||||
--config=${CONF_FILE} \
|
||||
--configOverrides='cfg:default.paths.provisioning=$PROVISIONING_CFG_DIR \
|
||||
cfg:default.paths.data=${DATA_DIR} \
|
||||
cfg:default.paths.logs=${LOG_DIR} \
|
||||
cfg:default.paths.plugins=${PLUGINS_DIR}'"
|
||||
|
||||
CMD=server
|
||||
|
||||
eval $EXECUTABLE "$CMD" "$OPTS" "$@"
|
||||
Reference in New Issue
Block a user