Rocketbot Picture in Picture

Descripción

Rocketbot Picture in Picture (PiP) es una herramienta que permite ejecutar robots cargados en el orquestador en una sesión hija de tu usuario local de Windows. Esto permite realizar ejecuciones en un entorno separado de tu sesión principal de Windows, pero a su vez ejecutándose con el mismo usuario, liberando la sesión principal para realizar cualquier otra actividad mientras se ejecuta tu robot.

💡Nota:
Para poder utilizar Rocketbot PiP, es necesario tener instalado el cliente de noc versión 2.0 o superior.

Descarga Rocketbot Picture in Picture desde aqui: #soon

Configuración NOC y PiP

Una vez descargado el cliente noc 2.0 y Rocketbot PiP, agregar a las configuraciones del archivo noc.ini (ubicado en la instalación del cliente noc) lo siguiente:

Crear la sección [PIP] y dentro asignar los siguientes valores:

[PIP]
open = true/false
path = path_to_RocketbotPiP.NET.exe
user = tour_Windows_user
password = your_Windows_password
screenshot = true/false

  • open (obligatorio): indica si se ejecutarán robots del orquestador en PiP. Si se indica true al abrir noc.exe se abrirá PiP por un momento para iniciar la sesión hija.
  • path (obligatorio): en este campo se debe indicar la ruta hacia el ejecutable de RocketbotPiP.
  • user (opcional): indica el nombre del usuario local de Windows actual. Si no se guarda aquí se deberá iniciar sesión y en el proceso se guardará el dato en el baúl de credenciales de Windows.
  • password (opcional): indica la contraseña de tu usuario local de Windows actual. Al igual que el user, si no se guarda aquí se deberá iniciar sesión y en el proceso se guardará el dato en el baúl de credenciales de Windows.
  • screenshot (opcional): indica si el orquestador puede tomar capturas de pantalla en la sesión hija abierta por Rocketbot PiP.

💡Nota:
Rocketbot PiP necesita tener acceso a las credenciales de Windows para automatizar el inicio de sesión. De manera opcional se pueden cargar en el archivo .ini. Si por seguridad se prefiere hacerlo, la primera vez que se ejecute RocketbotPiP se solicitarán las credenciales. Estas serán almacenadas dentro del Administrador de Credenciales de Windows como credenciales genéricas bajo el nombre de ‘pip_localhost’.

Terminado de configurar el archivo noc.ini, se debe agregar la aplicación noc.exe dentro de la lista de aplicaciones que se abren al iniciar Windows, de esta manera tanto en el inicio de la sesión principal y de la sesión secundaria en pip, abrirán el noc automáticamente.
Los pasos son los siguientes:

  1. Haz click derecho en la aplicación noc.exe y selecciona Copiar
  2. Presiona Windows + R, escribe shell:startup y haz click en Aceptar. Se te abrirá la carpeta Inicio.
  3. Haz click derecho sobre la carpeta y selecciona Pegar acceso directo. Si tienes Windows 11 al hacer click derecho deberás seleccionar primero Mostrar más opciones.
Así debe quedar la carpeta Startup

La primer configuración que se debe realizar al descargar Rocketbot PiP es ejecutar como administrador RocketbotPiP.NET.exe y hacer click en el botón Enable Child Session. Esto dará los permisos necesarios para poder abrir la sesión hija en Picture in Picture. Una vez realizado esto, se puede cerrar la aplicación y continuar con la configuración del servidor.

Configuración Servidor Orquestador

Para poder ejecutar diferentes procesos en PiP, se debe configurar el parámetro dentro de la línea de comandos de la instancia. Para ello hay que iniciar sesión en el servidor y dirigirse al proceso que deseamos ejecutar.

Al ingresar al proceso, en la instancia donde se ejecutará por PiP hacer click en los tres puntos para mostrar más opciones y elegir Set command Line

En el input agregar como primer parámetro --pip

Consideraciones

