Volver a proyectos
Arquitectura de automatizaciónIngeniero de Software

ServerFemucaribe — Operación remota para agentes

Capa de operación remota para que agentes ejecuten tareas por SSH sin recibir la contraseña del servidor. Separa el alta de acceso realizada por el humano de la automatización por clave e incorpora una vía de diagnóstico SQL con validación local.

Herramientas de uso interno

Desafío

Dar acceso operativo a agentes de software exige resolver quién prepara la autenticación, qué información recibe el agente y cómo distinguir una tarea automatizable de una interacción que necesita al humano. Las contraseñas no deben terminar en el contexto de conversación, en argumentos de comandos ni en variables persistentes; además, el diagnóstico de una base de producción requiere controles propios antes de enviar consultas.

Solución

Diseñé un contrato de operación con dos etapas: el humano prepara el acceso e instala la clave pública; después, el agente utiliza wrappers que seleccionan destino e identidad y ejecutan comandos por clave. Los flujos interactivos se delegan al humano. Para SQL, añadí una vía específica que valida la sentencia localmente, limita resultados y utiliza autenticación integrada de Windows; si esta autenticación falla, el flujo reporta el error sin buscar una contraseña alternativa.

Arquitectura y decisiones

Un núcleo PowerShell carga la configuración y resuelve el destino y su identidad. Los adaptadores de comandos y SCP usan OpenSSH con IdentitiesOnly y BatchMode, mientras una vía separada abre sesiones con TTY para intervención humana. La capa SQL restringe las formas de consulta, rechaza operaciones de escritura y permite validación en seco antes de abrir la conexión. Transporta el texto SQL codificado para conservar las comillas, lo ejecuta con sqlcmd -E y elimina el archivo temporal remoto en finally. La presentación enmascara las columnas reconocidas por la proyección de la consulta y registra el texto SQL y metadatos, con filtrado de patrones de credenciales. Runbooks y reglas por rol definen las responsabilidades de los agentes y del humano.

Testing y calidad

El alta de acceso incorpora una comprobación de autenticación por clave y los wrappers propagan los códigos de salida. El diagnóstico SQL incluye un modo DryRun que valida la sentencia sin enviarla al servidor. La documentación marca la integración de sqlcmd -E como pendiente de comprobación en el entorno; la existencia del wrapper no se presenta como una prueba de funcionamiento en producción.

Impacto

Establece una forma repetible de delegar tareas remotas a agentes sin entregarles la contraseña del servidor. La separación entre bootstrap, ejecución automatizada, intervención humana y diagnóstico SQL hace explícitas las responsabilidades y el tratamiento de los errores de autenticación.

Puntos clave

  • Separé el bootstrap humano de claves Ed25519 de la ejecución del agente: la contraseña se introduce en la terminal del humano
  • Centralicé destinos e identidades en una configuración compartida para operar servidores y equipos sin duplicar conexiones
  • Diseñé wrappers no interactivos que devuelven salida y código de error, con BatchMode para evitar prompts de contraseña
  • Separé las sesiones TTY bajo intervención humana de los comandos automatizados y las transferencias SCP
  • Implementé validación SQL antes de tocar la red, límite de filas, modo DryRun y enmascarado de columnas identificadas como sensibles
  • Preparé el acceso SQL con autenticación integrada de Windows para reutilizar la identidad SSH sin introducir una contraseña SQL