Настройка машины робота для Agent 1.26.7
Это руководство описывает шаги необходимые при настройке машины робота под управлением Агента версии 1.26.7.x на Astra Linux 1.7.x и Astra 1.8.x.
Для Agent 1.26.7 и выше:
- Инструкция актуальна для Astra Linux 1.7.x и 1.8.x
- Начиная с версии 1.26.7.1, автоматическое обновление Агента НЕ РАБОТАЕТ — обновление необходимо осуществить вручную
- Для версий 1.25.x и ниже используйте Общую инструкцию
- С версии 1.26.3 доступно Управление графическим сеансом
Агент Оркестратора запускает роботов средствами 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, может иметь другое имя; - путь
/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-rpa-admin).

Если пользователь primo-rpa-admin не был создан при установке как пользователь-администратор, то наделить его необходимыми привилегиями можно с помощью следующей команды:
[admin@astra-robot ~]$ sudo usermod -G cdrom,floppy,audio,dip,video,plugdev,netdev,lpadmin,astra-console,astra-admin primo-rpa-adminПодключение репозиториев
Выполните подключение машины робота к репозиториям 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Проверьте доступность репозиториев, используя следующую команду:
[primo-rpa-admin@astra-robot ~]$ sudo apt updateРепозитории main, update, base и extended должны присутствовать в выводе команды.
Astra Linux 1.8.х
При установке машины робота под управлением Astra Linux 1.8.х необходимо:
- на экране Настройка учётных записей и паролей создать пользователя-администратора (далее -
primo-rpa-admin).

