Назначение:
WEB Orchestrator – компонент платформы ROBIN, служба диспетчеризации и администрирования запуска роботов. Позволяет запускать роботов по расписанию/событию и отслеживать статусы исполнения задач, просматривать логи и ошибки.
Рассмотрим основные функциональные возможности Web Orchestrator:1) Разграничение прав доступа: управление правами доступа к приложениям, схемам роботов, готовым роботам и др.
2) Хранение роботов и действий: централизованное хранение схем роботов, готовых роботов и пакетов действий
3) Версионирование роботов: Хранение множеств версий одних и тех же сценариев или готовых роботов в удаленном хранилище
4) Контроль рабочих мест: сбор и отображение оперативной информации о состоянии удаленных рабочих мест
5) Удаленный запуск роботов: запуск готовых роботов на удаленных рабочих местах
6) Поддержание RDP- соединения с нужными учетными записями для выполнения UI роботов
7) Сбор данных о роботах: отслеживание, какие роботы, где и кем запущены в данный момент, каково их текущее состояние
8) Работа с очередью ресурсов: создание своих очередей ресурсов и использование их в работе роботов
Состав решения:
Web-версия платформы Robin состоит из различных модулей, которые доступны из одного общего интерфейса:
"Управление доступом" - это один из модулей, входящих в состав платформы ROBIN и предназначенный для управления пользователями платформы и настройки их прав доступа к модулям и объектам (роботы, машины и т.д.) системы. Модуль доступен только пользователям с ролью "Администратор прав доступа"
"Оркестратор" - это один из модулей, входящих в состав платформы ROBIN и предназначенный для запуска и контроля исполнения программных роботов, созданных с помощью ROBIN Studio. Модуль доступен только пользователям с ролью "Администратор оркестратора".
В разделе представлены основные компоненты решения, используемые архитектурные шаблоны и принципы, технологический стек, а также важные интеграционные аспекты.
В таблице представлены основные компоненты архитектуры и за что каждый из компонентов отвечает.
Keycloack??
Группа |
Описание |
Ldap |
Ldap Сервер управления идентификацией и доступом Keycloak |
Rabbit |
Брокер сообщений на основе стандарта AMQP |
App |
Сервер приложений |
Front |
Сервер ВЕБ интерфейса |
Elastic |
Компонент хранения логов |
Kibana |
Компонент отчетов по логам |
Logstash |
Компонент сбора логов |
Db |
Сервер СУБД Postgres |
Pkg |
Менеджер репозиториев хранения пакетов |
Rdp |
Менеджер удаленного рабочего стола Microsoft RDP |
Lb |
Балансировщик Нагрузки |
На рисунке изображен вариант архитектуры «на одном сервере».
На рисунке изображен «типовой вариант» архитектуры.
Этот раздел определяет минимальные характеристики аппаратного и программного обеспечения, необходимые для обеспечения стабильной и оптимальной работы продукта.
Минимальные аппаратные требования:
Характеристика |
Минимальные требования |
|
|
Server 1 |
Server 2 |
Количество потоков процессора (vCPU – поток ядра) |
4 vCPU |
4 vCPU |
Количество оперативной памяти (RAM) |
20 Gb |
8 Gb |
Емкость дисковой подсистемы (HDD) |
200 Gb |
20 Gb |
Минимальные программные требования:
Сервер |
Ресурс |
Server 1 |
Debian 10, Astra Linux SE 1.7 и другие по согласованию сторон |
|
Nginx 11 и выше |
|
Nexus 3.32.0 и выше |
|
PostgreSQL 10 x86_64 и выше |
|
WildFly 26.1.3 final и выше |
|
Java bellsoft-jdk17.0.7 |
|
KeyCloack 21.1.1 |
|
RabbitMQ ver. 3.8.2 |
|
Logstash ver. 7.15 |
|
Kibana ver. 7.15 |
|
Elasticsearch ver. 7.15 |
Server 2 |
Debian 10, Astra Linux SE 1.7 и другие по согласованию сторон |
|
Haproxy 2.1.3 и выше |
Этот раздел предназначен для обеспечения пользователей и администраторов всей необходимой информацией, чтобы установить и настроить продукт с минимальным количеством проблем.
Установка решения доступна 2 вариантами:
Инструкции для обоих вариантов установки поставляются вместе с пакетом установки.
Предварительная подготовка к установке.
Предварительная настройка установки.
Группа |
Описание |
Ldap |
Ldap Сервер управления идентификацией и доступом Keycloak |
Rabbit |
Брокер сообщений на основе стандарта AMQP |
App |
Сервер приложений |
Front |
Сервер ВЕБ интерфейса |
Elastic |
Компонент хранения логов |
Kibana |
Компонент отчетов по логам |
Logstash |
Компонент сбора логов |
Db |
Сервер СУБД Postgres |
Pkg |
Менеджер репозиториев хранения пакетов |
Rdp |
Менеджер удаленного рабочего стола Microsoft RDP |
Lb |
Балансировщик Нагрузки |
\\ +Пример файла *HOSTS.INI{*}:+ \[ldap\] weborctest2 ansible_host=10.68.4.21 \[rabbit\] weborctest2 ansible_host=10.68.4.21 \[app\] weborctest1 ansible_host=10.68.4.20 weborctest2 ansible_host=10.68.4.21 weborctest3 ansible_host=10.68.4.22 \[front\] weborctest2 ansible_host=10.68.4.21 \[elastic\] weborctest2 ansible_host=10.68.4.21 \[kibana\] weborctest2 ansible_host=10.68.4.21 \[logstash\] weborctest2 ansible_host=10.68.4.21 \[db\] weborctest2 ansible_host=10.68.4.21 \[pkg\] weborctest2 ansible_host=10.68.4.21 \[rdp\] weborctest2 ansible_host=10.68.4.21 \[lb\] weborctest2 ansible_host=10.68.4.21 \\ |
В файле group_vars/all.yaml, из каталога установки (каталог в который был распакован дистрибутив, обычно это /opt), указать необходимые параметры устанавливаемых компонентов (в основном это пароли пользователей). +Пример файла *group_vars/all.yaml{*}:+ --- ##################################################################################### ### Общие параметры #Версия продукта cloud,enterprise, rcloud mode: enterprise # Путь к директории установки install_path: "/opt" # Создать самоподписанный SSL сертификат для защищенного подключения сервисов # В случае, если не использовать механизм генерации самоподписанного сертификата # (create_selfsigned_cert: false) # то перед запуском скриптов установки на все сервера (ноды) нужно в папку /opt # положить заранее сгенерированные файл сертификата /opt/cert.cer # файл закрытого ключа /opt/cert.key и файл со всей цепочкой сертификации /opt/fullchain.cer create_selfsigned_cert: true ##################################################################################### ### Секция Keycloak # Домен domain: "demo.robin" # Пароль для хранилища сертификатов Keycloak ldap_https_key_store_pass: "someSecret2023" # Пароль пользователя admin, задаваемый при автоинициализации ldap_admin_pass: "Qwerty123" # Пароль пользователей processes_activity, processes_admin, # processes_designer,processes_owner, задаваемый при автоинициализации ldap_user_pass: "Qwerty123" ##################################################################################### ### Секция DB # Пароль пользователя postgres db_postgres_pass: "Qwerty123" # Пароль пользователя robin внутри базы данных db_robin_pass: "Qwerty123" # Пароль пользователей user_orch, user_quartz, user_rpm, # keycloak, user_storage_provider внутри базы данных db_users_pass: "Qwerty123" ##################################################################################### ### Секция RabbitMQ # Пароль пользователя admin внутри брокера rabbit_admin_pass: "Qwerty123" # Пароль пользователя agent внутри брокера rabbit_agent_pass: "Qwerty123" # Пароль пользователя rmc внутри брокера rabbit_rmc_pass: "Qwerty123" # Пароль пользователя rms внутри брокера rabbit_rms_pass: "Qwerty123" # Пароль пользователя rdp внутри брокера rabbit_rdp_pass: "Qwerty123" ##################################################################################### ### Секция Nexus # Порт для доступа к нексусу. По умолчанию 8081, изменять только в случае ошибок. nexus_port: "8081" # Устанавливаемый пароль пользователя admin nexus_admin_pass: "Qwerty123" # Использовать SSL для подключения nexus_use_ssl: true # Порт SSL для доступа к нексусу. По умолчанию 8441, изменять только в случае ошибок. nexus_https_port: "8441" # Пароль для хранилища сертификатов Nexus nexus_https_key_store_pass: "someSecret2023" ##################################################################################### ### Секция Elasticsearch # Срок хранения логов в elasticsearch (пусто для отключени срока хранения) elastic_index_lifecycle: 60d # Использовать SSL сертификат для подключения elastic_use_ssl: false ##################################################################################### ### Секция Wildfly # Пароль пользователя admin для доступа к Wildfly. # Меняется в случае ручного изменения через скрипт add-user.sh. wf_admin_pass: "Qwerty123" # Пароль для хранилища сертификатов WildFly wf_https_key_store_pass: "someSecret2023" ##################################################################################### ### Секция Haproxy # Адрес балансировщика для доступа к сервисам lb_address: "\{\{ groups\['lb'\]\[0\] \}\}.\{\{ domain \}\}" ##################################################################################### |
Запустить установку.
Пример хода выполнения:
Пример успешного выполнения установки:
Запуск (повторный запуск) отдельных этапов установки.
В случае необходимости запуска (повторного запуска) отдельных этапов, на пример в случае сбоя необходимо:
Перечень этапов установки (данные этапы включены в дистрибутив поставки и отдельно что-либо скачивать не нужно)
Этап |
Описание |
prepos |
Предварительная установка общесистемных компонентов |
java |
Установка Java JDK |
db |
Установка СУБД Postgres |
flyway |
Миграция данных БД посредством FlyWay |
ldap |
Установка Keycloak |
nginx |
Установка WEB-сервера Nginx |
front |
Установка фронтэнд приложения |
pkg |
Установка Nexus репозиториев |
rabbit |
Установка менеджера очереди сообщений RabbitMQ |
elastic |
Установка ElasticSearch |
logstash |
Установка Logstash |
kibana |
Установка Kibana |
Install_app |
Установка сервера приложений WildFly |
app |
Настройка сервера приложений WildFly |
lb |
Установка балансировщика HAPROXY |