diff --git a/bitacoras/2026-02-28.md b/bitacoras/2026-02-28.md index 86284aeb..45d64e25 100644 --- a/bitacoras/2026-02-28.md +++ b/bitacoras/2026-02-28.md @@ -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 diff --git a/proyectos/P2602_backups.md b/proyectos/P2602_backups.md new file mode 100644 index 00000000..6a7930c4 --- /dev/null +++ b/proyectos/P2602_backups.md @@ -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)