mirror of https://github.com/grafana/grafana
Grafana-CLI: Wrapper for `grafana-cli` within RPM/DEB packages and config/homepath are now global flags (#17695)
* Feature: Introduce a grafana-cli wrapper When our users install the *nix packed version of grafana, tendency is to use the services and scripts installed as part of the package for grafana-server. These leverage the default configuration options by specifying the several default paths. This introduces a similar approach for the grafana-cli binary. We exposed it through a wrapper to ensure a proper configuration is in place. To enable that, we add the .real suffix to the original binary (grafana-cli.real) and then use a bash script named grafana-cli as the wrapper. * Make the config and homepath flags global * Introduce `configOverrides` as a global flag This flag allows us to pass configuration overrides as a string. The string follows the convention of configuration arguments separated by a space e.g. "cfg:default.paths.data=/dev/nullX cfg:default.paths.logs=/dev/nullX" Also, it is backwards compatible with similar the previous configuration method through tailing arguments. Tailing arguments take presedence over the configuration options string. * Only log configuration information in debug mode * Move the grafana-cli binary to $GRAFANA_HOME/bin As part of the package install process, we copy all the release files and directories into the grafana home directory. This includes the /bin folder from where we copied the binaries into their respective destinations. After that, the /bin folder gets deleted as we don't want to keep duplicates of the binaries around. As part of this commit, we moved the re-creation of /bin within grafana-home and the copy of the original binary (again) after the folder gets deleted.pull/17741/head
parent
e7e9d3619e
commit
2fb45eeec8
@ -0,0 +1,39 @@ |
|||||||
|
#! /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 |
||||||
|
# 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 |
||||||
|
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-cli |
||||||
|
|
||||||
|
if [ ! -x $EXECUTABLE ]; then |
||||||
|
echo "Program 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} \ |
||||||
|
--pluginsDir=${PLUGINS_DIR} \ |
||||||
|
--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}'" |
||||||
|
|
||||||
|
eval $EXECUTABLE "$OPTS" "$@" |
Loading…
Reference in new issue