Files
dtic-DIIAA/docs/ambito/dtic-XenServer/A06_dtic-XenServer.md
T

165 lines
7.0 KiB
Markdown

# A06 - Ámbito dtic-XenServer
> Manifiesto de Ámbito | Referencia: [`adn/01_ontologia.md`](../../../adn/01_ontologia.md)
## Identificación
| Campo | Valor |
| :--- | :--- |
| **Código** | A06 |
| **Nombre** | Administración Hipervisor Citrix XenServer |
| **Estado** | ⚠️ En Mantenimiento |
| **Inicio** | 10/04/2026 |
| **Fin Estimado** | Por definir (migración o modernización) |
## Objetivo
El ámbito **dtic-XenServer** engloba todas las operaciones relacionadas con la administración, mantenimiento y optimización del hipervisor **Citrix XenServer 7.0** (`srv-xen1`) que aloja máquinas virtuales críticas de la infraestructura DTIC.
Este ámbito cubre:
1. **Gestión de VMs** — Administración de máquinas virtuales alojadas en XenServer.
2. **Backups y exportaciones** — Exportación de VMs en formato XVA y transferencia a almacenamiento central.
3. **Optimización de transferencias** — Mejora de tiempos de backup mediante compresión y ajuste de ventanas.
4. **Mantenimiento de hipervisor legacy** — XenServer 7.0 requiere configuración especial por antigüedad (OpenSSH 6.6.1).
## Herramientas
| Herramienta | Uso |
| :--- | :--- |
| **xe CLI** | `xe vm-list`, `xe vm-export`, `xe vm-params` — comandos nativos XenServer |
| **ADN CLI `ssh`** | `./adn/tools/run ssh <nodo> <comando>` — ejecución remota con gestión de secretos |
| **rclone** | Sincronización de backups procesados hacia nube (OneDrive) |
| **ADN CLI `dron`** | `./adn/tools/run dron` — vigía de tareas largas de exportación con auto-bitácora |
| **sshpass** | Automatización de conexiones SSH con autenticación por password |
## Nodos Involucrados
### Hipervisor XenServer (Núcleo del Ámbito)
| Nodo | IP | Rol en el Ámbito |
| :--- | :--- | :--- |
| **srv-xen1** | `10.0.10.23` | Citrix XenServer 7.0.0 — Hipervisor principal |
### Máquinas Virtuales Alojadas
| VM | IP | Rol | Estado |
| :--- | :--- | :--- | :--- |
| **srvv-sysacadweb** | `10.0.10.12` | Servidor Web SysACAD | 🟢 Operativa |
| **srvv-maurik** | `10.0.10.10` | Domain Controller (UTNLARIOJA) | 🟢 Operativa |
### Nodos de Soporte
| Nodo | IP | Rol en el Ámbito |
| :--- | :--- | :--- |
| **srv-ns8** | `10.0.10.8` | Almacenamiento central de backups, punto de gestión |
## Limitaciones Técnicas Identificadas
| Limitación | Impacto | Solución |
| :--- | :--- | :--- |
| **OpenSSH 6.6.1** (XenServer 7.0) | Incompatible con `rsa-sha2-256/512` de OpenSSH 9.2 | Usar `-o PubkeyAcceptedAlgorithms=+ssh-rsa` |
| **Disco raíz limitado** (2.7 GB libre en Dom0) | No permite compresión local de XVA | Stream directo a NS8 sin compresión intermedia |
| **Sin claves RSA desplegadas** | Autenticación solo por password | Pendiente: `ssh-copy-id` con opciones legacy |
## Tareas Configuradas
| ID | Descripción | Tipo |
| :--- | :--- | :--- |
| `xen_export` | Exportar VM a XVA vía xe CLI | export |
| `xen_stream_to_ns8` | Stream SSH de XVA a srv-ns8 | transfer |
| `xen_compress_post` | Compresión pos-proceso en NS8 | process |
| `xen_upload_nube` | Upload de XVA procesado a OneDrive | sync |
## Flujo de Trabajo Típico
```
1. Registrar evento en bitácora (inicio exportación XenServer)
2. Conectar a srv-xen1 con opciones SSH legacy:
ssh -o PubkeyAcceptedAlgorithms=+ssh-rsa \
-o HostkeyAlgorithms=+ssh-rsa \
rmonla@10.0.10.23
3. Exportar VM: xe vm-export vm=<nombre> filename=/tmp/vm.xva
4. Stream a NS8: ssh rmonla@10.0.10.23 "xe vm-export ..." | ssh srv-ns8 "cat > /backup/vm.xva"
5. Monitorear progreso (dron lanzar si es largo)
6. Cerrar evento en bitácora
```
### Comandos SSH con Compatibilidad Legacy
```bash
# Conexión interactiva con algoritmos legacy
ssh -o PubkeyAcceptedAlgorithms=+ssh-rsa \
-o HostkeyAlgorithms=+ssh-rsa \
rmonla@10.0.10.23
# Stream de exportación con compresión
ssh -o PubkeyAcceptedAlgorithms=+ssh-rsa \
-o HostkeyAlgorithms=+ssh-rsa \
rmonla@10.0.10.23 "xe vm-export vm=srvv-sysacadweb filename=/dev/stdout" | \
gzip | \
ssh srv-ns8 "cat > /mnt/ns8Disco3/dtic-BACKUPS/bkps-SERVIDORes/srvv-sysacadweb.xva.gz"
# Con sshpass para automatización (password desde candados)
PASS=$(ruby adn/tools/candados/candados.rb get sudo)
sshpass -p "$PASS" ssh -o PubkeyAcceptedAlgorithms=+ssh-rsa \
-o HostkeyAlgorithms=+ssh-rsa \
rmonla@10.0.10.23 "hostname; xe vm-list"
```
## Planes Asociados
| Código | Nombre | Estado |
| :--- | :--- | :--- |
| [A06.P001](A06.P001_Habilitar_SSH_Legacy.md) | Habilitar SSH con Claves RSA Legacy | ✅ Completado |
| [A06.P002](A06.P002_Optimizar_Exportacion_XVA.md) | Optimizar Exportación XVA con Compresión | 🚧 En Ejecución |
| [A03.P003](../dtic-BKPs/A03.P003_Optimizacion_SysAcadWeb.md) | Optimización Backup SysAcadWeb | ⏳ En Ejecución |
> **Nota:** A03.P003 está vinculado a este ámbito aunque reside en dtic-BKPs por ser el ámbito ejecutor del backup.
## 🛸 Sistema de Drones (Operación Autónoma)
**Herramienta:** `./adn/tools/run dron <subcomando>`
| Subcomando | Función |
| :--- | :--- |
| `dron lanzar --evento ID/AUTO --nota "X" -- <cmd>` | Lanzar tarea en background con auto-bitácora |
| `dron flota` | Dashboard compacto de la flota |
| `dron salud` | Health check activo (detecta zombies/estancados) |
| `dron estado` | Estado detallado de cada dron |
| `dron limpiar` | Limpiar tareas completadas/fallidas |
**Evento AUTO:** Crea evento de bitácora automáticamente y lo cierra al finalizar. Ideal para exportaciones nocturnas.
**Ejemplo para exportación larga (~10 horas):**
```bash
./adn/tools/run dron lanzar --evento AUTO --nota "Exportación srvv-sysacadweb" -- \
./adn/tools/run ssh srv-xen1 "xe vm-export vm=srvv-sysacadweb filename=/dev/stdout" | \
gzip > /mnt/ns8Disco3/dtic-BACKUPS/bkps-SERVIDORes/srvv-sysacadweb.xva.gz
```
## 🔄 Armonía Integral
**Última actualización:** 2026-04-10 (creación de ámbito + diagnóstico SSH)
| Documento | Estado | Notas |
| :--- | :--- | :--- |
| `A06_dtic-XenServer.md` | ✅ Creado | Manifiesto del ámbito |
| `A06.P001_Habilitar_SSH_Legacy.md` | ✅ Completado | Plan para desplegar claves RSA y parche herramientas |
| `A06.P002_Optimizar_Exportacion_XVA.md` | 🚧 En Ejecución | Plan para compresión y ventanas |
| `nodos/srv-xen1.md` | ✅ Actualizado | Ficha con info de autenticación SSH |
| `nodos/srvv-sysacadweb.md` | ✅ Actualizado | Ficha de VM crítica |
| `nodos/srvv-maurik.md` | ✅ Actualizado | Ficha de Domain Controller |
---
## Referencias
- **Comandos xe**: `xe help` (en srv-xen1) o [Citrix XenServer 7.0 Docs](https://docs.citrix.com/en-us/citrix-hypervisor/xenserver/v7/management.html)
- **ADN Ontología**: [`adn/01_ontologia.md`](../../../adn/01_ontologia.md)
- **Bitácoras**: `./adn/tools/run db evento:listar --ambito dtic-XenServer`
- **Nodo srv-xen1**: [`nodos/srv-xen1.md`](../../../nodos/srv-xen1.md)
- **Nodo srvv-sysacadweb**: [`nodos/srvv-sysacadweb.md`](../../../nodos/srvv-sysacadweb.md)
- **Nodo srvv-maurik**: [`nodos/srvv-maurik.md`](../../../nodos/srvv-maurik.md)
- **Diagnóstico SSH**: Ver sección "Limitaciones Técnicas Identificadas" en este documento