Skip to Content

Установка и настройка агента Оркестратора 1.26.7.x на РЕД ОС 8.0.3 и выше (MATE и KDE)

Это руководство описывает установку и настройку машины робота под управлением РЕД ОС 8.0.3 и выше в пределах версии 8.x с графическим окружением MATE или KDE для работы с агентом Оркестратора версии 1.26.7.x.

Агент Оркестратора запускает роботов с помощью su, используя пароль пользователя робота. Для запуска, остановки и обновления самого агента достаточно прав обычного пользователя. Это позволяет использовать агент в среде с ограниченными привилегиями. Начальная настройка ОС и системных разрешений выполняется администратором.

Используемые имена и каталоги

В примерах используются следующие обозначения:

Имя или путьНазначение
primo-rpa-adminПользователь с административными привилегиями для начальной настройки ОС, учётных записей и каталогов
primo-rpaОбщая группа агента и роботов; упоминается в /etc/sudoers.d/primo-rpa-agent и appsettings.ProdLinux.json
agentУчётная запись агента Оркестратора; упоминается в /etc/sudoers.d/primo-rpa-agent и appsettings.ProdLinux.json
robot1Пример учётной записи робота
/opt/Primo/AgentКаталог установки агента; упоминается в конфигурации sudo и файле службы агента
/opt/Primo/AgentDataКаталог данных агента; указывается в appsettings.ProdLinux.json
/opt/LToolsКаталог роботов; указывается в appsettings.ProdLinux.json

Имя администратора, группы и пользователя агента могут отличаться. При изменении приведённых имён и путей необходимо согласованно скорректировать ссылки на них в соответствующих файлах и командах.

Внимание. Потребление ЦПУ, ОЗУ и дискового пространства зависит от графического окружения, фона рабочего стола, разрешения и глубины цвета экрана. сеанс KDE Plasma требует приблизительно в 2,5 раза больше ОЗУ, чем MATE. Изображение на рабочем столе расходует больше памяти, чем сплошной фон. Для глубины цвета 24 или 32 бита потребление памяти может быть приблизительно в четыре раза выше, чем при 16 битах. Чем больше ресурсов требует один сеанс, тем меньше роботов можно одновременно запускать на одной машине.

1. Действия при установке РЕД ОС

  1. На экране ВЫБОР ПРОГРАММ выберите базовое окружение Рабочая станция с графическим окружением (MATE) или Рабочая станция с графическим окружением (KDE).

    alt

  2. На экране СОЗДАНИЕ ПОЛЬЗОВАТЕЛЯ создайте пользователя с административными правами. Далее он обозначен как primo-rpa-admin.

    alt

Далее настройте репозитории, установите дополнительное ПО и создайте пользователей.

1.1. Подключение репозиториев

Подключите репозитории Base и Updates. Настройка локальных зеркал описывается в отдельной статье «Создание локального репозитория».

Важно. Локальные репозитории необходимо выгружать на компьютере с доступом в Интернет. Рекомендуется выделить отдельную машину под управлением РЕД ОС 8.0.x для сервера репозиториев.

Для машины с доступом в Интернет содержимое /etc/yum.repos.d/RedOS-Base.repo может выглядеть следующим образом:

[base] name=RedOS - Base baseurl=https://repo3.red-soft.ru/redos/8.0/$basearch/os gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RED-SOFT enabled=1

Пример содержимого /etc/yum.repos.d/RedOS-Updates.repo:

[updates] name=RedOS - Updates baseurl=https://repo3.red-soft.ru/redos/8.0/$basearch/updates gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RED-SOFT enabled=1

Проверьте доступность репозиториев:

sudo dnf repolist

В выводе команды должны присутствовать репозитории base и updates.

1.2. Установка дополнительного ПО

Чтобы на рабочем столе робота не появлялись уведомления об автоматическом обновлении ПО, удалите dnfdragora:

sudo dnf -y remove dnfdragora

Установите пакеты, необходимые для работы агента:

sudo dnf -y install xorg-x11-server-Xvfb tigervnc-server expect dos2unix

Если окружение MATE не было установлено вместе с ОС, выполните:

sudo dnf groupinstall mate-desktop

Если окружение KDE не было установлено вместе с ОС, выполните:

sudo dnf groupinstall kde-desktop-environment

Внимание. Дополнительное ПО, необходимое непосредственно для работы роботов, устанавливается согласно документации на соответствующее ПО роботов. Приведённый набор пакетов не заменяет эти требования.

2. Подготовка учётных записей и каталогов

Команды в этом разделе выполняет пользователь primo-rpa-admin с помощью sudo, если не указано иное.

2.1. Создание общей группы

Создайте группу для агента Оркестратора и роботов:

sudo groupadd primo-rpa

2.2. Создание учётной записи агента

Создайте пользователя agent:

sudo useradd -g primo-rpa -m -s /bin/bash agent

При необходимости задайте пароль:

sudo passwd agent

Пример результата:

Изменение пароля пользователя agent. Новый пароль: *** Повторите ввод нового пароля: *** passwd: данные аутентификации успешно обновлены.

2.3. Создание учётной записи робота

Создайте пользователя robot1:

sudo useradd -g primo-rpa -m -s /bin/bash robot1

Установите пароль:

sudo passwd robot1

Пример результата:

Изменение пароля пользователя robot1. Новый пароль: *** Повторите ввод нового пароля: *** passwd: данные аутентификации успешно обновлены.

Войдите на машине робота в графический сеанс под учётной записью robot1, чтобы инициализировать графическое окружение.

Для снижения расхода памяти рекомендуется отключить фон рабочего стола. Для этого используйте: ПКМ на рабочем столе → Параметры внешнего вида → Фон → Без фона рабочего стола.

Определите разрешение экрана, на котором проверялись действия робота (поиск изображений, щелчки и другие действия). Такое же разрешение укажите для пользователя робота в Оркестраторе. Откройте Пуск → Параметры → Экраны.

Рекомендация. При настройке пользователя робота в Оркестраторе (пользователя РДП) для экономии памяти выбирайте минимально необходимую глубину цвета — 24 или 16 бит.

2.4. Создание каталогов

Создайте каталоги агента, его данных и роботов:

sudo mkdir -p /opt/Primo/Agent /opt/Primo/AgentData /opt/LTools

Назначьте владельца и группу:

sudo chown -R agent:primo-rpa /opt/Primo/Agent /opt/Primo/AgentData /opt/LTools

Разрешите группе запись:

sudo chmod -R g+w /opt/Primo/Agent /opt/Primo/AgentData /opt/LTools

2.5. Настройка журналов

Поскольку служба агента работает от имени пользователя без административных привилегий, настройте доступ к системным журналам:

sudo install -m 2755 -g systemd-journal -o root -d /var/log/journal/ sudo systemctl restart systemd-journald

2.6. Настройка прав sudo

Настройте файл /etc/sudoers.d/primo-rpa-agent так, чтобы он содержал следующие правила:

agent ALL=(root) NOPASSWD: /usr/sbin/reboot agent ALL=(root) NOPASSWD: /usr/bin/systemd-run -G --uid=agent --gid=primo-rpa --property=EnvironmentFile=/dev/shm/agent-*-env /opt/Primo/Agent/launch-as-user.expect

Первая строка разрешает пользователю agent выполнять /usr/sbin/reboot от имени root без ввода пароля для перезагрузки машины агента.

Вторая строка разрешает пользователю agent запускать /usr/bin/systemd-run от имени root с указанными аргументами, чтобы запускать сеансы роботов с помощью systemd.

Внимание. Других строк, кроме комментариев, в файле /etc/sudoers.d/primo-rpa-agent быть не должно!

2.7. Настройка брандмауэра

Установка и настройка брандмауэра описаны в руководстве РЕД ОС.

Для доступа к API агента Оркестратора откройте порт 5002/tcp:

