Migración dtic-DASUTEN a estándar A04: - A04_dtic-DASUTEN.md: Manifiesto creado - A04.P001 a A04.P005: Planes renombrados de P2601.* - _hist/_hist_P2601_dasuten.md: Legacy archivado Migración dtic-BKPs a estándar A03: - A03_dtic-BKPs.md: Manifiesto creado - A03.P001, A03.P002: Planes migrados - docs/ambito/dtic-BKPs/: Nueva estructura Herramientas ADN nuevas: - adn/tools/bkps/: BKPs migrado a tools ADN - adn/tools/cli/dron.rb: Vigía de tareas largas - adn/tools/cli/copiloto.rb: Asistente CLI - adn/tools/cli/novato.rb: CLI de aprendizaje Limpieza: - dtic-BKPs/ → _hist/dtic-BKPs/ (legacy archivado) - adn/tools/cli/backup.rb → _hist/ (migrado a bkps.rb) Otros: - nodos/pcv-dasu1.md, srvv-data.md, srvv-nginx-rm.md: Actualizados - adn/tools/core/conciliador.rb: Mejoras - adn/tools/w-zombi/data/cmd.json: Actualizado Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
109 lines
6.1 KiB
Markdown
109 lines
6.1 KiB
Markdown
# Plan: Migración dtic-BKPs a Tools ADN
|
|
|
|
> **Grupo de Trabajo:** dtic-BKPs (Respaldos de Infraestructura)
|
|
|
|
**Código:** A03.P001
|
|
**Fecha:** 06 de abril de 2026
|
|
**Autor:** Sistema ADN
|
|
**Versión:** 1.0
|
|
**Estado:** ✅ COMPLETADO
|
|
|
|
## 📋 Resumen Ejecutivo
|
|
|
|
La herramienta `dtic-BKPs v6.0` actualmente reside en el directorio raíz del repositorio (`dtic-BKPs/`) como un sistema independiente con su propio entrypoint (`dtic-BKPs.rb`), configuración YAML, librería interna (`lib/`) y logs propios. Esto contradice el principio de **Armonía Integral** del ADN, donde todas las herramientas deben integrarse bajo `./adn/tools/run <subcomando>`.
|
|
|
|
Ya existe un intento previo parcial en `adn/tools/cli/backup.rb` (25KB) y `adn/tools/cli/backup/configurador.rb`, pero tiene bugs (el `--help` falla con `undefined local variable or method 'mostrar_ayuda'`).
|
|
|
|
El objetivo es **completar la migración** integrando la lógica probada de `dtic-BKPs v6.0` en el ecosistema ADN, preservando la configuración YAML y los procesadores funcionales.
|
|
|
|
## 🎯 Objetivo
|
|
|
|
Migrar `dtic-BKPs/` completamente a `adn/tools/cli/` para que:
|
|
1. Se invoque vía `./adn/tools/run bkps <subcomando>` (consistente con el ecosistema).
|
|
2. La configuración YAML se centralice en `adn/tools/config/bkps.yml`.
|
|
3. Los procesadores (Proxmox, Xen, Rclone) se integren como módulos ADN.
|
|
4. Los logs se unifiquen con el sistema de logging ADN (`adn/tools/core/logger`).
|
|
5. El directorio `dtic-BKPs/` raíz quede deprecado y eventualmente archivado.
|
|
|
|
## 📊 Inventario Actual
|
|
|
|
### Fuente: `dtic-BKPs/` (a migrar)
|
|
| Archivo | Tamaño | Función |
|
|
| :--- | :--- | :--- |
|
|
| `dtic-BKPs.rb` | 5.6 KB | Entrypoint, dispatcher, menú, auto-screen |
|
|
| `dtic-BKPs.yml` | 2.3 KB | Configuración de tareas y comandos |
|
|
| `lib/config.rb` | 1.7 KB | Parser de configuración YAML |
|
|
| `lib/logger.rb` | 1.7 KB | Logger propio (duplica ADN Logger) |
|
|
| `lib/menu.rb` | 5.9 KB | Menú interactivo con auto-avance |
|
|
| `lib/proc_proxmox.rb` | 5.0 KB | Procesador de dumps Proxmox |
|
|
| `lib/proc_xen.rb` | 2.7 KB | Procesador de backups XenServer |
|
|
| `lib/sync_rclone.rb` | 1.5 KB | Sincronización rclone |
|
|
|
|
### Destino: `adn/tools/cli/` (existente parcial)
|
|
| Archivo | Tamaño | Estado |
|
|
| :--- | :--- | :--- |
|
|
| `backup.rb` | 25.5 KB | ⚠️ Incompleto, `--help` roto |
|
|
| `backup/configurador.rb` | 1.2 KB | ⚠️ Solo configurador |
|
|
|
|
## 📅 Fases de Implementación
|
|
|
|
### ✅ FASE 1: Auditoría y Diagnóstico (Completada 2026-04-06)
|
|
- **1.1:** ✅ Analizado `adn/tools/cli/backup.rb` — 25KB con bugs (`mostrar_ayuda` undefined).
|
|
- **1.2:** ✅ Comparado con `dtic-BKPs v6.0` — funcionalidad probada y estable.
|
|
- **1.3:** ✅ Dependencias verificadas: rclone ✔, pv ✔, screen ✔.
|
|
|
|
### ✅ FASE 2: Migración a adn/tools/bkps/ (Completada 2026-04-06)
|
|
- **2.1:** ✅ Creado `adn/tools/bkps/bkps.rb` — CLI `SubcomandoBkps` con subcomandos: help, list, run, status, menu.
|
|
- **2.2:** ✅ Migrados procesadores a `adn/tools/bkps/lib/` — proc_proxmox.rb, proc_xen.rb, sync_rclone.rb, config.rb, menu.rb.
|
|
- **2.3:** ✅ Configuración YAML copiada a `adn/tools/bkps/bkps.yml`.
|
|
- **2.4:** ✅ Logger propio reemplazado por ADN Logger nativo.
|
|
- **2.5:** ✅ Dispatcher (`adn/tools/run`) actualizado con ruta `'bkps'` → `ADN::SubcomandoBkps`.
|
|
|
|
### ✅ FASE 3: Auditoría de backup.rb legacy (Completada 2026-04-06)
|
|
|
|
Análisis de `adn/tools/cli/backup.rb` (659 líneas, 25KB) — funcionalidades **diferentes** a las de dtic-BKPs v6.0:
|
|
|
|
| Funcionalidad | Descripción | Asimilar? |
|
|
| :--- | :--- | :---: |
|
|
| `ejecutar_backup(nodo)` | Backup remoto individual vía vzdump+SSH+candados, auto-detección VMID/host desde nodos/*.md | ✅ |
|
|
| Bitácora-First integrado | Auto-crear/actualizar evento en DB durante ejecución | ✅ |
|
|
| `comando_estados` | Consulta en tiempo real de tareas vzdump en cluster Proxmox vía API JSON | ✅ |
|
|
| `comando_sanear` | Saneamiento con retención configurable, exclusiones interactivas, borrado remoto | ✅ |
|
|
| `predeterminar` | Persistencia de defaults vía Configurador | ⏳ |
|
|
| `auto_reconciliar_bitacora` | Cierre automático de entradas pendientes cruzando con API Proxmox | ✅ |
|
|
|
|
**Bugs encontrados:** `mostrar_ayuda` mal anidado (fuera de scope private), `end` desbalanceados (L620-658).
|
|
|
|
### ✅ FASE 4: Asimilación de funcionalidades de backup.rb (Completada 2026-04-06)
|
|
- **4.1:** ✅ `bkps backup <nodo>` — backup remoto individual vía vzdump+SSH+candados con auto-detección de VMID/host.
|
|
- **4.2:** ✅ `bkps estados` — consulta estado Proxmox en tiempo real vía API JSON.
|
|
- **4.3:** ✅ `bkps sanear --dias N` — saneamiento con retención configurable, `--dry-run`, borrado remoto.
|
|
- **4.4:** ✅ Auto-cierre de bitácora implementado como tool ADN `dron` (reutilizable para cualquier ámbito).
|
|
|
|
### ✅ FASE 5: Validación, Documentación y Deprecación (Completada 2026-04-06)
|
|
- **5.1:** ✅ Pipeline C4 ejecutado exitosamente vía `./adn/tools/run bkps run C4 --batch` (23 sets, ~26min).
|
|
- **5.2:** ✅ Armonía Integral aplicada: ámbito, contexto y plan actualizados.
|
|
- **5.3:** ✅ Archivado: `dtic-BKPs/` → `_hist/dtic-BKPs/`, `backup.rb` → `adn/tools/cli/_hist/`.
|
|
|
|
## 🛠 Estructura Final
|
|
|
|
```
|
|
adn/tools/bkps/ # Tool principal (A03)
|
|
├── bkps.rb # CLI (11 subcomandos)
|
|
├── bkps.yml # Configuración YAML (tareas, retención 3 tiers)
|
|
├── cron-bkps.sh # Wrapper cron con lockfile + dron
|
|
└── lib/
|
|
├── config.rb # Parser YAML
|
|
├── menu.rb # Menú TUI interactivo
|
|
├── proc_proxmox.rb # Procesador Proxmox
|
|
├── proc_xen.rb # Procesador XEN
|
|
└── sync_rclone.rb # Sincronización rclone
|
|
|
|
adn/tools/cli/dron.rb # Dron de tareas largas (reutilizable)
|
|
```
|
|
|
|
## 📌 Notas
|
|
- Pipeline C4 ejecutado exitosamente el 2026-04-06 (23 sets Proxmox, ~26min).
|
|
- Tool `dron` creada como herramienta ADN genérica: `./adn/tools/run dron {lanzar|vigilar|estado|limpiar}`.
|
|
- Legacy archivado en `_hist/dtic-BKPs/` (standalone) y `adn/tools/cli/_hist/backup.rb` (intento previo).
|