Назначение и состав решения
Архитектура
Описание работы с пользовательским интерфейсом
WEB Orchestrator – компонент платформы ROBIN, служба диспетчеризации и администрирования запуска роботов. Позволяет запускать роботов по расписанию/событию и отслеживать статусы исполнения задач, просматривать логи и ошибки.
Рассмотрим основные функциональные возможности Web Orchestrator:
Web-версия платформы Robin состоит из различных модулей, которые доступны из одного общего интерфейса. Одним из модулей является модуль "Оркестратор".
"Оркестратор" - это один из модулей, входящих в состав платформы ROBIN и предназначенный для запуска и контроля исполнения программных роботов, созданных с помощью ROBIN Studio. Модуль доступен только пользователям с ролью "Администратор оркестратора".
В таблице представлены основные компоненты, входящие в состав Оркестратора, и за что каждый из компонентов отвечает.
Компонент* | Наименование сервиса* |
Keycloack | Приложение для реализации единой точки аутентификации и авторизации |
Rabbit | Брокер сообщений на основе стандарта AMQP |
WildFly | Сервер приложений |
Nginx | Сервер ВЕБ интерфейса |
Elastic | Компонент хранения логов |
Kibana | Компонент отчетов по логам |
Logstash | Компонент сбора логов |
PostgreSQL | Сервер СУБД PostgreSQL |
Nexus | Менеджер репозиториев хранения пакетов |
Rdp | Менеджер удаленного рабочего стола Microsoft RDP |
HAProxy | Балансировщик Нагрузки |
В разделе представлены основные компоненты решения, используемые архитектурные шаблоны и принципы, а также технологический стек.
В настоящее время существует возможность использования типовой архитектуры или на одном сервере.
На рисунке изображен «типовой вариант» архитектуры.
7.1.2.2 Архитектура на одном сервере
На рисунке изображен вариант архитектуры «на одном сервере».
Этот раздел определяет минимальные характеристики аппаратного и программного обеспечения, необходимые для обеспечения стабильной и оптимальной работы продукта.
Минимальные аппаратные требования:
Характеристика
| Минимальные требования
| |
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 вариантами:
Инструкции для обоих вариантов установки поставляются вместе с пакетом установки.
Предварительная подготовка к установке.
Предварительная настройка установки.
В файле hosts.ini из каталога установщика указать IP адреса и имена нод компонентов установки. В случае если нод в группе несколько, например если для группы App – сервера приложений будет использоваться 3 отдельные виртуальные машины, указать необходимо все. Перечень всех групп нод:
Группа | Описание |
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 |