🔧 Core & Ámbitos: Commit general de mejoras y nodos pendientes

- Docs: A03 BKP updates y nuevo manifiesto nodo dasu-sql4
- W-Zombi: Nuevas rutas explícitas (exec.rb, ps1.rb) y estado stateful (cmd.json)
- Bóveda: candados/.boveda.json modificados al agregar nuevos servidores (sql2, sql3)
- Cleanup: Remover token .session de candados
- Core API: Fixes en Bitacora_db
This commit is contained in:
Ricardo Monla
2026-04-09 22:23:00 -03:00
parent 5023d7491e
commit 12aede9d5e
9 changed files with 102 additions and 10 deletions
+2 -1
View File
@@ -11,5 +11,6 @@
"dominio-utnlarioja.intranet:monlaricardo": "eyJpdiI6InFRQ3VNYWlVSHlKMURNdzciLCJ0YWciOiJ1a3hESUZlaEt6enV3UXZxWUFrWXhRPT0iLCJkYXRhIjoiNVNaekdxVyt6dE5WQmhPaXF3PT0ifQ==",
"deepseek_key": "eyJpdiI6InRCc2IvL3J4SGNsejgvL04iLCJ0YWciOiJBbjRlMTNXNlZzUGhNSWowSUU1a01nPT0iLCJkYXRhIjoiQXR4azk1aU9sb2QydzNwa0FMTHpjVkJKQTIvZU4wY1U2V2crK3NBbVd1UnRmUGh6In0=",
"srv-ns8:rmonla": "eyJpdiI6IlJ4cHZkbFpJQWVsTTl3T1YiLCJ0YWciOiJ3WTZGMDEvNHNsZm1wZm5jMEF4Q1lBPT0iLCJkYXRhIjoibFljUHRYTm44bUxvQjhCa2tBPT0ifQ==",
"dasu-sql3:Administrador": "eyJpdiI6IlRiMDh3U1N2aVhTcDYzbzciLCJ0YWciOiI5NVNyUDFlMXlrM0dGRlNqUXhLbEt3PT0iLCJkYXRhIjoiVkp2V09zSjczcS96UktTSlZTOFdBdz09In0="
"dasu-sql3:Administrador": "eyJpdiI6IlRiMDh3U1N2aVhTcDYzbzciLCJ0YWciOiI5NVNyUDFlMXlrM0dGRlNqUXhLbEt3PT0iLCJkYXRhIjoiVkp2V09zSjczcS96UktTSlZTOFdBdz09In0=",
"srvv-nginx-rm:rmonla": "eyJpdiI6ImFsQnk5UjhLaDFYWHJsWnciLCJ0YWciOiJJaEtCS215ekkwYVdFR0ZHNzFVN0VBPT0iLCJkYXRhIjoiUkcvSS9sMjhoQnFpRmZobFZBPT0ifQ=="
}
-1
View File
@@ -1 +0,0 @@
1775682230
+21 -5
View File
@@ -473,7 +473,11 @@ module BitacorasDB
inicio_horario = Time.new(2000, 1, 1, 8, 0, 0)
fin_horario = Time.new(2000, 1, 1, 13, 0, 0)
if modo_bitacora == 'P' && inicio_time >= fin_horario
# Ensure we are comparing Times
require 'time'
inicio_t = inicio_time.is_a?(String) ? Time.parse(inicio_time) : inicio_time
if modo_bitacora == 'P' && inicio_t >= fin_horario
modo = 'R' # Fuera de horario presencial
else
modo = modo_bitacora
@@ -670,9 +674,15 @@ module BitacorasDB
where_clause_events = if conditions.empty?
''
else
# Reemplazar referencias a e. por ev. y eliminar condiciones que no aplican a events
conditions_events = conditions.reject { |c| c.include?('bitacora_id') || c.include?('tema_id') || c.include?('ambito_id') }
"WHERE #{conditions_events.join(' AND ').gsub('e.', 'ev.')}"
# Adaptar condiciones para events: traducir referencias y eliminar las que no aplican
conditions_events = conditions.map do |c|
if c.include?('e.ambito_id')
c.gsub('e.ambito_id', 'n.ambito_id')
else
c.gsub('e.', 'ev.')
end
end.reject { |c| c.include?('bitacora_id') || c.include?('tema_id') }
conditions_events.empty? ? '' : "WHERE #{conditions_events.join(' AND ')}"
end
# Unificar eventos de tabla events y entradas para mostrar todo junto
@@ -1045,7 +1055,7 @@ module BitacorasDB
end
# Actualizar un evento existente
def actualizar_evento(id, descripcion: nil, estado: nil, fin: nil)
def actualizar_evento(id, descripcion: nil, estado: nil, fin: nil, metadata: nil)
set_clauses = []
values = []
i = 1
@@ -1068,6 +1078,12 @@ module BitacorasDB
i += 1
end
if metadata
set_clauses << "metadata = $#{i}"
values << metadata.to_json
i += 1
end
return nil if set_clauses.empty?
set_clauses << "updated_at = NOW()"
+1 -1
View File
@@ -1 +1 @@
{"id":2,"cmd":"$ErrorActionPreference='Stop'; Write-Host '=== Instalando QEMU-GA ==='; msiexec /i D:\\guest-agent\\qemu-ga-x86_64.msi /quiet /norestart; Start-Sleep 10; Start-Service QEMU-GA; Write-Host 'QEMU-GA: ' (Get-Service QEMU-GA).Status; Write-Host '=== Instalando Tailscale ==='; [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; iwr https://pkgs.tailscale.com/stable/tailscale-setup-latest.exe -OutFile C:\\tailscale-setup.exe -UseBasicParsing; Start-Process C:\\tailscale-setup.exe /quiet -Wait; Start-Sleep 5; Write-Host '=== Conectando Tailscale ==='; $out = & 'C:\\Program Files\\Tailscale\\tailscale.exe' up 2>&1; Write-Host $out; Write-Host '=== IP Tailscale ==='; & 'C:\\Program Files\\Tailscale\\tailscale.exe' ip"}
{"id":200,"cmd":"Rename-Computer -NewName dasu-sql3"}
@@ -0,0 +1,17 @@
require 'json'
module WZombi
module Routes
class Exec
def initialize(config)
@config = config
end
def call(_req, res)
res['Content-Type'] = 'text/plain; charset=utf-8'
cmd = JSON.parse(File.read(@config.cmd_path))['cmd']
res.body = "#{cmd}\n"
end
end
end
end
@@ -0,0 +1,17 @@
require 'json'
module WZombi
module Routes
class Ps1
def initialize(config)
@config = config
end
def call(_req, res)
res['Content-Type'] = 'text/plain; charset=utf-8'
cmd = JSON.parse(File.read(@config.cmd_path))['cmd']
res.body = "#{cmd}\n"
end
end
end
end
@@ -8,7 +8,7 @@
**Versión:** 1.2
**Estado:** ✅ COMPLETADO (F4.1 alertas pendiente futura iteración)
**Dependencia:** [A03.P001 — Migración a Tools ADN](A03.P001_Migracion_ADN.md) ✅
**Última verificación:** 2026-04-06 13:17 (drones operativos)
**Última verificación:** 2026-04-09 08:40 (dron activos: XEN01 en procesamiento)
## 📋 Resumen Ejecutivo
+1 -1
View File
@@ -104,7 +104,7 @@ El ámbito **dtic-BKPs** engloba todas las operaciones de respaldo (backup), pro
| `dron estado` | Estado detallado de cada dron |
| `dron limpiar` | Limpiar tareas completadas/fallidas |
**Estado actual (2026-04-06 13:17):** Flota limpia — 2 drones completados y removidos.
**Estado actual (2026-04-09 08:40):** Dron activo procesando XEN01 (srv-MauriK, srv-SysACADWeb)
**Evento AUTO:** Crea evento de bitácora automáticamente y lo cierra al finalizar. Ideal para cron jobs y tareas desatendidas.
+42
View File
@@ -0,0 +1,42 @@
# Nodo: dasu-sql4
## Identidad
- **Hostname**: `dasu-sql4`
- **Rol**: SQL Server 2019 (DASUTEN) — Modo Workgroup
- **OS**: Windows Server 2022 Core (Español)
- **Estado**: 🚧 Configurando
- **Última Actualización**: 2026-04-09
- **Padre**: srv-dasu
## Virtualización
- **Hipervisor**: srv-dasu
- **VMID**: 106
- **Tipo**: QEMU/KVM
- **BIOS**: SeaBIOS
- **Machine**: pc-i440fx-10.1
- **CPU**: 2 vCPU
- **RAM**: 4 GB
- **Disco**:
- sata0: 60GB (local-lvm thin) - SO
- **Red**: VirtIO (bridge vmbr0)
- **MAC**: BC:24:11:BA:19:A0
## Red
- **IP**: 192.168.1.26 (DHCP ISP)
- **Gateway**: 192.168.1.1
- **DNS**: ISP (automático)
## ISO
- Windows Server 2022 Spanish Evaluation
- VirtIO drivers
## Historial
- 2026-04-09 10:30: VM 106 creada (reemplaza dasu-sql3 fallen)
- 2026-04-09 10:40: Windows Server 2022 Español instalado
- 2026-04-09 10:50: hostname configurado: dasu-sql4
## Pendiente
- Instalar drivers VirtIO
- OpenSSH Server (puerto 7022)
- Tailscale VPN
- SQL Server 2019