Version 2.3.0: Configuration externe pour notifications
All checks were successful
Tests et Vérifications / Tests unitaires BATS (push) Successful in 16s
Tests et Vérifications / Vérification ShellCheck (push) Successful in 7s
Tests et Vérifications / Vérification syntaxe Bash (push) Successful in 3s
Tests et Vérifications / Résumé des tests (push) Successful in 1s
All checks were successful
Tests et Vérifications / Tests unitaires BATS (push) Successful in 16s
Tests et Vérifications / Vérification ShellCheck (push) Successful in 7s
Tests et Vérifications / Vérification syntaxe Bash (push) Successful in 3s
Tests et Vérifications / Résumé des tests (push) Successful in 1s
- Fichier de config externe /etc/zfs-nfs-replica/config - Valeurs par défaut dans le script si config absente - Fichier config.example avec exemples services Apprise - Plus besoin de modifier le script pour configurer notifications - Amélioration gestion erreurs venv (vérification pip, messages clairs)
This commit is contained in:
parent
263c1a0556
commit
cd34205020
2 changed files with 93 additions and 30 deletions
|
|
@ -24,7 +24,7 @@
|
|||
set -euo pipefail
|
||||
|
||||
# Configuration
|
||||
SCRIPT_VERSION="2.2.0"
|
||||
SCRIPT_VERSION="2.3.0"
|
||||
REPO_URL="https://forgejo.tellserv.fr/Tellsanguis/zfs-sync-nfs-ha"
|
||||
SCRIPT_URL="${REPO_URL}/raw/branch/main/zfs-nfs-replica.sh"
|
||||
SCRIPT_PATH="${BASH_SOURCE[0]}"
|
||||
|
|
@ -61,29 +61,23 @@ LOG_RETENTION_DAYS=14
|
|||
HEALTH_CHECK_MIN_FREE_SPACE=5 # Pourcentage minimum d'espace libre
|
||||
HEALTH_CHECK_ERROR_COOLDOWN=3600 # Anti-ping-pong: 1 heure en secondes
|
||||
|
||||
# Configuration des notifications via Apprise
|
||||
# Configuration des notifications via Apprise (valeurs par défaut)
|
||||
# Ces valeurs peuvent être surchargées par /etc/zfs-nfs-replica/config
|
||||
NOTIFICATION_ENABLED=true # Activer/désactiver les notifications
|
||||
NOTIFICATION_MODE="INFO" # "INFO" (toutes les notifs) ou "ERROR" (erreurs uniquement)
|
||||
|
||||
# URLs Apprise (séparées par des espaces) - Exemples:
|
||||
# Discord: discord://webhook_id/webhook_token
|
||||
# Telegram: tgram://bot_token/chat_id
|
||||
# Gotify: gotify://hostname/token
|
||||
# Email: mailto://user:pass@smtp.domain.com
|
||||
# Ntfy: ntfy://topic ou ntfy://hostname/topic
|
||||
# Slack: slack://TokenA/TokenB/TokenC
|
||||
# Voir https://github.com/caronc/apprise pour plus de services
|
||||
APPRISE_URLS="" # Configurer vos URLs ici
|
||||
|
||||
# Exemples d'utilisation:
|
||||
# APPRISE_URLS="discord://webhook_id/token"
|
||||
# APPRISE_URLS="discord://id/token gotify://server/token"
|
||||
# APPRISE_URLS="mailto://user:pass@gmail.com tgram://bot_token/chat_id"
|
||||
APPRISE_URLS="" # URLs Apprise séparées par des espaces
|
||||
|
||||
# Configuration environnement Python pour Apprise
|
||||
APPRISE_VENV_DIR="${STATE_DIR}/venv" # Répertoire du virtualenv Python
|
||||
APPRISE_BIN="${APPRISE_VENV_DIR}/bin/apprise" # Binaire Apprise dans le venv
|
||||
|
||||
# Charger la configuration externe si elle existe
|
||||
CONFIG_FILE="/etc/zfs-nfs-replica/config"
|
||||
if [[ -f "$CONFIG_FILE" ]]; then
|
||||
# shellcheck source=/dev/null
|
||||
source "$CONFIG_FILE"
|
||||
fi
|
||||
|
||||
# Initialiser le répertoire de logs
|
||||
init_logging() {
|
||||
mkdir -p "$LOG_DIR"
|
||||
|
|
@ -137,22 +131,21 @@ setup_apprise_venv() {
|
|||
if [[ ! -d "$APPRISE_VENV_DIR" ]]; then
|
||||
log "info" "Création de l'environnement Python virtuel pour Apprise..."
|
||||
|
||||
# Créer le virtualenv (python3 et venv sont préinstallés sur Proxmox)
|
||||
if ! python3 -m venv "$APPRISE_VENV_DIR" 2>/dev/null; then
|
||||
# Créer le virtualenv
|
||||
if ! python3 -m venv "$APPRISE_VENV_DIR" 2>&1 | grep -q "not created successfully"; then
|
||||
log "info" "✓ Virtualenv créé: ${APPRISE_VENV_DIR}"
|
||||
else
|
||||
log "error" "Échec de la création du virtualenv"
|
||||
log "error" "Installer le paquet: apt install python3-venv ou python3.13-venv"
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
log "info" "✓ Virtualenv créé: ${APPRISE_VENV_DIR}"
|
||||
|
||||
# Installer pip dans le venv (pas installé par défaut sur Proxmox)
|
||||
log "info" "Installation de pip dans le virtualenv..."
|
||||
if ! "${APPRISE_VENV_DIR}/bin/python" -m ensurepip --upgrade >/dev/null 2>&1; then
|
||||
log "error" "Échec de l'installation de pip"
|
||||
return 1
|
||||
fi
|
||||
|
||||
log "info" "✓ Pip installé dans le virtualenv"
|
||||
# Vérifier que pip existe dans le venv
|
||||
if [[ ! -f "${APPRISE_VENV_DIR}/bin/pip" ]]; then
|
||||
log "error" "Pip non trouvé dans le virtualenv"
|
||||
log "error" "Le venv n'a pas été créé correctement. Supprimer ${APPRISE_VENV_DIR} et réessayer."
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Vérifier si Apprise est installé dans le venv
|
||||
|
|
@ -160,7 +153,7 @@ setup_apprise_venv() {
|
|||
log "info" "Installation d'Apprise dans le virtualenv..."
|
||||
|
||||
# Installer Apprise via pip du venv
|
||||
if "${APPRISE_VENV_DIR}/bin/pip" install --quiet apprise 2>/dev/null; then
|
||||
if "${APPRISE_VENV_DIR}/bin/pip" install --quiet apprise; then
|
||||
log "info" "✓ Apprise installé avec succès"
|
||||
else
|
||||
log "error" "Échec de l'installation d'Apprise"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue