diff --git a/install.sh b/install.sh index e995c8e..5db006e 100755 --- a/install.sh +++ b/install.sh @@ -21,6 +21,7 @@ # ./install.sh # интерактивный опросник # ./install.sh --preset 3 # неинтерактивно, пресет 3 # ./install.sh --preset 3 --yes # без подтверждений (скрипты/CI) +# ./install.sh --preset 2 --monitoring --yes # + профиль monitoring (Grafana/Prometheus) set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" @@ -33,6 +34,12 @@ VERSION_FILE="$SCRIPT_DIR/VERSION" PRESET="" ASSUME_YES=0 +# По умолчанию 0: `set_env_var COMPOSE_PROFILES` ниже (по каждому пресету) +# перезаписывает значение целиком, затирая `media,monitoring` из +# .env.example — без этого флага мониторинг остаётся не поднятым, пока +# оператор не допишет профиль вручную (см. .forcc/deploy/SESSION4-FINDINGS.md, +# ГРАБЛИ 2). +MONITORING=0 while [ $# -gt 0 ]; do case "$1" in @@ -44,6 +51,10 @@ while [ $# -gt 0 ]; do ASSUME_YES=1 shift ;; + --monitoring) + MONITORING=1 + shift + ;; -h|--help) grep -E '^#( |$)' "$0" | sed 's/^#//' exit 0 @@ -466,6 +477,17 @@ case "$PRESET" in ;; esac +# --monitoring: дописать профиль monitoring к тому, что выставил пресет +# выше (set_env_var перезаписывает значение целиком, поэтому мониторинг +# нельзя было получить только сменой пресета — см. комментарий у MONITORING). +if [ "$MONITORING" = "1" ]; then + current_profiles="$(get_env_var COMPOSE_PROFILES)" + case ",${current_profiles}," in + *,monitoring,*) ;; + *) set_env_var COMPOSE_PROFILES "${current_profiles},monitoring" ;; + esac +fi + echo "[install] .env обновлён (пресет ${PRESET}, COMPOSE_PROFILES=$(get_env_var COMPOSE_PROFILES))" echo "[install] Проверяю .env на dev-плейсхолдеры перед подъёмом стека" @@ -562,6 +584,23 @@ ADMIN_EMAIL="$(get_env_var SEED_ADMIN_EMAIL)" ADMIN_PASSWORD="$(get_env_var SEED_ADMIN_PASSWORD)" GRAFANA_USER="$(get_env_var GRAFANA_ADMIN_USER)" +if [ "$MONITORING" = "1" ]; then + MONITORING_BLOCK="$(cat <