33 lines
1.1 KiB
Bash
Executable File
33 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Wrapper do bezobsługowego uruchamiania playbook_autopilot.yml z crona.
|
|
# - flock zapobiega nakładającym się uruchomieniom (np. jeśli poprzedni przebieg
|
|
# jeszcze trwa, gdy odpala się kolejny).
|
|
# - Wynik (stdout+stderr) trafia z timestampem do LOG_FILE.
|
|
# - Reboot NIE jest wykonywany automatycznie — playbook_fleet_report.yml tylko
|
|
# zgłasza, które hosty go wymagają (patrz reports/).
|
|
set -uo pipefail
|
|
|
|
ANSIBLE_DIR="/root/ansible"
|
|
LOCK_FILE="/var/run/ansible-autopilot.lock"
|
|
LOG_FILE="/var/log/ansible-autopilot.log"
|
|
TARGET_GROUP="${TARGET_GROUP:-Update-now}"
|
|
|
|
exec 200>"${LOCK_FILE}"
|
|
if ! flock -n 200; then
|
|
echo "$(date '+%Y-%m-%d %H:%M:%S') [run-autopilot] Poprzedni przebieg wciąż trwa, pomijam." >>"${LOG_FILE}"
|
|
exit 0
|
|
fi
|
|
|
|
cd "${ANSIBLE_DIR}"
|
|
|
|
{
|
|
echo "===== $(date '+%Y-%m-%d %H:%M:%S') [run-autopilot] START (target: ${TARGET_GROUP}) ====="
|
|
ansible-playbook -i patchmon_inventory.yml \
|
|
playbooks/playbook_autopilot.yml \
|
|
--limit "${TARGET_GROUP},localhost"
|
|
rc=$?
|
|
echo "===== $(date '+%Y-%m-%d %H:%M:%S') [run-autopilot] KONIEC (exit code: ${rc}) ====="
|
|
} >>"${LOG_FILE}" 2>&1
|
|
|
|
exit "${rc}"
|