Skip to Content

Astra Linux 1.7.х настройка машины робота для Agent 1.26.7+

ℹ️

Данная инструкция предназначена для Agent 1.26.7 и выше. Для более старых версий (1.25.x и ниже) используйте: Общая инструкция по установке агента

⚠️

Важно! Начиная с версии 1.26.7.1, автоматическое обновление Агента НЕ РАБОТАЕТ. Обновление необходимо выполнять ВРУЧНУЮ.

Агент оркестратора запускает роботов средствами su - используя пароль пользователя робота. Для запуска, останова и обновления агента достаточно прав обычного пользователя, что позволяет использовать агента в среде с ограниченными привилегиями.

В данном руководстве используются следующие имена пользователей, групп и каталогов:

  • пользователь primo-admin - пользователь обладающий административными привилегиями необходимыми для начальной настройки операционной системы, каталогов и других пользователей и групп;
  • группа primo-rpa - общая группа для агента оркестратора и роботов, упоминается в файле /etc/sudoers.d/primo-rpa-agent;
  • пользователь agent - пользователь агента оркестратора;
  • путь /opt/Primo/Agent - каталог для установки агента оркестратора, упоминается в файле Primo.Orchestrator.Agent.service;
  • путь /opt/Primo/AgentData - каталог для файлов агента оркестратора, упоминается в файле appsettings.ProdLinux.json;
  • путь /opt/LTools - каталог роботов, упоминается в файле appsettings.ProdLinux.json.

ВНИМАНИЕ Использование ресурсов машины робота (ЦПУ, ОЗУ, дисковое пространство) напрямую зависит от наличия изображения на рабочем столе, разрешения и глубины цвета экрана следующим образом:

  • наличие изображения на рабочем столе требует больше ОЗУ чем использование сплошного цвета;
  • использование больших глубин цвета требует больше ОЗУ чем использование маленьких значений, примерная зависимость - для глубин 32 или 24 бит требуется в четыре раза больше ОЗУ чем для глубины 16 бит. В итоге, чем больше ресурсов необходимо для одного сеанса робота тем меньше роботов могут работать одновременно на одной машине робота.

Содержание

Действия при установке Astra Linux 1.7.х

При установке машины робота под управлением Astra Linux 1.7.х необходимо:

  • на экране Настройка учётных записей и паролей создать пользователя-администратора (далее - primo-admin).

alt Создание пользователя

Если пользователь primo-admin не был создан при установке как пользователь-администратор, то наделить его необходимыми привилегиями можно с помощью следующей команды:

[admin@astra-robot ~]$ sudo usermod -G cdrom,floppy,audio,dip,video,plugdev,netdev,lpadmin,astra-console,astra-admin primo-admin

Установка дополнительного ПО и создание дополнительных пользователей будет описана ниже.

Настройка дополнительного ПО

  1. Выполните подключение машины робота к репозиториям main, update, base и extended. Сами репозитории описаны в статье Интернет-репозитории Astra Linux Special Edition x.7. Настройка локальных зеркал этих репозиториев описана в статье Создание репозиториев для операционной системы Astra Linux Special Edition x.7 в закрытом сегменте

!ВАЖНО! Локальные репозитории необходимо выгружать на машине, имеющей доступ в Интернет.

Рекомендуется выделить одну машину под управлением Astra Linux 1.7.х для размещения на ней сервера репозиториев.

Для машины под управлением Astra Linux 1.7.х с доступом в Интернет файл /etc/apt/sources.list может выглядеть следующим образом:

deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-main/ 1.7_x86-64 main contrib non-free deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-update/ 1.7_x86-64 main contrib non-free deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-base/ 1.7_x86-64 main contrib non-free deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 main contrib non-free deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 astra-ce
  1. Проверьте доступность репозиториев, используя следующую команду:
[primo-admin@astra-robot ~]$ sudo apt update

Репозитории main, update, base и extended должны присутствовать в выводе команды.

  1. Установите необходимое для работы робота ПО:
[primo-admin@astra-robot ~]$ sudo apt -y install xvfb python3-numpy python3-opencv xdotool graphicsmagick-imagemagick-compat tigervnc-standalone-server tigervnc-common expect

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

Создание общей группы для агента и роботов

Для работы агента оркестратора и роботов создайте общую группу:

