#!/bin/bash # Handle Keepalived state changes # This script should be deployed to /usr/local/bin/keepalived-notify.sh on Proxmox hosts set -euo pipefail STATE="${1:-unknown}" LOGFILE="/var/log/keepalived-notify.log" TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S') VIP="${VIP:-192.168.11.166}" # Ensure log directory exists mkdir -p "$(dirname "$LOGFILE")" case "$STATE" in "master") echo "[$TIMESTAMP] Transitioned to MASTER - This node now owns VIP $VIP" >> "$LOGFILE" # Optionally: Start services, send alerts, etc. # Example: Send alert # echo "NPMplus HA: Node $(hostname) is now MASTER" | mail -s "NPMplus HA Master" admin@example.com ;; "backup") echo "[$TIMESTAMP] Transitioned to BACKUP - Standby mode" >> "$LOGFILE" ;; "fault") echo "[$TIMESTAMP] Transitioned to FAULT - Health check failed" >> "$LOGFILE" # Optionally: Send critical alerts # echo "NPMplus HA: Node $(hostname) is in FAULT state!" | mail -s "NPMplus HA Fault" admin@example.com ;; *) echo "[$TIMESTAMP] Unknown state: $STATE" >> "$LOGFILE" ;; esac