Skip to Content

Настройка машины робота

Это руководство описывает шаги, необходимые при настройке машины робота под управлением Агента версии 1.25.х на Astra Linux 1.7.x.

Агент Оркестратора может работать и запускать роботов в одном из трёх режимов:

  • atd (классический) - рекомендуется использовать только для дистрибутивов Linux не поддерживающих systemd, в этом режиме для запуска, останова и обновления агента необходимы права администратора;
  • systemd (современный) - рекомендуется использовать для дистрибутивов Linux поддерживающих systemd, в этом режиме для запуска, останова и обновления агента необходимы права администратора;
  • user (непривилегированный) - рекомендуется использовать для дистрибутивов Linux поддерживающих systemd и работающих в среде с ограниченными привилегиями, в этом режиме для запуска, останова и обновления агента достаточно прав пользователя обычного пользователя.

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

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

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

При необходимости, Вы можете использовать другие имена групп, пользователей и каталогов; в этом случае необходимо их изменить в упомянутых файлах.

Содержание

  • Действия при установке Astra Linux 1.7.х
  • Подготовка учётных записей и каталогов
  • Установка агента Оркестратора

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

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

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

СОЗДАНИЕ ПОЛЬЗОВАТЕЛЯ

Для предоставления пользователю 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 должны присутствовать в выводе команды.

  2. Установите необходимое для работы робота ПО:

    [primo-admin@astra-robot ~]$ sudo apt -y install xsel at xvfb python3 python3-pyatspi python3-numpy xdotool imagemagick python3-opencv wmctrl

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

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

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

