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:
- Monitoreo de la Cola: El Session Manager monitorea continuamente la cola de tareas del Orquestador BotCity.
- Activación de Recursos: Cuando hay demanda de tareas, los recursos se activan para manejar la carga.
- 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 élhost
. 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 Sí 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 entornoAZURE_TENANT_ID
,AZURE_CLIENT_ID
yAZURE_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
-
Abra el Símbolo del sistema como Administrador:
- Presione
Win + X
y seleccione Símbolo del sistema (Admin) o Windows PowerShell (Admin).
- Presione
-
Ejecute el siguiente comando para crear un nuevo servicio:
- 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.
- Reemplace
Paso 2: Configurar el Servicio para Iniciar Automáticamente
-
Ejecute el siguiente comando para configurar el servicio para que inicie automáticamente al arrancar el sistema:
-
Para iniciar el servicio inmediatamente, use:
Paso 3: Verificar el Servicio
- Abra Servicios (presione
Win + R
, escribaservices.msc
y presione Enter). - Localice
SessionManagerService
en la lista de servicios para confirmar que aparece. - Verifique que el Tipo de inicio del servicio esté configurado como Automático.
- 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:
-
Si el servicio no inicia, verifique el
log_sm.txt
en la carpetalogs
del BotCity Studio SDK. - Alternativamente, revise el Visor de eventos en Registros de Windows > Aplicación.
Desinstalar el Servicio
Para eliminar el servicio, ejecute:
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:
- Agregar un
host
- Adjuntar un
runner
alhost
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
.
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.