История страницы
Отображение дочерних элементов | ||||
---|---|---|---|---|
|
7.1.1 Назначение и состав решения
...
- Управление доступом
"Управление доступом" - это один из модулей, входящих в состав платформы ROBIN и предназначенный для управления пользователями платформы и настройки их прав доступа к модулям и объектам (роботы, машины и т.д.) системы. Модуль доступен только пользователям с ролью "Администратор прав доступа"
- Оркестратор
"Оркестратор" - это один из модулей, входящих в состав платформы ROBIN и предназначенный для запуска и контроля исполнения программных роботов, созданных с помощью ROBIN Studio. Модуль доступен только пользователям с ролью "Администратор оркестратора".
7.1.2 Архитектура
В разделе представлены основные компоненты решения, используемые архитектурные шаблоны и принципы, технологический стек, а также важные интеграционные аспекты.
В таблице представлены основные компоненты архитектуры и за что каждый из компонентов отвечает.
Keycloack??
Группа | Описание |
Ldap | Ldap Сервер управления идентификацией и доступом Keycloak |
Rabbit | Брокер сообщений на основе стандарта AMQP |
App | Сервер приложений |
Front | Сервер ВЕБ интерфейса |
Elastic | Компонент хранения логов |
Kibana | Компонент отчетов по логам |
Logstash | Компонент сбора логов |
Db | Сервер СУБД Postgres |
Pkg | Менеджер репозиториев хранения пакетов |
Rdp | Менеджер удаленного рабочего стола Microsoft RDP |
Lb | Балансировщик Нагрузки |
7.1.2.1 Архитектура на одном сервере
...
7.1.2.2 Типовой вариант
...
7.1.3 Требования к аппаратному и программному обеспечению
...
7.1.3.1 На одном сервере
7.1.3.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 и выше |
7.1.4 Установка решения
...
- Установка решения при помощи образа виртуальной машины. Данный метод установки предполагает наличие только Debian 10 в качестве операционной системы виртуальной машины.
- Установка решения при помощи Ansible скриптов
Инструкции для обоих вариантов установки поставляются вместе с пакетом установки.
7.1.4.1 Установка при помощи образа виртуальной машины
7.1.4.2 Установка при помощи Ansible скриптов
...
- Дистрибутив представляет собой ZIP архив, (ROBIN_orchestrator.zip) содержащий в себе скрипты, конфигурационные файлы и все необходимые дистрибутивы компонентов для установки.
- Установка производится с применением ansible скриптов включенных в дистрибутив.
- Необходимо подготовить и включить сервера либо виртуальные сервера на которые будет производиться установка
- Открыть на межсетевых эранах / фаерволах сетевые порты согласно требований.
- Распаковать дистрибутив автоматической установки в отдельный каталог (обычно, но не обязательно, это /opt) на сервер, с которого будет производится установка.
- Сгенерировать ключ шифрования для SSH. Для этого потребуется открыть терминал на сервере куда был распакован дистрибутив, и выполнить команду: ssh-keygen -t ed25519 где ed25519 это алгоритм генерации ключа, возможные варианты, применяются в зависимости от требований служб безопасности либо информационной безопасности, либо иных нормативных требований на стороне клиента: - rsa - dsa - ecdsa - ed25519
- Скопировать публичную часть сгенерированного ключа шифрования SSH на все ноды (компьютеры/сервера/виртуалки), на которые будет производится установка компонентов WEB-оркестратора в терминале одним из следующих способов: ● Командой из состава OpenSSH: ssh-copy-id -i ~/.ssh/id_.pub root@host ● Скриптом из дистрибутива: copy_ssh_id.sh host ● Вручную: скопировав содержимое файла ~/.ssh/id_.pub в файл на ноде /root/.ssh/authorized_keys Пример содержимого файла публичной части ключа id_ed25519.pub: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDFJ6fRg28O5nVA+WbWYaK3Gc9LVc80hd4moBTQdJGdJ root@keycloak
...
- В файле hosts.ini из каталога установщика указать IP адреса и имена нод компонентов установки. В случае если нод в группе несколько, например если для группы App – сервера приложений будет использоваться 3 отдельные виртуальные машины, указать необходимо все. Перечень всех групп нод:
Группа
Описание
Ldap
Ldap Сервер управления идентификацией и доступом Keycloak
Rabbit
Брокер сообщений на основе стандарта AMQP
App
Сервер приложений
Front
Сервер ВЕБ интерфейса
Elastic
Компонент хранения логов
Kibana
Компонент отчетов по логам
Logstash
Компонент сбора логов
Db
Сервер СУБД Postgres
Pkg
Менеджер репозиториев хранения пакетов
Rdp
Менеджер удаленного рабочего стола Microsoft RDP
Lb
Балансировщик Нагрузки
Wiki разметка \\ +Пример файла *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 \\
Wiki разметка В файле 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 \}\}" #####################################################################################
...
- Открыть терминал на сервер, с которого будет производится установка и куда был распакован дистрибутив.
- Перейти в каталог установщика (каталог, в который был распакован дистрибутив).
- Запустить установку командой: ansible-playbook ./start.yml
Пример хода выполнения:
- Результатом выполнения скриптов установки будет отчет о ходе установки. В котором указывается перечень серверов (блок PLAY RECAP), на которые была произведена установка и затраченное время на выполнение шагов установки. При этом Перечень серверов имеет цветовые градации: - зеленый или желтый – на сервер успешно были установлены все назначенные компоненты. - красный – в процессе установки были ошибки.
Пример успешного выполнения установки:
- В случае, если в процессе установки были какие-либо ошибки и процесс установке прервался, то в отчете будет красным цветом выделена ошибка. Необходимо устранить причину ошибки самостоятельно, либо обратившись в техподдержку и повторно запустить установку, либо отдельного компонента дистрибутива, либо всю установку целиком. Пример ошибки в процессе установки:
Запуск (повторный запуск) отдельных этапов установки.
В случае необходимости запуска (повторного запуска) отдельных этапов, на пример в случае сбоя необходимо:
- Открыть терминал на сервер, с которого будет производится установка и куда был распакован дистрибутив
- Перейти в каталог установщика. (каталог, в который был распакован дистрибутив)
- Запустить установку командой: ansible-playbook ./start.yml -t этап_установки
Перечень этапов установки (данные этапы включены в дистрибутив поставки и отдельно что-либо скачивать не нужно)
...
Этап
...
Описание
...
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
...