Saltar a contenido

Primeros Pasos

Cómo Funciona

El Session Manager (Administrador de Sesiones) monitorea la cola de tareas del Orquestador BotCity en tiempo real. Es responsable de activar recursos siempre que haya tareas pendientes y desactivarlos cuando finaliza la ejecución y no hay más tareas en la cola.

Está optimizado para proporcionar asignación de recursos de manera oportuna, garantizando la disponibilidad de estos recursos cuando sea necesario. Esto reduce tanto el tiempo de espera de las tareas en el Orquestador BotCity como el tiempo de runners activos y ociosos sin tareas para ejecutar.

Flujo de Procesos:

  1. Monitoreo de la Cola: El Session Manager monitorea continuamente la cola de tareas del Orquestador BotCity.
  2. Activación de Recursos: Cuando hay demanda de tareas, los recursos se activan para manejar la carga.
  3. Desactivación de Recursos: A medida que la demanda desaparece, los recursos se liberan y desactivan, reduciendo los costos.

Conceptos Clave

Antes de comenzar con la configuración, es importante entender algunos conceptos clave que se mencionarán a continuación:

  • host: Un host es una computadora o máquina virtual (local o en la nube) cuya sesión será controlada; esta máquina debe tener los recursos del SDK de BotCity instalados.
  • protocol: El protocolo que se utilizará para la conexión y comunicación del Session Manager con él host. Consulte la lista de protocolos soportados.

Protocolos Soportados

Actualmente, se soportan dos protocolos:

  • RDP
  • AWS EC2 + RDP

RDP - Escritorio Remoto

Para configurar un host con soporte para Escritorio Remoto, necesitará la siguiente información:

  • Nombre del Host o Dirección IP: para comunicarse con él host.
  • Nombre de usuario: para iniciar la sesión.
  • Contraseña: para iniciar la sesión del usuario.

AWS EC2 + RDP

Este protocolo permite no solo establecer la conexión RDP con él host, sino también manipular el estado de la instancia EC2 de AWS, iniciándola y deteniéndola según la demanda de la cola de tareas del Orquestador BotCity.

Para configurar un host con soporte para AWS EC2, necesitará la siguiente información:

  • ID de la Instancia
  • Región AWS: (Opcional) la región de AWS donde se encuentra esta instancia.
  • ID de la Clave de Acceso AWS: (Opcional) la clave de acceso de la API de AWS.
  • ID de la Clave Secreta de Acceso AWS: (Opcional) la clave secreta de acceso de AWS.
  • Nombre del Host o Dirección IP: para comunicarse con él host.
  • Nombre de usuario: para iniciar la sesión.
  • Contraseña: para iniciar la sesión del usuario.

Credenciales de AWS

El uso de un archivo de credenciales de AWS también está soportado. Asegúrese de responder durante el comando host add cuando se le solicite.

Si utiliza el archivo de credenciales, no se solicitarán la Región, Clave de Acceso y Clave Secreta.

Azure VM + RDP

Este protocolo permite configurar una VM de Azure para funcionar manipulando el estado de la VM y estableciendo la conexión RDP, iniciándola y deteniéndola según la demanda de la cola de tareas del Orquestador BotCity.

Proporciona dos opciones para la autenticación al acceder a recursos de Azure:

  • Uso de Client Secrets — proporcionando Tenant ID, Client ID y Client Secret de Azure AD para acceso explícito
  • Uso de Managed Identity — utilizando la identidad administrada de la VM para acceso automático, sin necesidad de proporcionar secretos

Para configurar el host para usar Azure VM, deberá proporcionar los siguientes datos:

  • Nombre de la VM donde se aplicará la configuración
  • Grupo de Recursos de la VM en Azure
  • ID de Suscripción (Subscription ID) relacionado con la VM
  • Tenant ID (Opcional) identifica el directorio de Azure Active Directory (Azure AD) al cual pertenece la aplicación.
  • Client ID (Opcional) identifica de forma única la aplicación registrada en Azure AD.
  • Client Secret (Opcional) es la contraseña o clave secreta asociada con la aplicación registrada, utilizada para autenticación segura.

Tip

En la autenticación de Azure VM, existen tres formas principales de proporcionar credenciales:

  • Client Secrets:
    Use Tenant ID, Client ID y Client Secret cuando desee autenticarse explícitamente a través de una aplicación registrada en Azure AD.
    Esto es útil en entornos que no tienen Managed Identity habilitada o para escenarios que requieren credenciales específicas.

  • Managed Identity:
    Cuando la VM tiene Managed Identity habilitada, la autenticación se realiza automáticamente sin necesidad de proporcionar credenciales explícitas.
    Esta es la forma más segura y recomendada para aplicaciones que se ejecutan en Azure VMs.

  • Archivo de configuración predeterminado (Azure CLI / Variables de Entorno):
    Si tiene Azure CLI instalado y autenticado en la máquina, o define las variables de entorno AZURE_TENANT_ID, AZURE_CLIENT_ID y AZURE_CLIENT_SECRET, es posible usar estas configuraciones automáticamente.
    Esto permite no tener que pasar manualmente las credenciales en el código.