sudo firewall-cmd --zone=public --add-port=5002/tcp --permanent sudo firewall-cmd --reload

2.8. Настройка SELinux

Если на машине робота используется SELinux, установите режим permissive. В файле /etc/selinux/config укажите:

SELINUX=permissive

Внимание. В режиме enforcing подсистема SELinux блокирует запуск роботов!

3. Установка агента Оркестратора

Внимание. Все команды в разделах 3 и 4 выполняются от имени пользователя agent, если не указано иное. Для работы со службой применяется пользовательский экземпляр systemd.

3.1. Распаковка файлов агента

Подготовьте архив Agent-linux.zip в каталоге /srv/samba/shared/install и обеспечьте пользователю agent доступ на чтение.

Распакуйте файлы агента:

unzip /srv/samba/shared/install/Agent-linux.zip -d /opt/Primo/Agent

Назначьте права на исполнение:

chmod a+x /opt/Primo/Agent/Primo.Orchestrator.Agent /opt/Primo/Agent/LTools.Orchestrator.Agent.Runner /opt/Primo/Agent/launch-as-user.expect

3.2. Регистрация службы и настройка автозапуска

Создайте каталог пользовательских служб:

mkdir -p ~/.config/systemd/user

Скопируйте файл службы:

cp /opt/Primo/Agent/Primo.Orchestrator.Agent.user.service ~/.config/systemd/user/Primo.Orchestrator.Agent.service

Включите автозапуск службы:

systemctl --user enable ~/.config/systemd/user/Primo.Orchestrator.Agent.service

Включите поддержку длительной работы пользовательских служб:

loginctl enable-linger agent

Перечитайте конфигурацию пользовательских служб:

systemctl --user daemon-reload

3.3. Настройка параметров агента

В файле /opt/Primo/Agent/appsettings.ProdLinux.json проверьте имена пользователя и группы и путь к данным агента. Соответствующий фрагмент конфигурации:

"Agent": { "UserName": "agent", "GroupName": "primo-rpa", "DataPath": "/opt/Primo/AgentData" }

Проверьте параметры команд в том же файле. Для MATE используйте следующий путь к графической сессии:

"AgentCommands": { "Reboot": "/usr/sbin/reboot", "Session": "/usr/bin/mate-session" }

Для KDE значение параметра Session должно быть следующим:

"Session": "/usr/bin/startplasma-x11"

Остальные параметры объекта AgentCommands остаются без изменений, если не требуется иное по конфигурации вашей установки.

3.4. Разрешение подключения Оркестратора к агенту

Для просмотра графического сеанса пользователя и управления им укажите разрешённые источники подключения к агенту в appsettings.ProdLinux.json:

"EnabledOrigins": [ "https://192.168.61.183:44392", "https://redos8-orch-26:44392" ]

Важно. Вместо приведённых IP-адреса и имени хоста укажите адреса вашего Оркестратора.

3.5. Настройка расширенного журналирования

Для запуска графической сессии и робота используется программа LTools.Orchestrator.Agent.Runner, поставляемая вместе с агентом. Её конфигурационный файл — /opt/Primo/Agent/appsettings.Runner.json.

В файле предусмотрены следующие параметры:

"MinimumLevel": { "Default": "Warning", "Override": { // "LTools.Orchestrator.Agent.Runner.XServerLogger": "Information", // "LTools.Orchestrator.Agent.Runner.RobotSessionLogger": "Information" } }

Для расширенной диагностики запуска графической сессии раскомментируйте XServerLogger. Для диагностики запуска сеанса графического окружения и робота — RobotSessionLogger. Журналы по умолчанию располагаются в /opt/Primo/Agent/Logs.

Для записи журналов Agent.Runner в отдельные файлы по пользователям роботов задайте имя файла в конфигурации следующим образом:

"Args": { "path": "/opt/Primo/Agent/Logs/Robot-runner-.txt", "retainedFileCountLimit": "20" }

Подстрока Robot в пути к файлу заменяется именем пользователя робота.

4. Запуск, остановка и ручное обновление агента

Внимание. Все команды этого раздела выполняет пользователь agent.

4.1. Управление службой

Запуск службы:

systemctl --user start Primo.Orchestrator.Agent

Просмотр состояния:

systemctl --user status Primo.Orchestrator.Agent

Просмотр журнала:

journalctl --user -u Primo.Orchestrator.Agent

Остановка службы:

systemctl --user stop Primo.Orchestrator.Agent

4.2. Ручное обновление агента

Внимание. Ручное обновление агента Оркестратора допускается только при остановленной службе агента.

Убедитесь, что архив Agent-linux.zip находится в /srv/samba/shared/install и доступен для чтения пользователю agent. Остановите службу командой из раздела 4.1.

Обновите файлы агента, сохранив текущие настройки:

unzip -o -u /srv/samba/shared/install/Agent-linux.zip -d /opt/Primo/Agent -x appsettings.ProdLinux.json appsettings.json appsettings.Runner.json

Восстановите права на выполнение:

chmod a+x /opt/Primo/Agent/Primo.Orchestrator.Agent /opt/Primo/Agent/LTools.Orchestrator.Agent.Runner /opt/Primo/Agent/launch-as-user.expect

После завершения обновления службу можно запустить командой из раздела 4.1.

5. Сценарии настройки запуска робота

Возможности этого раздела,, доступны в версиях агента 1.25.7.8+ и 1.26.6+, включая рассматриваемую ветку 1.26.7.x.

5.1. Порядок запуска

Все сценарии выполняются от имени пользователя робота.

  1. С помощью systemd-run / su - запускается start-0-runner.sh, содержащий команду запуска Agent.Runner. Программа подготавливает и запускает сервер X Window и сеанс для работы робота.
  2. После успешного запуска X Window программа Agent.Runner запускает start-1-session.sh, содержащий команды настройки и запуска графической оболочки (например, MATE в РЕД ОС или fly-wm в Astra Linux).
  3. После успешного запуска графической оболочки выполняется start-2-robot.sh, содержащий команду запуска процесса робота с аргументами.

На каждом из этих этапов предусмотрена проверка существования и запуска (при наличии) дополнительных пользовательских сценариев настройки.

5.2. Сценарии настройки этапов запуска

Все пути ниже указываются относительно домашнего каталога пользователя робота, то есть ~/.config/robot/.

СценарийКогда выполняетсяСостояние средыКуда записывается консольный вывод
pre-runner.shПеред запуском Agent.RunnerX Window не запущен, графический сеанс недоступен; доступен низкоуровневый сеанс systemd/var/log/syslog
post-runner.shПосле завершения Agent.RunnerX Window остановлен, графический сеанс недоступен; доступен низкоуровневый сеанс systemd/var/log/syslog
pre-session.shПеред запуском графической оболочкиX Window запущен, графический сеанс ещё недоступен; доступен низкоуровневый сеанс systemdЖурнал Agent.Runner
post-session.shПосле завершения графической оболочкиX Window ещё запущен, графический сеанс недоступен; доступен низкоуровневый сеанс systemdЖурнал Agent.Runner
pre-robot.shПеред запуском роботаX Window запущен, графический и низкоуровневый сеансы доступныЖурнал Agent.Runner
post-robot.shПосле завершения роботаX Window ещё запущен, графический и низкоуровневый сеансы доступныЖурнал Agent.Runner

Условие выполнения: соответствующий файл должен существовать и иметь право на исполнение.

5.3. Пример использования pre-robot.sh

В некоторых случаях для корректной работы окна загрузки файла в браузере необходим процесс xdg-desktop-portal-kde. Чтобы запустить его до старта робота, файл ~/.config/robot/pre-robot.sh может содержать следующие команды:

#!/bin/sh /usr/lib/x86_64-linux-gnu/libexec/xdg-desktop-portal-kde
Last updated on