[P2602] Proyecto Automatización Backups: manifiesto, 4 fases, inventario 11 VMs

This commit is contained in:
Ricardo Monla
2026-02-28 09:48:20 -03:00
parent 34d14c5645
commit 24bbae45f9
2 changed files with 159 additions and 0 deletions
+9
View File
@@ -13,6 +13,8 @@
| ID | NODO | DETALLE |
| :--- | :--- | :--- |
| [✅ - SEC01 - **Refactorización ns8-candados**](#srv-ns8) | srv-ns8 | Unificación de scripts de seguridad en `tools/ns8-candados/`. |
| [✅ - BKP01 - **Refactorización ns8-bkps**](#srv-ns8) | srv-ns8 | Refactorización de `dtic-BKPs``ns8-bkps` v6.0 modular. |
| [⏳ - P2602 - **Proyecto Backups DTIC**](#srv-ns8) | srv-ns8 | Creación del proyecto P2602 — Automatización de Backups. Fase 1: Reconocimiento. |
### 📝 Resumen de Actividades
| NODO | RESUMEN INTEGRAL |
@@ -39,6 +41,13 @@
| :--- | :--- |
| ✅ 08:57 | (IA) ⚙️ Refactorización de `dtic-BKPs` (7 archivos) → `ns8-bkps` (8 archivos, modular). Config YAML reemplaza `load .rb`. Procesadores como clases (`Proxmox`, `Xen`, `Rclone`). Se eliminó loop subdirectories-first en rclone (redundante con `--delete-before`). Verificado: `--help` y `list` OK. `[Físico: 0:23 hs]` |
#### ⏳ - P2602 - Proyecto Automatización de Backups
🚀 Definición del proyecto P2602: automatizar backups vzdump vía SSH a pool Proxmox (pmox1/2/3).
| Tiempo | Descripción |
| :--- | :--- |
| ⏳ 09:46 | (IA) 📋 Creación del manifiesto P2602 (`proyectos/P2602_backups.md`). 4 fases definidas: Reconocimiento, Desarrollo proc_vzdump, Validación, Producción. Inventario de 11 VMs/CTs. Arquitectura SSH via pool master. `[Físico: 0:25 hs]` |
### Operaciones Centrales
#### 👁️ - SINC01 - Sincronización de Inicio de Jornada
+150
View File
@@ -0,0 +1,150 @@
# P2602 - Automatización de Backups DTIC UTNLR
> Manifiesto de Proyecto | Referencia: [`adn/07_proyectos.md`](../adn/07_proyectos.md)
## Identificación
| Campo | Valor |
| :--- | :--- |
| **Código** | P2602 |
| **Nombre** | Automatización de Backups DTIC UTNLR |
| **Versión** | v2601 |
| **Estado** | ⏳ En Ejecución |
| **Inicio** | 28/02/2026 |
| **Fin Estimado** | Por definir |
## Objetivo
Transformar el proceso de backup de la infraestructura virtualizada de la DTIC — actualmente manual, VM por VM, servidor por servidor — en un **sistema automatizado, desatendido y auditado**.
**Problemática actual:**
- El operador ejecuta vzdump manualmente desde la GUI de Proxmox para cada VM.
- Debe verificar y eliminar backups viejos (>6 días) antes de cada ejecución.
- Las VMs Windows no siempre responden al shutdown de Proxmox, requiriendo intervención manual.
- El proceso completo (3 servidores, ~12 VMs) puede tomar horas de atención parcial.
**Solución propuesta:**
Un procesador `vzdump` integrado en `ns8-bkps` que ejecute todo el ciclo remotamente vía SSH: limpieza → apagado graceful → backup → verificación → reporte.
## Stakeholders
| Rol | Persona | Visibilidad |
| :--- | :--- | :--- |
| **Responsable Técnico** | Lic. Ricardo MONLA | Operador directo |
| **Dirección de TIC** | (Jerárquico superior) | Dashboard asíncrono |
## Nodos Involucrados
### Infraestructura de Gestión
| Nodo | IP | Rol |
| :--- | :--- | :--- |
| [**srv-ns8**](../nodos/srv-ns8.md) | `10.0.10.8` | Centro de operaciones. Ejecuta ns8-bkps. |
| [**srv-pmox1**](../nodos/srv-pmox1.md) | `10.0.10.201` | Pool master Proxmox. Gateway SSH a todas las VMs. |
| [**srv-pmox2**](../nodos/srv-pmox2.md) | `10.0.10.202` | Nodo Proxmox secundario. |
| [**srv-pmox3**](../nodos/srv-pmox3.md) | `10.0.10.203` | Nodo Proxmox terciario (64GB RAM). |
### VMs/CTs a Respaldar
| Server | VMID | Nodo | OS | Grupo | Ventana |
| :--- | :--- | :--- | :--- | :--- | :--- |
| pmox1 | 101 | srvv-sitio | Ubuntu | linux | Libre |
| pmox1 | 102 | srvv-sitio0 | Debian | linux | Libre |
| pmox1 | 103 | srvv-dtic | Debian | linux | Libre |
| pmox1 | 104 | srvv-docs | Debian | linux | Libre |
| pmox1 | 112 | srvv-dns | Debian | linux | Libre |
| pmox2 | 105 | srvv-koha | Linux | linux | Libre |
| pmox2 | 108 | pcv-dasu2 | Win10 | windows | Libre |
| pmox3 | 111 | srvv-fenix | Legacy | windows | 🌙 00:00-06:00 |
| pmox3 | 106 | srvv-uptime | Debian | lxc | Libre |
| pmox3 | 107 | srvv-data | Debian | lxc | Libre |
| pmox3 | 113 | srvv-sitio2 | Debian | lxc | Libre |
## Herramientas
| Herramienta | Uso |
| :--- | :--- |
| **ns8-bkps v6.0** | Procesador de backups (Ruby, modular) |
| **ns8-candados** | Gestión de secretos y autorización SSH |
| **vzdump** | Herramienta nativa de backup de Proxmox |
| **SSH** | Canal de ejecución remota |
| **rclone** | Sincronización a almacenamiento cloud |
| **GNU Screen** | Ejecución desatendida |
## Fases del Proyecto
### 🔍 Fase 1 — Reconocimiento de Campo
> *"No se puede proteger lo que no se conoce."*
| ID | Estado | Tarea |
| :--- | :---: | :--- |
| R01 | 📍 | Validar acceso SSH desde srv-ns8 a cada hipervisor (pmox1/2/3). |
| R02 | 📍 | Auditar inventario real de VMs: `qm list` y `pct list` vs. nodos documentados. |
| R03 | 📍 | Verificar que vzdump funcione remotamente desde pmox1 como pool master. |
| R04 | 📍 | Documentar ventanas horarias operativas por VM (producción vs. mantenimiento). |
| R05 | 📍 | Verificar/crear fichas de nodo (`nodos/*.md`) para VMs no documentadas. |
### 🔧 Fase 2 — Desarrollo del Procesador Vzdump
| ID | Estado | Tarea |
| :--- | :---: | :--- |
| D01 | 📍 | Crear `lib/proc_vzdump.rb` con lógica de backup remoto vía SSH. |
| D02 | 📍 | Implementar política de retención (eliminar backups >N días). |
| D03 | 📍 | Implementar apagado graceful SSH para VMs Windows (`shutdown /s /t 30`). |
| D04 | 📍 | Implementar filtro de ventana horaria (skip si fuera de horario). |
| D05 | 📍 | Agregar tareas `bkps_proxmox_linux` y `bkps_proxmox_windows` al YAML. |
### 🧪 Fase 3 — Validación
| ID | Estado | Tarea |
| :--- | :---: | :--- |
| V01 | 📍 | Test con VM no-crítica (ej: srvv-docs o srvv-sitio0). |
| V02 | 📍 | Ejecutar ciclo completo bkps-proxmox-linux. |
| V03 | 📍 | Verificar retención (backups viejos eliminados correctamente). |
| V04 | 📍 | Probar shutdown SSH graceful en VM Windows. |
### 🚀 Fase 4 — Producción
| ID | Estado | Tarea |
| :--- | :---: | :--- |
| P01 | 📍 | Documentar procedimiento operativo en ADN. |
| P02 | 📍 | Crear comando compuesto `full_vzdump` (Linux + Windows). |
| P03 | 📍 | Integrar con el ciclo actual de subida a nube (rclone). |
| P04 | 📍 | Evaluar cron/systemd timer para ejecución programada. |
## Arquitectura
```
┌─────────────────────────────────────────────────┐
│ srv-ns8 (10.0.10.8) │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ ns8-bkps.rb │ │ ns8-candados │ │
│ │ Vzdump │ │ (RSA auth) │ │
│ └──────┬───────┘ └──────┬───────┘ │
│ │ SSH (llave) │ │
│ └────────┬─────────┘ │
│ ▼ │
│ ┌────────────────────────┐ │
│ │ srv-pmox1 (.201) │ │
│ │ Pool Master │ │
│ │ │ │
│ │ vzdump → zfsDISCO1 │ │
│ │ ├── pmox1 VMs │ │
│ │ ├── pmox2 VMs │ │
│ │ └── pmox3 VMs │ │
│ └────────────────────────┘ │
│ │ │
│ ┌───────┴───────┐ │
│ ▼ ▼ │
│ Procesamiento Subida Nube │
│ (tar.gz local) (rclone → OneDrive) │
└─────────────────────────────────────────────────┘
```
## Referencias
- **Bitácoras**: [28/02](../bitacoras/2026-02-28.md)
- **ADN**: [Ontología](../adn/01_ontologia.md) | [Proyectos](../adn/07_proyectos.md)
- **Herramienta**: [ns8-bkps](../tools/ns8-bkps/ns8-bkps.rb) | [ns8-candados](../tools/ns8-candados/ns8-candados.rb)
- **Proyecto Relacionado**: [P2601 DASUTEN](P2601_dasuten.md) (srv-dasu backups)