Rocketbot Picture in Picture está disponible solamente para sistemas operativos Windows y el usuario debe ser una cuenta local. Por limitaciones de Windows, PiP por el momento no funciona con usuarios cuya cuenta esté vinculada a una cuenta de Microsoft.

Si has decidido no guardar tus credenciales en el archivo noc.ini y no has iniciado sesión en el paso donde se debe dar click en Enable Child Session, la primera vez que se ejecute noc.exe se abrirá Rocketbot PiP y mostrará la siguiente ventana:

Al darle click a Accept se deben cargar las credenciales y luego click a connect. Esto hará que se guarden los datos de conexión en el baúl de credenciales de Windows, explicado aquí.

PiP funciona como un escritorio remoto y no permite ejecutar aplicaciones como administrador, por lo que se debe tener en cuenta antes de comenzar un desarrollo en el cual sea necesario ese nivel de privilegios.

Al ejecutar un robot en PiP que requiera de interfaz gráfica, ya sea porque se automatizan aplicaciones desktop (que interactúan con el mouse o el teclado) o bien porque se utiliza virtualización por ejemplo, se requiere tener en primer plano la aplicación. Si se desea ejecutar con PiP minimizado, se debe agregar un registro que permita mantener la interfaz. Siguiendo los pasos a continuación podrás realizarlo:

  1. Cierra la aplicación de PiP
  2. Presiona Win + R, escribe regedit y presiona enter
  3. Ve hacia el registro que corresponda según tu sistema operativo (32 o 64 bits):

    • 32 bits: HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server Client
    • 64 bits: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Terminal Server Client

  4. En el recuadro blanco de la derecha haz click derecho y selecciona Nuevo > Valor de DWORD. Su nombre debe ser RemoteDesktop_SuppressWhenMinimized
  5. Una vez creado y nombrado, haz doble click sobre dicho registro. En el input Información del valor colocar 2. Para finalizar haz click en Aceptar para guardar los cambios.
  6. Cierra la ventana del editor de registro. Con este cambio, los robots ejecutados en PiP tendrán una interfaz para poder trabajar sin problemas aún cuando la aplicación esté minimizada.



Orquestador Rocketbot – R.O.C. Infraestructura

Infraestructura de Rocketbot Orchestrator Center

Base

  • La infraestructura está diseñada para ser escalable y resiliente, aprovechando las distintas Availability Zones que ofrece AWS.
  • Monitoreo constante de la utilización de recursos para poder escalar la infraestructura arriba o abajo según sea necesario.
  • Amazon CloudWatch para monitorear la salud y el rendimiento de las instancias EC2, ELB y RDS.
  • S3 para almacenar los robots encriptados.
  • Conexión HTTPS / TLS1.2
  • JWT en cabezeras.

Load Balancer – WAF

  • Tipo: Elastic Load Balancer (ELB)
  • Configuración adicional: Web Application Firewall (WAF) para protección contra ataques comunes como SQL Injection, Cross-Site Scripting, etc.

Instancias EC2

Estas instancias actuarán como los servidores de aplicaciones principales. Utilizar diferentes Availability Zones aumenta la resiliencia del sistema

  • Tipo: t3.small
  • CPU: 2 vCPUs
  • RAM:2GB
  • Cantidad: 2 instancias

Base de Datos RDS

La base de datos RDS con configuración Multi-AZ asegura que la información esté siempre disponible, incluso si una zona de disponibilidad sufre un fallo.

  • Motor: MySQL
  • Clase de Instancia: db.m6g.large
  • CPU: 2 vCPUs
  • RAM:8GB
  • Configuración: Multi-AZ para alta disponibilidad

Nomenclatura

JWT: JSON Web Token es un estándar abierto (RFC 7519) que define una forma compacta y autónoma para transmitir de forma segura información entre las partes como un objeto JSON.
Más información: https://auth0.com/docs/jwt

