icinga2-container/etc/cont-init.d/influxdb

44 lines
1.2 KiB
Plaintext
Executable File

#!/usr/bin/with-contenv /bin/sh
set -eu
VERSION_FILE=/var/lib/influxdb/meta/package-version
. /etc/secrets
influxql() {
s6-setuidgid influxdb influx \
-username "influxdb" \
-password "$INFLUXDB_PASSWORD" \
-unsafeSsl -ssl \
-execute="$1"
}
if [ -f $VERSION_FILE ]; then
[ ! -f /backup/influxdb/meta.00 ] || [ "$(cat $VERSION_FILE)" == "$INFLUXDB_VERSION" ] && exit
s6-setuidgid influxdb influxd restore -metadir=/var/lib/influxdb/meta /backup/influxdb/
else
influxd -config /etc/influxdb/config.toml &
export pid=$!
trap "kill $pid" SIGINT SIGTERM
set +e
RET=1
while [[ $RET -ne 0 ]]; do
echo "=> Waiting for confirmation of InfluxDB service startup ..."
curl -k http://localhost:8086/ping 2> /dev/null
RET=$?
sleep 3
done
set -e
influxql "CREATE USER influxdb WITH PASSWORD '${INFLUXDB_PASSWORD}' WITH ALL PRIVILEGES"
influxql "CREATE DATABASE metrics"
influxql "CREATE USER icinga WITH PASSWORD '${INFLUXDB_ICINGA_PASSWORD}'"
influxql "GRANT ALL ON metrics TO icinga"
influxql "CREATE USER grafana WITH PASSWORD '${INFLUXDB_GRAFANA_PASSWORD}'"
influxql "GRANT READ ON metrics TO grafana"
kill $pid
fi
echo "$INFLUXDB_VERSION" > $VERSION_FILE