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:
@@ -331,6 +331,9 @@ ssh claude@100.95.55.51
|
||||
| `scripts/rman_backup*.bat` | Scripturi RMAN pentru backup Windows |
|
||||
| `scripts/transfer_backups.ps1` | Transfer backup-uri către storage |
|
||||
| `scripts/*-proxmox.sh` | Scripturi monitorizare din Proxmox |
|
||||
| `scripts/deploy.sh` | **Deploy scripturi pe noduri + VM 109** (rulează din repo) |
|
||||
| `scripts/vm109-patch-window.sh` | Fereastră lunară Windows Update pe VM 109 |
|
||||
| `scripts/check_servicing.ps1` | Guard servicing înainte de restore (guest) |
|
||||
|
||||
**Quick Start:**
|
||||
```bash
|
||||
@@ -341,6 +344,16 @@ ssh claude@100.95.55.51
|
||||
/mnt/e/proiecte/ROMFASTSQL/proxmox/vm109-windows-dr/scripts/weekly-dr-test-proxmox.sh
|
||||
```
|
||||
|
||||
**Deploy modificări** (scripturile de mai sus rulează pe noduri, nu din repo):
|
||||
```bash
|
||||
cd proxmox/vm109-windows-dr/scripts
|
||||
./deploy.sh --check # ce diferă față de noduri, fără să copieze
|
||||
./deploy.sh # copiază pe pvemini + pveelite
|
||||
./deploy.sh --guest # + scripturile PowerShell pe VM 109
|
||||
./deploy.sh --help # distribuția pe noduri și ce verifică
|
||||
```
|
||||
Detalii: `vm109-windows-dr/README.md`, secțiunea **Deploy**.
|
||||
|
||||
---
|
||||
|
||||
### VM 201 - Windows 11
|
||||
@@ -458,6 +471,9 @@ ssh root@10.0.20.201 "qm snapshot 302 pre-test --description 'Before ROA test'"
|
||||
- **Configurez RMAN backup** → `vm109-windows-dr/README.md`
|
||||
- **Monitorizez backup-uri** → `vm109-windows-dr/scripts/oracle-backup-monitor-proxmox.sh`
|
||||
- **Test DR săptămânal** → `vm109-windows-dr/scripts/weekly-dr-test-proxmox.sh`
|
||||
- **Am modificat un script și vreau să ajungă pe noduri** → `vm109-windows-dr/scripts/deploy.sh --check`, apoi fără `--check`
|
||||
- **Testul DR a picat cu „Restore failed" fără log RMAN** → `vm109-windows-dr/README.md`, secțiunea *Windows Update pe VM 109*
|
||||
- **Patching Windows pe VM 109** → `vm109-windows-dr/scripts/vm109-patch-window.sh` (prima duminică, 03:00)
|
||||
- **Plan testare DR** → `vm109-windows-dr/docs/PLAN_TESTARE_MONITORIZARE.md`
|
||||
|
||||
### Windows VM 302 - Test ROA Setup (XE + SE)
|
||||
|
||||
@@ -338,6 +338,17 @@ cd proxmox/vm109-windows-dr/scripts
|
||||
./deploy.sh # doar nodurile Proxmox
|
||||
./deploy.sh --guest # noduri + scripturile PowerShell pe VM 109
|
||||
./deploy.sh --guest-only # doar VM 109
|
||||
./deploy.sh --help # distribuția pe noduri, verificările, contextul
|
||||
```
|
||||
|
||||
Rulează `--check` întâi, mereu: e singurul mod ieftin de a vedea dacă un nod a rămas în urmă. Output tipic după un deploy reușit — doar `=` (identic) pe toate liniile:
|
||||
|
||||
```
|
||||
--- 10.0.20.202 ---
|
||||
= weekly-dr-test-proxmox.sh (identic)
|
||||
= vm109-patch-window.sh (identic)
|
||||
~ oracle-backup-monitor-proxmox.sh (DIFERĂ) <- de copiat
|
||||
~ nightly-backup-mirror.sh (LIPSEȘTE pe nod) <- niciodată deployat
|
||||
```
|
||||
|
||||
### Distribuția pe noduri — asimetrică intenționat
|
||||
|
||||
@@ -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' "$*"; }
|
||||
|
||||
Reference in New Issue
Block a user