TLS 1.2: Transport Layer Security (TLS; en español seguridad de la capa de transporte) y su antecesor Secure Sockets Layer (SSL; en español capa de puertos seguros) son protocolos criptográficos, que proporcionan comunicaciones seguras por una red, comúnmente Internet.
Más información: https://es.wikipedia.org/wiki/Transport_Layer_Security

WAF: AWS WAF lo ayuda a protegerse de los exploits y bots web comunes que podrían afectar la disponibilidad, poner en riesgo la seguridad o consumir demasiados recursos.
Más información: https://aws.amazon.com/es/waf/

RDS: Amazon Relational Database Service (Amazon RDS) es una colección de servicios administrados que facilita las tareas de configuración, operación y escalado de una base de datos en la nube. Elija entre siete motores populares, Amazon Aurora con compatibilidad con MySQLAmazon Aurora con compatibilidad con PostgreSQLMySQLMariaDBPostgreSQLOracle y SQL Server, e implemente en las instalaciones con Amazon RDS en AWS Outposts.
Más información: https://aws.amazon.com/es/rds/

EC2: Amazon Elastic Compute Cloud (Amazon EC2) ofrece la plataforma de computación más amplia y completa.
Más información: https://aws.amazon.com/es/rds/




Orquestador Rocketbot – Acceso y Autentificación

El Orquestador de Rocketbot o R.O.C. cuenta con acceso basado en roles RBAC y doble autentificaión o 2FA.

Acceso basado en Roles – RBAC

El acceso a las partes y componentes del Orquestador (R.O.C.) están controladas por RBAC (Role-Based Access Control) la cual permite dependiendo el ROL del usuario realizar una acción como ejecutar un robot o ver el log.

Cuando Rocketbot crea una cuenta para EMPRESA se genera un usuario administrador para esa empresa. Este administrador tiene la tarea de designar los roles necesarios ademas del rol “Administrador” existente.

Crear un ROL

Para crear un rol debe:

  1. Hacer click en el menú Users&Roles -> Roles.
  2. Click en el boton Add Role
  3. Asignar un nombre y habilitar la acciones posibles
    Roles

Asignar un ROL

Para asignar un ROL se debe crear o editar un Usuario y seleccionar el rol para ese usuario.

Ver imagen

Doble Autentificación 2FA

El Orquestador de Rocketbot cuenta con Doble autentificación o two-factor 2FA.
Esto exigirá que para el inicio de sesión debera tener un token a través de una app de autentificación.

Aplicaciones móbiles compatibles.

Habilitar 2FA

Para habilitar autentificación por 2 pasos o 2FA debe ingresar a su perfil y habilitar 2FA, aparecerá un QR en su vista de perfil y deberá escanearlo con su aplicación de Autentificación.

Seguridad

Todas las conexiones se encuentran protegidas por protocolo https TLS 1.2 y se envía información protegida con JWT.

Las contraseñas se guardan encriptadas en base de datos (Mysql/SqlServer/Postgres).
El método usado es pasar las contraseñas por Hash Argon2 y bcrypt.

JWT asegura la sesión y RBAC el acceso y permisos CRUD

Nomenclatura

JWT: JSON Web Token es un estándar abierto (RFC 7519) que define una forma compacta y autónoma para transmitir de forma segura información entre las partes como un objeto JSON.
Más información: https://auth0.com/docs/jwt

bcrypt: es un algoritmo diseñado específicamente para hash de contraseñas. MD5 y SHA1 son algoritmos de hash de propósito general. Por diseño, además, bcrypt permite agregar un salt al proceso de generación del hash, lo que, de entrada, lo hace inmune a ataques de diccionario.
Más información: https://en.wikipedia.org/wiki/Bcrypt

Argon2i and Argon2id variants).: Argon2 es una función de derivación clave que se seleccionó como ganadora del concurso de hash de contraseñas en julio de 2015 siendo una de las más fuertes hasta el dia de hoy.
Más información: https://en.wikipedia.org/wiki/Argon2