Если пользователь primo-rpa-admin не был создан при установке как пользователь-администратор, то наделить его необходимыми привилегиями можно с помощью следующей команды:
[admin@astra-robot ~]$ sudo usermod -G cdrom,floppy,audio,dip,video,plugdev,netdev,lpadmin,astra-console,astra-admin primo-rpa-adminПодключение репозиториев
Выполните подключение машины робота к репозиториям main, update, и extended. Сами репозитории описаны в статье Интернет-репозитории Astra Linux Special Edition x.8 . Настройка локальных зеркал этих репозиториев описана в статье Создание репозиториев в закрытом сегменте
!!ВАЖНО!! Локальные репозитории необходимо выгружать на машине, имеющей доступ в Интернет.
Рекомендуется выделить одну машину под управлением Astra Linux 1.8.х для размещения на ней сервера репозиториев.
Для машины под управлением Astra Linux 1.8.х с доступом в Интернет файл /etc/apt/sources.list может выглядеть следующим образом:
deb https://download.astralinux.ru/astra/stable/1.8_x86-64/repository-extended/ 1.8_x86-64 main contrib non-free non-free-firmware
deb https://download.astralinux.ru/astra/stable/1.8_x86-64/repository-main/ 1.8_x86-64 main contrib non-free non-free-firmware
deb https://download.astralinux.ru/astra/stable/1.8_x86-64/repository-update/ 1.8_x86-64 main contrib non-free non-free-firmwareПроверьте доступность репозиториев, используя следующую команду:
[primo-rpa-admin@astra-robot ~]$ sudo apt updateРепозитории main, update и extended должны присутствовать в выводе команды.
Установка дополнительного ПО
Установите необходимое для работы робота ПО:
[primo-rpa-admin@astra-robot ~]$ sudo apt -y install xvfb tigervnc-standalone-server tigervnc-common expect dos2unixВНИМАНИЕ: ПО, необходимое для работы роботов, устанавливается по документации к ПО роботов.
Подготовка учётных записей и каталогов
Создание общей группы для агента и роботов
Для работы агента Оркестратора и роботов создайте общую группу:
[primo-rpa-admin@astra-robot ~]$ sudo groupadd primo-rpaСоздание и настройка учетной записи агента
Для работы агента Оркестратора создайте учётную запись:
[primo-rpa-admin@astra-robot ~]$ sudo useradd -g primo-rpa -m -s /bin/bash agentЕсли необходимо, задайте пароль учётной записи:
[primo-rpa-admin@redos-robot ~]$ sudo passwd agent
Новый пароль : ***
Повторите ввод нового пароля : ***
passwd: пароль успешно обновлёнНастройка учетной записи робота
Создание учётной записи робота robot1:
[primo-rpa-admin@astra-robot ~]$ sudo useradd -g primo-rpa -m -s /bin/bash robot1Установка пароля учётной записи робота robot1:
[primo-rpa-admin@astra-robot ~]$ sudo passwd robot1
Новый пароль : ***
Повторите ввод нового пароля : ***
passwd: пароль успешно обновлёнПосле создания учётной записи робота на машине робота, необходимо войти в графический сеанс этой учётной записи для инициализации графического окружения.
Рекомендуется отключить фон рабочего стола для экономии памяти. Для этого используйте:
ПКМ на рабочем столе -> Свойства -> Обои, удалить обои и логотип.
Запомните разрешение экрана, при котором тестируются действия робота - поиск изображений, клики и т.п., чтобы настроить такое же разрешение пользователю робота в Оркестраторе:
Пуск -> Настройка монитора.
Рекомендации по настройке пользователя робота в Оркестраторе (пользователя графического сеанса):
Для экономии памяти используйте минимально необходимую глубину цвета экрана - 24 или 16 бит.
Создание и настройка каталогов агента и роботов
Для работы агента Оркестратора создайте следующие каталоги:
[primo-rpa-admin@astra-robot ~]$ sudo mkdir -p /opt/Primo/Agent /opt/Primo/AgentData /opt/LTools
[primo-rpa-admin@astra-robot ~]$ sudo chown agent:primo-rpa /opt/Primo/Agent /opt/Primo/AgentData /opt/LTools
[primo-rpa-admin@astra-robot ~]$ sudo chmod g+w /opt/Primo/Agent /opt/Primo/AgentData /opt/LToolsНастройка журналов
Так как служба агента Оркестратора запускается пользователем без административных прав, то необходимо разрешить этому пользователю видеть системные логи агента Оркестратора:
[primo-rpa-admin@astra-robot ~]$ sudo install -m 2755 -g systemd-journal -o root -d /var/log/journal/
[primo-rpa-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-rpa-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Настройка агента Оркестратора
В конфигурационном файле /opt/Primo/Agent/appsettings.ProdLinux.json укажите имена пользователей agent и группы primo-rpa, а также путь к данным агента:
<pre>
"Agent": {
<b>"UserName": "agent",</b>
<b>"GroupName": "primo-rpa",</b>
<b>"DataPath": "/opt/Primo/AgentData",</b>
},
</pre>Убедитесь, что в конфигурационном файле /opt/Primo/Agent/appsettings.ProdLinux.json правильно указаны команды, с помощью которых агент запускает роботов и управляет машиной (здесь указаны правильные команды для Astra Linux 1.7 и Astra Linux 1.8):
<pre>
"AgentCommands": {
<b>"Reboot": "/usr/sbin/reboot",</b>
<b>"Session": "/usr/bin/fly-wm --execOnly {}"</b>
},
</pre>Для запуска графического сеанса и сеанса робота используется программа LTools.Orchestrator.Agent.Runner, идущая в комплекте с агентом. Файлом конфигурации этой программы является файл /opt/Primo/Agent/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+.
Процесс запуска робота
Рассмотрим шаги запуска робота (все сценарии выполняются с правами пользователя робота):
- С помощью
systemd-run/su -запускается сценарийstart-0-runner.sh, который содержит команду запуска Agent.Runner’а. Задачей Agent.Runner’а является настройка и запуск сервера Xwindow и сеанса для работы робота. - После успешной настройки и запуска сервера Xwindow, Agent.Runner запускает сценарий
start-1-session.sh, который содержит команды настройки и запуска сеанса графической оболочки (например, fly-wm в Astra Linux или MATE в RedOS Linux). - После успешной настройки и запуска сеанса графической оболочки запускается сценарий
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