1
0
Fork 0
mirror of https://github.com/librenms/docker.git synced 2026-01-23 02:14:48 +00:00

Allow disabling cron and DB migration to support >1 UI server per deployment

Support pre-cronjob hooks to enable running cronjobs conditionally (such
as on the 0th pod of a Kubernetes statefulset).
This commit is contained in:
Nash Kaminski 2022-04-29 20:18:21 +00:00
parent 74d179c244
commit eb4b035806
2 changed files with 16 additions and 6 deletions

View file

@ -33,6 +33,7 @@ DB_TIMEOUT=${DB_TIMEOUT:-60}
SIDECAR_DISPATCHER=${SIDECAR_DISPATCHER:-0}
SIDECAR_SYSLOGNG=${SIDECAR_SYSLOGNG:-0}
SIDECAR_SNMPTRAPD=${SIDECAR_SNMPTRAPD:-0}
DISABLE_DB_MIGRATE=${DISABLE_DB_MIGRATE:-0}
if [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ] || [ "$SIDECAR_SNMPTRAPD" = "1" ]; then
exit 0
@ -77,9 +78,13 @@ if [ "${counttables}" -eq "0" ]; then
echo "INSTALL=user,finish" >>${LIBRENMS_PATH}/.env
fi
echo "Updating database schema..."
lnms migrate --force --no-ansi --no-interaction
artisan db:seed --force --no-ansi --no-interaction
if [ "${DISABLE_DB_MIGRATE}" -ne "1" ] ; then
echo "Updating database schema..."
lnms migrate --force --no-ansi --no-interaction
artisan db:seed --force --no-ansi --no-interaction
else
echo "Skipping database migration and seeding as DISABLE_DB_MIGRATE is set to 1."
fi
echo "Clear cache"
artisan cache:clear --no-interaction

View file

@ -3,6 +3,7 @@
set -e
CRONTAB_PATH="/var/spool/cron/crontabs"
CRON_HOOK_PATH="/data/cron-pre-hook"
LIBRENMS_WEATHERMAP=${LIBRENMS_WEATHERMAP:-false}
LIBRENMS_WEATHERMAP_SCHEDULE=${LIBRENMS_WEATHERMAP_SCHEDULE:-*/5 * * * *}
@ -11,8 +12,12 @@ LIBRENMS_DAILY_SCHEDULE="15 0 * * *"
SIDECAR_DISPATCHER=${SIDECAR_DISPATCHER:-0}
SIDECAR_SYSLOGNG=${SIDECAR_SYSLOGNG:-0}
SIDECAR_SNMPTRAPD=${SIDECAR_SNMPTRAPD:-0}
DISABLE_CRON=${DISABLE_CRON:-0}
if [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ] || [ "$SIDECAR_SNMPTRAPD" = "1" ]; then
if [ "$SIDECAR_DISPATCHER" = "1" ] || \
[ "$SIDECAR_SYSLOGNG" = "1" ] || \
[ "$SIDECAR_SNMPTRAPD" = "1" ] || \
[ "$DISABLE_CRON" = "1" ] ; then
exit 0
fi
@ -23,11 +28,11 @@ touch ${CRONTAB_PATH}/librenms
# Cron
echo "Creating LibreNMS daily.sh cron task with the following period fields: $LIBRENMS_DAILY_SCHEDULE"
echo "${LIBRENMS_DAILY_SCHEDULE} cd /opt/librenms/ && bash daily.sh" >>${CRONTAB_PATH}/librenms
echo "${LIBRENMS_DAILY_SCHEDULE} [ -e \"${CRON_HOOK_PATH}\" ] && source \"${CRON_HOOK_PATH}\" ; cd /opt/librenms && bash daily.sh" >>${CRONTAB_PATH}/librenms
if [ "$LIBRENMS_WEATHERMAP" = "true" ] && [ -n "$LIBRENMS_WEATHERMAP_SCHEDULE" ]; then
echo "Creating LibreNMS Weathermap cron task with the following period fields: $LIBRENMS_WEATHERMAP_SCHEDULE"
echo "${LIBRENMS_WEATHERMAP_SCHEDULE} php -f /opt/librenms/html/plugins/Weathermap/map-poller.php" >>${CRONTAB_PATH}/librenms
echo "${LIBRENMS_WEATHERMAP_SCHEDULE} [ -e \"${CRON_HOOK_PATH}\" ] && source \"${CRON_HOOK_PATH}\" ; php -f /opt/librenms/html/plugins/Weathermap/map-poller.php" >>${CRONTAB_PATH}/librenms
fi
echo "Creating LibreNMS cron artisan schedule:run"