TLS 1.2: Transport Layer Security (TLS; en español seguridad de la capa de transporte) y su antecesor Secure Sockets Layer (SSL; en español capa de puertos seguros) son protocolos criptográficos, que proporcionan comunicaciones seguras por una red, comúnmente Internet.
Más información: https://es.wikipedia.org/wiki/Transport_Layer_Security




Orquestador Rocketbot – Conexión

El Orquestador permite conexión con los desarrolladores y con el Runner Rocketbot Studio. Para ello necesitará una cuenta de orquestador con los accesos necesarios para modificar el robot en caso de subir una actualizacion. Tanto el desarrollador como Runner de Rocketbot Studio necesitarán una cuenta habilitada. Para mas información puede revisar el documento Orquestador Rocketbot – Acceso y Autentificación

Conexión Rocketbot Studio Develop a Orquestador.

Para conectar RocketbotStudio Develop se debe utilizar el addons Ochestrator disponible dentro de Rocketbot Studio.
En la sección de addons a la derecha de Rocketbot Studio encontrará el addon.

Al hacer click sobre se abrira la pestaña de configuración y opción de subir el robot.

Complete los datos de Server URL, por ejemplo https://orchestrator.myrb.io.

Recibirá el endpoint / URL correspondiente en su correo al momento de crear su cuenta de Usuario

Ingrese los datos de usuario en la cual tiene 2 opciones:

  1. Ingresa Usuario y Contraseña.
  2. Ingresa API Key.

Ingreso desde Studio por API Key.

Para ingresar por Api Key debe obtener su api key desde el orquestador.

  1. Para ello diríjase a la seccion de usuarios del orquestador.
  2. Haga click en el botón [ API KEY ].
  3. Copie el API Key y péguelo en el addon en la seccion Apikey.
  4. Oprima el botón [ Test ] y podrá probar si la conexión es correcta.
  5. Oprima el botón [ Save ] para guardar la configuración

Actualizar el robot en el Orquestador desde Addons.

Si la conexion es correcta el addons le mostrara los proyectos habilitados , al seleccionar un proyecto podrá ver los procesos disponibles.
Para subir un robot siga los siguientes pasos:

  1. Seleccionar un proyecto.
  2. Seleccionar un proceso.
  3. Oprimir el botón [ Export and Upload ]

Con estos pasos el robot quedará actualizado en el Orquestador.

Recuerde que necesitará los permisos adecuados para modificar el robot en el orquestador.

Conectar Rocketbot Runner con Orquestador.

Para conectar Rocketbot Runner con el Orquestador necesita tener:

  1. Configurar un instancia/máquina/VM con Rocketbot Studio y una licencia de producción
    Instalar en Windows | Instalar en Windows Video
  2. Descargar cliente de Orquestador N.O.C.
  3. Configurar el archivo noc.ini N.O.C.
  4. Iniciar N.O.C. con noc.exe

Instalar cliente de Orquestador N.O.C.

  1. Descargar cliente desde el orquestador: Haga click en el boton del menu superior del orquestod “ROC Client” para descargar el ZIP con el cliente.
  2. Descomprima noc.zip en una carpeta donde tenga permisos de escritura, no se recomienda que sea en la carpeta personal o desktop. Recomendacion : C:\\rocketbot\\noc

Configurar y conexión cliente de Orquestador N.O.C.

  1. Configurar archivo noc.ini con:
    a. Apikey: Credenciales de usuario con un ROL con permisos limitados

    b. Key: Ingrese al proceso dentro del proyecto, una vez adicionado una instancia le mostrará una Key

    c. Server: Url de orquestador, ej: https://roc.myrb.io/s4 (sin / final) d. Ruta de instalación de Rocketbot, incluyendo ejecutable. por ejemplo c:\\rocketbot

    d. Path: Copie la direccion de la carpeta donde se encuentra el archivo rocketbot.exe

  2. Complete los datos en el archivo noc.ini
  3. Ejecute noc.exe y el cliente de orquestador mostrara que la instancia está conectada.