[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

Настройка журналов для режима user

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

[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

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

Режим atd

Для корректной работы агента Оркестратора файл /etc/sudoers.d/primo-rpa-agent должен выглядеть следующим образом:

agent ALL = (ALL) NOPASSWD: /usr/sbin/reboot agent ALL = (%primo-rpa) NOPASSWD: /usr/bin/kill agent ALL = (%primo-rpa) NOPASSWD: /usr/bin/at agent ALL = (ALL) NOPASSWD: /usr/bin/systemctl stop Primo.Orchestrator.Agent agent ALL = (ALL) NOPASSWD: /usr/bin/systemctl start Primo.Orchestrator.Agent

Пояснения:

  • первая строка разрешает пользователю agent запуск команды /usr/sbin/reboot с правами пользователя root без ввода пароля, то есть, позволяет агенту перезагрузить машину агента;
  • вторая строка разрешает пользователю agent запуск команды /usr/bin/kill с правами любого пользователя из группы primo-rpa без ввода пароля, то есть, позволяет агенту завершить процесс любого робота;
  • третья строка разрешает пользователю agent запуск команды /usr/bin/atс правами любого пользователя из группыprimo-rpaбез ввода пароля, то есть, позволяет агенту запустить робота с помощью службыatd`;
  • четвёртая строка разрешает пользователю agent запуск команды /usr/bin/systemctl stop Primo.Orchestrator.Agent с правами пользователя root без ввода пароля, то есть, позволяет агенту остановить свою службу перед обновлением;
  • пятая строка разрешает пользователю agentзапуск команды /usr/bin/systemctl start Primo.Orchestrator.Agent с правами пользователя root без ввода пароля, то есть, позволяет агенту запустить свою службу после обновления.
⚠️

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

Режим systemd

Для корректной работы агента Оркестратора файл /etc/sudoers.d/primo-rpa-agent должен выглядеть следующим образом:

agent ALL = (ALL) NOPASSWD: /usr/sbin/reboot agent ALL = (%primo-rpa) NOPASSWD: /usr/bin/kill agent ALL = (%primo-rpa) NOPASSWD:SETENV: /usr/bin/systemd-run -G --user --unit * agent ALL = (%primo-rpa) NOPASSWD:SETENV: /usr/bin/systemctl --user stop * agent ALL = (%primo-rpa) NOPASSWD: /usr/bin/loginctl enable-linger * agent ALL = (ALL) NOPASSWD: /usr/bin/systemctl stop Primo.Orchestrator.Agent agent ALL = (ALL) NOPASSWD: /usr/bin/systemctl start Primo.Orchestrator.Agent

Пояснения:

  • первая строка разрешает пользователю agent запуск команды /usr/sbin/reboot с правами пользователя `root“ без ввода пароля, то есть, позволяет агенту перезагрузить машину агента;
  • вторая строка разрешает пользователю agent запуск команды /usr/bin/kill с правами любого пользователя из группы primo-rpa без ввода пароля, то есть, позволяет агенту завершить процесс любого робота;
  • третья строка разрешает пользователю agent запуск команды /usr/bin/systemd-run с правами любого пользователя из группы primo-rpa без ввода пароля, то есть, позволяет агенту запустить сеанс робота с помощью службы systemd;
  • четвёртая строка разрешает пользователю agent запуск команды /usr/bin/systemctl с правами любого пользователя из группы primo-rpa без ввода пароля, то есть, позволяет агенту корректно остановить сеанс робота с помощью службы systemd;
  • пятая строка разрешает пользователю agent запуск команды /usr/bin/loginctl с правами любого пользователя из группы primo-rpa без ввода пароля, то есть, позволяет агенту включить поддержку сеансов для робота;
  • шестая строка разрешает пользователю agent запуск команды /usr/bin/systemctl stop Primo.Orchestrator.Agent с правами пользователя root без ввода пароля, то есть, позволяет агенту остановить свою службу перед обновлением;
  • седьмая строка разрешает пользователю agent запуск команды /usr/bin/systemctl start Primo.Orchestrator.Agent с правами пользователя root без ввода пароля, то есть, позволяет агенту запустить свою службу после обновления.
⚠️

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

Режим user

Для корректной работы агента Оркестратора файл /etc/sudoers.d/primo-rpa-agent должен выглядеть следующим образом:

agent ALL = (ALL) NOPASSWD: /usr/sbin/reboot agent ALL = (%primo-rpa) NOPASSWD: /usr/bin/kill agent ALL = (%primo-rpa) NOPASSWD:SETENV: /usr/bin/systemd-run -G --user --unit * agent ALL = (%primo-rpa) NOPASSWD:SETENV: /usr/bin/systemctl --user stop * agent ALL = (%primo-rpa) NOPASSWD: /usr/bin/loginctl enable-linger *

Пояснения:

  • первая строка разрешает пользователю agent запуск команды /usr/sbin/reboot с правами пользователя root без ввода пароля, то есть, позволяет агенту перезагрузить машину агента;
  • вторая строка разрешает пользователю agent запуск команды /usr/bin/kill с правами любого пользователя из группы primo-rpa без ввода пароля, то есть, позволяет агенту завершить процесс любого робота;
  • третья строка разрешает пользователю agent запуск команды /usr/bin/systemd-run с правами любого пользователя из группы primo-rpa без ввода пароля, то есть, позволяет агенту запустить сеанс робота с помощью службы systemd;
  • четвёртая строка разрешает пользователю agent запуск команды /usr/bin/systemctl с правами любого пользователя из группы primo-rpa без ввода пароля, то есть, позволяет агенту корректно остановить сеанс робота с помощью службы systemd;
  • пятая строка разрешает пользователю agent запуск команды /usr/bin/loginctl с правами любого пользователя из группы primo-rpa без ввода пароля, то есть, позволяет агенту включить поддержку сеансов для робота;
⚠️

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

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

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

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

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

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

Установка агента Оркестратора зависит от режима работы агента, поэтому примеры команд установки будут приведены отдельно для разных режимов.

Режим atd

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

[primo-admin@astra-robot ~]$ sudo -u agent unzip /srv/samba/shared/install/Agent-linux.zip -d /opt/Primo/Agent [primo-admin@astra-robot ~]$ sudo -u agent chmod a+x /opt/Primo/Agent/Primo.Orchestrator.Agent /opt/Primo/Agent/LTools.Orchestrator.Agent.Runner

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

[primo-admin@astra-robot ~]$ sudo cp /opt/Primo/Agent/Primo.Orchestrator.Agent.service /etc/systemd/system/ [primo-admin@astra-robot ~]$ sudo systemctl daemon-reload [primo-admin@astra-robot ~]$ sudo systemctl enable /etc/systemd/system/Primo.Orchestrator.Agent.service

Режим systemd

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

[primo-admin@astra-robot ~]$ sudo -u agent unzip /srv/samba/shared/install/Agent-linux.zip -d /opt/Primo/Agent [primo-admin@astra-robot ~]$ sudo -u agent chmod a+x /opt/Primo/Agent/Primo.Orchestrator.Agent /opt/Primo/Agent/LTools.Orchestrator.Agent.Runner

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

[primo-admin@astra-robot ~]$ sudo cp /opt/Primo/Agent/Primo.Orchestrator.Agent.service /etc/systemd/system/ [primo-admin@astra-robot ~]$ sudo systemctl daemon-reload [primo-admin@astra-robot ~]$ sudo systemctl enable /etc/systemd/system/Primo.Orchestrator.Agent.service [primo-admin@astra-robot ~]$ sudo -u agent loginctl enable-linger agent

Режим user

⚠️

Внимание: Команды в этом разделе выполняются пользователем 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

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

[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 ~/.config/systemd/user/Primo.Orchestrator.Agent.service [agent@astra-robot ~]$ loginctl enable-linger agent [agent@astra-robot ~]$ systemctl --user daemon-reload

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

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

"Agent": { "DataPath": "/opt/Primo/AgentData", ... "RobotStartMethod": "systemd", },

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

"AgentCommands": { "At": "/usr/bin/at", "Reboot": "/usr/sbin/reboot", "Session": "/usr/bin/fly-wm --execOnly {}" },

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

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

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

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

Команды запуска и останова службы агента Оркестратора зависят от режима работы, поэтому примеры команд будут приведены отдельно для разных режимов.

Режимы atd и systemd

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

[primo-admin@astra-robot ~]$ sudo systemctl start Primo.Orchestrator.Agent

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

[primo-admin@astra-robot ~]$ sudo systemctl status Primo.Orchestrator.Agent

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

[primo-admin@astra-robot ~]$ sudo journalctl -u Primo.Orchestrator.Agent

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

[primo-admin@astra-robot ~]$ sudo systemctl stop Primo.Orchestrator.Agent
🚫

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

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

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

Режим user

⚠️

Внимание: Команды в этом разделе выполняются пользователем 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