[primo-admin@astra-robot ~]$ sudo groupadd primo-rpa

Создание и настройка учетной записи агента

Для работы агента оркестратора создайте учётную запись:

[primo-admin@astra-robot ~]$ sudo useradd -g primo-rpa -m -s /bin/bash agent

Если необходимо, задайте пароль учётной записи:

[primo-admin@redos-robot ~]$ sudo passwd agent Новый пароль : *** Повторите ввод нового пароля : *** passwd: пароль успешно обновлён

Настройка учетной записи робота

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

[primo-admin@astra-robot ~]$ sudo useradd -g primo-rpa -m -s /bin/bash robot1

Установка пароля учётной записи робота robot1:

[primo-admin@astra-robot ~]$ sudo passwd robot1 Новый пароль : *** Повторите ввод нового пароля : *** passwd: пароль успешно обновлён

После создания учётной записи робота на машине робота необходимо войти в графический сеанс этой учётной записи для инициализации графического окружения.

Рекомендуется отключить фон рабочего стола для экономии памяти. Для этого используйте:

ПКМ на рабочем столе -> Свойства -> Обои, удалить обои и логотип.

Запомните разрешение экрана, при котором тестируются действия робота - поиск изображений, клики и т.п., чтобы настроить такое же разрешение пользователю робота в Оркестраторе:

Пуск -> Настройка монитора.

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

Создание и настройка каталогов агента и роботов

Для работы агента оркестратора создайте следующие каталоги:

[primo-admin@astra-robot ~]$ sudo mkdir -p /opt/Primo/Agent /opt/Primo/AgentData /opt/LTools [primo-admin@astra-robot ~]$ sudo chown agent:primo-rpa /opt/Primo/Agent /opt/Primo/AgentData /opt/LTools [primo-admin@astra-robot ~]$ sudo chmod g+w /opt/Primo/Agent /opt/Primo/AgentData /opt/LTools

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

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

[primo-admin@astra-robot ~]$ sudo install -m 2755 -g systemd-journal -o root -d /var/log/journal/ [primo-admin@astra-robot ~]$ sudo systemctl restart systemd-journald

Настройка прав 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.

Внимание Никаких других строк (кроме комментариев) в этом файле быть не должно!

Настройка правила брандмауэра ufw

Установка и настройка брандмауэра ufw описана в статье Межсетевой экран ufw.

Для разрешения доступа к API агента оркестратора выполните следующее:

[primo-admin@astra-robot ~]$ sudo ufw allow 5002/tcp

Установка агента оркестратора

Внимание Команды в этом разделе выполняются пользователем agent!

Разворачивание файлов агента оркестратора (файл Agent-linux.zip должен находиться в каталоге /srv/samba/shared/install и быть доступен для чтения пользователю agent):

[agent@astra-robot ~]$ unzip /srv/samba/shared/install/Agent-linux.zip -d /opt/Primo/Agent [agent@astra-robot ~]$ chmod a+x /opt/Primo/Agent/Primo.Orchestrator.Agent /opt/Primo/Agent/LTools.Orchestrator.Agent.Runner /opt/Primo/Agent/launch-as-user.expect

Установите агент оркестратора как службу и настройте автозапуск:

[agent@astra-robot ~]$ mkdir -p ~/.config/systemd/user [agent@astra-robot ~]$ cp /opt/Primo/Agent/Primo.Orchestrator.Agent.user.service ~/.config/systemd/user/Primo.Orchestrator.Agent.service [agent@astra-robot ~]$ systemctl --user enable Primo.Orchestrator.Agent.service [agent@astra-robot ~]$ loginctl enable-linger agent [agent@astra-robot ~]$ systemctl --user daemon-reload

Настройка агента оркестратора

В конфигурационном файле appsettings.ProdLinux.json укажите путь к данным агента:

<pre> "Agent": { <b>"DataPath": "/opt/Primo/AgentData",</b> }, </pre>

Убедитесь, что в конфигурационном файле appsettings.ProdLinux.json правильно указаны команды, с помощью которых агент запускает роботов и управляет машиной (здесь указаны правильные команды для Astra Linux 1.7):

<pre> "AgentCommands": { <b>"Reboot": "/usr/sbin/reboot",</b> <b>"Session": "/usr/bin/fly-wm --execOnly {}"</b> }, </pre>

