docs(dr): --help in deploy.sh + referinte in indexul master

deploy.sh era documentat doar in README-ul VM 109; nu aparea nicaieri in
proxmox/README.md, deci nu il gaseai daca nu stiai deja ca exista. Iar
`deploy.sh --help` raspundea cu o singura linie pe stderr si exit 2 - o
unealta documentata trebuie sa se poata explica singura.

- deploy.sh: --help / -h cu utilizare completa (optiuni, ce verifica inainte
  sa copieze, distributia pe noduri si de ce e asimetrica, ce face --guest cu
  VM 109 oprit, si faptul ca nu atinge cron-ul). Exit 0 pentru --help, exit 2
  cu mesaj pe stderr pentru optiune necunoscuta.
- proxmox/README.md: deploy.sh, vm109-patch-window.sh si check_servicing.ps1
  in tabelul de fisiere, bloc "Deploy modificari" in Quick Start, plus intrari
  in "Vreau sa..." pentru deploy, pentru patching si pentru simptomul
  "Restore failed fara log RMAN".
- README VM 109: --help in lista de comenzi si un exemplu de output --check,
  ca sa se vada diferenta dintre "DIFERA" si "LIPSESTE pe nod".

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BhQBTegE4PiMPPaapLHjkc
This commit is contained in:
Marius
2026-08-08 17:46:08 +03:00
parent d19c649ee9
commit 7b0224c276
3 changed files with 88 additions and 1 deletions

View File

@@ -87,12 +87,72 @@ DO_NODES=true
DO_GUEST=false
CHECK_ONLY=false
usage() {
cat <<'HELP'
deploy.sh — copiază scripturile DR din repo pe destinații, cu verificări.
UTILIZARE
./deploy.sh [OPȚIUNE]
OPȚIUNI
(fără) Deploy pe nodurile Proxmox (pvemini + pveelite).
--check Nu copiază nimic; raportează ce diferă sau lipsește.
Rulează-l întâi, mereu.
--guest Noduri + scripturile PowerShell pe VM 109.
--guest-only Doar VM 109.
--help, -h Textul ăsta.
CE VERIFICĂ ÎNAINTE SĂ COPIEZE
* script în execuție — refuză suprascrierea. bash citește scriptul
incremental de pe disc, deci suprascrierea unui test DR în curs
(~18 min) corupe execuția.
* CRLF — bash pe Linux răspunde "$'\r': command not found".
* bash -n local, apoi încă o dată pe nod după copiere (prinde
transferurile trunchiate).
* md5 — sare peste fișierele identice, ca output-ul să arate doar
ce s-a schimbat efectiv.
DISTRIBUȚIA PE NODURI (asimetrică intenționat — nu o "repara")
ambele weekly-dr-test-proxmox.sh, vm109-patch-window.sh,
vm109-watchdog.sh — cluster-aware, urmăresc VM 109 după
un failover HA; lipsa de pe un nod = testul dispare tăcut.
Plus check_servicing.ps1 / install_updates.ps1, ca sursă
pentru deploy-ul către guest.
pveelite oracle-backup-monitor, zfs-replicate, nightly-mirror —
acolo trăiește datasetul ZFS oracle-backups.
pvemini pveelite-down-alert, failover-dr-to-pvemini,
failback-dr-to-pveelite — reacționează la CĂDEREA lui
pveelite. Pe pveelite ar fi inutile (nodul e jos) și ar
înlesni exact split-brain-ul pe care încearcă să-l prevină.
DESPRE GUEST (--guest)
VM 109 e oprit între teste, deci scriptul îl pornește, setează
vm109-debug.flag (altfel watchdog-ul îl oprește la 60 min), copiază
prin pveelite ca jump host, verifică funcțional check_servicing.ps1
și oprește VM-ul la loc. Dacă VM 109 rula deja, avertizează și lasă
5 secunde pentru Ctrl-C.
CE NU FACE
Nu atinge cron-ul. După adăugarea unui script nou:
ssh root@10.0.20.202 'crontab -l | grep -E "dr-test|patch-window|watchdog"'
CONTEXT
proxmox/vm109-windows-dr/README.md, secțiunea "Deploy".
HELP
}
case "${1:-}" in
--guest) DO_GUEST=true ;;
--guest-only) DO_GUEST=true; DO_NODES=false ;;
--check) CHECK_ONLY=true ;;
--help|-h) usage; exit 0 ;;
"") ;;
*) echo "Utilizare: $0 [--guest|--guest-only|--check]" >&2; exit 2 ;;
*)
echo "Opțiune necunoscută: $1" >&2
echo >&2
usage >&2
exit 2
;;
esac
red() { printf '\033[0;31m%s\033[0m\n' "$*"; }