Recuerde que necesitará los permisos adecuados para modificar el robot en el orquestador.




Orquestador Rocketbot – Logs

Rocketbot almacena todos los eventos que va ejecutando el runner para poder ser auditados.
Uno de los puntos más importantes es que Rocketbot no ejecuta los eventos sin guardar en el log el dato de entrada y almacena todos los errores determinando en cual componente falló.
Podrá conectar a través de un set de API’s con aplicaciones externas para extraer datos de logs y generar dashboards personalizados.

Tipos de Logs

El Orquestador de Rocketbot cuenta con 4 tipos de logs:

  1. Logs de Robot: Acciones que realiza el robot en la automatización.
  2. Logs de Proceso: Actividad de un proceso, inicio y fin.
  3. Logs de Usuario: Actividades que realiza el Usuario dentro del Orquestador.
  4. Logs de Instancia: Envia información de recursos consumidos por la instancia y el robot.

Logs de Robots.

Los robots conectados a través del cliente de orquestador NOC envian logs cada 10 segundos hacia el orquestador con los datos de las acciones realizadas. Para mas información de como conectar robots al orquestador.

Los datos volcados en el log son:

  • Fecha y Hora
  • Robot
  • Tipo: Info, Error, Warning, Personal
  • Linea
  • Comando
  • ID
  • Parametros del comando
Ejemplo de Log de un robot

Ver Logs de Robots desde Orquestador.

Para ver los logs de robot dentro del orquestador debe

  1. Ingresar a Proyecto.
  2. Seleccionar Proceso.
  3. Click Menú de instancia
  4. Click en

Menu instance
Menú en instancia

Menu desplegado
Menú desplegado


Logs de Procesos

Cada proceso creado en el orquestador genera una entrada de log al ejecutarse.
Los datos de logs de proceso son:

  • Proceso: Nombre del proceso.
  • Instancia: Nombre de la instancia.
  • Robot: Nombre del robot.
  • Inicio: Fecha de inicio formato YYYY-MM-DD HH-mm-ss
  • Fin: Fecha de fin formato YYYY-MM-DD HH-mm-ss
  • Duración: Desde el inicio al fin formato HH-mm-ss

Ver Logs de Procesos

Para revisar los logs de ejecución de proceso debe ingresar a la sección Process Execution en el menú lateral.

Podrá realizar un filtro para buscar por proceso, instancia y fecha

Filtros
Resultado

Logs de Usuario

Cada accion que realiza un usuario dentro del orquestador queda registrado.
Los datos que se almacenan son:

  • Evento: Acción que se realizó (Login, PROCESS VIEW, etc)
  • Mensaje: Mensaje explicativo por ej: “PROCESS VIEW [Project NAME: test]”
  • Usuario: Nombre de usuario que generó el evento.
  • IP: Direccion de ip pública desde donde se generó el evento.
  • Fecha: Fecha de evento con formato YYYY-MM-DD HH-mm-ss.

Ver Logs de Usuarios

Para revisar los logs de usuarios debe ingresar a la sección Logs en el menú lateral. Logs
Podrá realizar un filtro para buscar por usuario, evento y fecha.

Vista de logs de usuarios
Logs de usuarios

Logs de Instancia

Cada 10 segundos el cliente de orquestador NOC envia estado de recursos de la instancia.
Puede revisar este link para: ¿Como conectar una instancia?
Los datos transmitidos en este PING son:

  • Sistema Operativo: Tipo de sistema (Linux/Mac/Windows).
  • Nombre de CPU: Tipo de cpu y nommbre.
  • % CPU: Porcentaje de uso de cpu.
  • % RAM: Total y uso de memoria RAM.
  • % Disco: Total y uso de disco rígido.

Ver Logs de Instancia

Para ver los logs de robot dentro del orquestador debe

  1. Ingresar a Proyecto.
  2. Seleccionar Proceso.

Vista de instancia