Для запуска графического сеанса и сеанса робота используется программа LTools.Orchestrator.Agent.Runner идущая в комплекте с агентом. Файлом конфигурации этой программы является файл appsettings.Runner.json:

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

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

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

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

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

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

Внимание Команды в этом разделе выполняются пользователем agent!

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

[agent@astra-robot ~]$ systemctl --user start Primo.Orchestrator.Agent

Просмотр статуса службы:

[agent@astra-robot ~]$ systemctl --user status Primo.Orchestrator.Agent

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

[agent@astra-robot ~]$ journalctl --user -u Primo.Orchestrator.Agent

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

[agent@astra-robot ~]$ systemctl --user stop Primo.Orchestrator.Agent

Внимание Ручное обновление агента оркестратора можно производить ТОЛЬКО при остановленной службе агента оркестратора!

Обновление файлов агента оркестратора на машине роботов (файл Agent-linux.zip должен находиться в каталоге /srv/samba/shared/install и быть доступен для чтения пользователю agent):

[agent@astra-robot ~]$ unzip -o -u /srv/samba/shared/install/Agent-linux.zip -d /opt/Primo/Agent -x appsettings.ProdLinux.json appsettings.json appsettings.Runner.json [agent@astra-robot ~]$ chmod a+x /opt/Primo/Agent/Primo.Orchestrator.Agent /opt/Primo/Agent/LTools.Orchestrator.Agent.Runner /opt/Primo/Agent/launch-as-user.expect

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

Описанные в этом разделе возможности доступны в Агенте 25.7.8+ и 26.6+

Процесс запуска робота

Рассмотрим шаги запуска робота (все сценарии выполняются с правами пользователя робота):

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

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

В каждом из упомянутых ваше сценариев (start-0-runner.sh, start-1-session.sh и start-2-robot.sh) есть команды для проверки наличия и запуска (при наличии) сценариев настройки каждого этапа.

~/.config/robot/pre-runner.sh

Если этот файл существует и является исполняемым, то он запускается перед запуском Agent.Runner’а. Если этот сценарий что-то выводит на консоль, то этот вывод записывается в /var/log/syslog. Во время работы этого сценария, сервер Xwindow ещё не запущен, графический сеанс не доступен, а доступен только низкоуровневый сеанс systemd.

~/.config/robot/post-runner.sh

Если этот файл существует и является исполняемым, то он запускается после завершения Agent.Runner’а. Если этот сценарий что-то выводит на консоль, то этот вывод записывается в /var/log/syslog. Во время работы этого сценария, сервер Xwindow уже остановлен, графический сеанс не доступен, а доступен только низкоуровневый сеанс systemd.

~/.config/robot/pre-session.sh

Если этот файл существует и является исполняемым, то он запускается перед запуском графической оболочки. Если этот сценарий что-то выводит на консоль, то этот вывод записывается в журнал Agent.Runner’а. Во время работы этого сценария, сервер Xwindow уже запущен, но графический сеанс не доступен, а доступен только низкоуровневый сеанс systemd.

~/.config/robot/post-session.sh

Если этот файл существует и является исполняемым, то он запускается после завершения графической оболочки. Если этот сценарий что-то выводит на консоль, то этот вывод записывается в журнал Agent.Runner’а. Во время работы этого сценария, сервер Xwindow ещё запущен, графический сеанс не доступен, а доступен только низкоуровневый сеанс systemd.

~/.config/robot/pre-robot.sh

Если этот файл существует и является исполняемым, то он запускается перед запуском робота. Если этот сценарий что-то выводит на консоль, то этот вывод записывается в журнал Agent.Runner’а. Во время работы этого сценария, сервер Xwindow уже запущен, графический сеанс доступен, а также доступен низкоуровневый сеанс systemd.

~/.config/robot/post-robot.sh

Если этот файл существует и является исполняемым, то он запускается после завершения робота. Если этот сценарий что-то выводит на консоль, то этот вывод записывается в журнал Agent.Runner’а. Во время работы этого сценария, сервер Xwindow ещё запущен, графический сеанс доступен, а также доступен низкоуровневый сеанс systemd.

Пример использования сценария

Для обеспечения работоспособности окна загрузки браузера в некоторых случаях необходим процесс 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