Requisitos

El Session Manager puede ejecutarse en un servidor dedicado para mantener la comunicación constante con el Orquestador BotCity.

Para una comunicación correcta, es obligatorio que el servidor Session Manager:

  • Pueda comunicarse con el Orquestador BotCity vía HTTPS (Puerto 443).
  • Pueda acceder a los hosts vía red para gestionar las sesiones.
  • Tenga un usuario autorizado para establecer conexión RDP u otra conexión necesaria con los hosts.

Sugerencia de configuración de ambiente

Para un entorno dedicado solo a la ejecución del Session Manager:

  • SO: Linux
  • RAM: 2GB

Atención a posibles adecuaciones de requisitos referentes a comunicación en red u otros recursos que desee agregar.

Instalación

El Session Manager forma parte del BotCity Studio SDK.

Para obtener el Session Manager, siga la instalación descrita en la guía de introducción.

Instalación de Runner

Al instalar el SDK para el uso exclusivo del Session Manager, no es necesario configurar un Runner en esta instalación.

Instalando como Servicio de Windows

Puede instalar el BotCity Session Manager como un Servicio de Windows siguiendo las instrucciones a continuación:

Tip

Necesitará un sistema operativo Windows con privilegios administrativos.

Paso 1: Crear el Servicio

  1. Abra el Símbolo del sistema como Administrador:

    • Presione Win + X y seleccione Símbolo del sistema (Admin) o Windows PowerShell (Admin).
  2. Ejecute el siguiente comando para crear un nuevo servicio:

    sc create SessionManagerService binPath="C:\ruta\su\ejecutable.exe service"
    
    • Reemplace C:\ruta\su\SessionManager.exe por la ruta completa a su archivo .exe.
    • Nota: Asegúrese de que no haya espacio entre binPath= y la ruta.

Paso 2: Configurar el Servicio para Iniciar Automáticamente

  1. Ejecute el siguiente comando para configurar el servicio para que inicie automáticamente al arrancar el sistema:

    sc config SessionManagerService start=auto
    
  2. Para iniciar el servicio inmediatamente, use:

    sc start SessionManagerService
    

Paso 3: Verificar el Servicio

  1. Abra Servicios (presione Win + R, escriba services.msc y presione Enter).
  2. Localice SessionManagerService en la lista de servicios para confirmar que aparece.
  3. Verifique que el Tipo de inicio del servicio esté configurado como Automático.
  4. Reinicie el sistema para verificar que el servicio se inicie automáticamente al arrancar.

Paso 4: Prueba y Solución de Problemas

  • Para verificar el estado del servicio, puede usar:

    sc query SessionManagerService
    
  • Si el servicio no inicia, verifique el log_sm.txt en la carpeta logs del BotCity Studio SDK.

  • Alternativamente, revise el Visor de eventos en Registros de Windows > Aplicación.

Desinstalar el Servicio

Para eliminar el servicio, ejecute:

sc delete SessionManagerService
Este comando elimina el servicio completamente.

Configuración

Toda la configuración del Session Manager se realiza a través de la interfaz de línea de comandos (CLI) del Session Manager y se guarda en el archivo config_file.smdb (por defecto en la carpeta conf/ de la instalación).

Para ejecutar el Session Manager, es necesario al menos:

  1. Agregar un host
  2. Adjuntar un runner al host agregado

Vea en los siguientes pasos cómo realizar la configuración.

Personalizar ubicación de la base de datos

Puede personalizar la ubicación de la base de datos de configuración del Session Manager definiendo la ruta completa al archivo smdb en su archivo de configuración conf/conf.bcf bajo el parámetro sessionManagerDBPath.

sessionManagerDBPath=/ruta/ejemplo/BotCity/config_file.smdb

Comandos

Aquí está la lista de comandos disponibles para la configuración del Session Manager. Para ver los detalles, haga clic en el comando deseado.

host - add, edit, remove

Comandos para la configuración de hosts en el Session Manager.

runner - attach, edit, release

Comandos para la configuración de runner en el Session Manager.

list - all

Comando para listar las configuraciones realizadas en el Session Manager.

run - local

Comando para ejecutar el Session Manager.