Установка Агента Оркестратора
Руководство содержит инструкции по установке Агента Оркестратора для следующих операционных систем:
- РЕДОС 7.3, 8
- Astra Linux 1.7
- CentOS 7, 8
В конце данной статьи вы также можете найти Инструкцию по проверке настройки машины робота.
Общие настройки
Редактируем конфигурационный файл службы Agent appsettings.ProdLinux.json
:
Если в RPA-проекте (zip-архив) присутствуют файлы с кириллицей в наименовании, то для корректной распаковки архива перед запуском робота необходимо, чтобы в конфигурационном файле службы Агента был настроен параметр ProjectZipEncoding.
Наиболее востребованные значения: utf-8 (для Windows), cp866 (для Linux) и null (кодировка по умолчанию в ОС):
Настраиваем секцию Orchestrator:
TenantId – тенант Агента (для дефолтного тенанта null).
С версии 24.8 в Агенте Оркестратора появился новый параметр в конфигурационном файле:
"Agent": {
...
"RemoveInactiveTsPortsPeriodSec": 60 // 0 - to disable
...
}
Этот параметр отвечает за настройку периодичности очистки неактивных TS портов, что помогает предотвращать пропуски запусков роботов и улучшает стабильность работы проекта. Значение параметра указывается в секундах, и его можно отключить, установив значение 0
.
Действия при установке РЕДОС 7.3, 8
При установке машины робота под управлением РЕДОС 7.3 необходимо:
- на экране ВЫБОР ПРОГРАММ отметить базовое окружение Рабочая станция с графическим окружением (MATE)
- на экране СОЗДАНИЕ ПОЛЬЗОВАТЕЛЕЙ создать пользователя-администратора (далее - primo-admin)
Установка дополнительного ПО и создание дополнительных пользователей будет описана ниже.
Настройка дополнительного ПО
- Выполните подключение машины робота к репозиториям
base
иupdates
. Настройка локальных зеркал этих репозиториев описана в Руководстве РЕДОС .
🔶 Локальные репозитории необходимо выгружать на машине, имеющей доступ в Интернет.
Рекомендуется выделить одну машину под управлением РЕДОС 7.3 для размещения на ней сервера репозиториев.
Для машины с доступом в Интернет файл /etc/yum.repos.d/RedOS-Base.repo
может выглядеть следующим образом:
[base]
name=RedOS - Base
baseurl=https://repo1.red-soft.ru/redos/7.3c/$basearch/os,https://mirror.yandex.ru/redos/7.3c/$basearch/os,http://repo.red-soft.ru/redos/7.3c/$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://repo1.red-soft.ru/redos/7.3c/$basearch/updates,https://mirror.yandex.ru/redos/7.3c/$basearch/updates,http://repo.red-soft.ru/redos/7.3c/$basearch/updates
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RED-SOFT
enabled=1
- Проверьте доступность репозиториев, используя следующую команду:
[primo-admin@redos-robot ~]$ sudo dnf repolist
Репозитории base
и updates
должны присутствовать в выводе команды.
- Удалите приложения для автообновления ПО (чтобы избежать засорения рабочего стола робота оповещениями):
[primo-admin@redos-robot ~]$ sudo dnf -y remove dnfdragora
- Установите необходимое для работы робота ПО:
[primo-admin@redos-robot ~]$ sudo dnf -y install at xorg-x11-server-Xvfb python3-numpy python3-opencv xdotool dotnet-sdk-8.0 ImageMagick
Если при установке ОС не был включен рабочий стол MATE, его можно доустановить с помощью следующей команды:
sudo dnf groupinstall mate-desktop
Настройка учетной записи агента
Для работы агента Оркестратора и роботов создайте общую группу:
[primo-admin@redos-robot ~]$ sudo groupadd primo-rpa
Для работы агента Оркестратора создайте учётную запись:
[primo-admin@redos-robot ~]$ sudo useradd -g primo-rpa -m -s /bin/bash agent
Если требуется, задайте пароль для учётной записи:
[primo-admin@redos-robot ~]$ sudo passwd agent
Изменение пароля пользователя agent.
Новый пароль: ***
Повторите ввод нового пароля: ***
passwd: данные аутентификации успешно обновлены.
Для запуска агентом Оркестратора заданий роботов без прав пользователя root установите следующую настройку:
[primo-admin@redos-robot ~]$ sudo sh -c "echo 'agent ALL = (%primo-rpa) NOPASSWD: /usr/bin/at' > /etc/sudoers.d/primo-rpa-agent"
[primo-admin@redos-robot ~]$ sudo sh -c "echo 'agent ALL = (ALL) NOPASSWD: /usr/sbin/reboot' >> /etc/sudoers.d/primo-rpa-agent"
Установка агента
Разворачивание файлов агента Оркестратора на машине роботов (файл Agent-linux.zip
должен находиться в каталоге /srv/samba/shared/install
):
[primo-admin@redos-robot ~]$ sudo mkdir -p /opt/Primo/Agent /opt/Primo/AgentData /opt/LTools
[primo-admin@redos-robot ~]$ sudo unzip /srv/samba/shared/install/Agent-linux.zip -d /opt/Primo/Agent
[primo-admin@redos-robot ~]$ sudo chmod a+x /opt/Primo/Agent/Primo.Orchestrator.Agent
[primo-admin@redos-robot ~]$ sudo chown -R agent.primo-rpa /opt/Primo/Agent /opt/Primo/AgentData /opt/LTools
[primo-admin@redos-robot ~]$ sudo chmod -R g+w /opt/Primo/Agent /opt/Primo/AgentData /opt/LTools
Установите агент Оркестратора как службу и настройте автозапуск:
[primo-admin@redos-robot ~]$ sudo cp /opt/Primo/Agent/Primo.Orchestrator.Agent.service /etc/systemd/system/
[primo-admin@redos-robot ~]$ sudo systemctl daemon-reload
[primo-admin@redos-robot ~]$ sudo systemctl enable /etc/systemd/system/Primo.Orchestrator.Agent.service
В конфигурационном файле appsettings.ProdLinux.json
укажите адрес Оркестратора и TenantId (если эта машина не в тенанте по умолчанию) и пользователя из тенанта, а также адрес машины робота:
"Orchestrator": {
"UserName": "agent",
"Password": "Qwe123!@#",
"BaseUrl": "https://192.168.1.154:5001",
"DownloadRpaProject": true,
"UserBaseUrlFromRequest": true,
"TenantId": ""
},
...
"Agent": {
...
"IpAddress": "192.168.0.20",
...
},
Убедитесь, что в конфигурационном файле appsettings.ProdLinux.json
правильно указаны команды, с помощью которых агент запускает роботов и управляет машиной (здесь указаны правильные команды для РЕДОС 7.3):
"AgentCommands": {
"At": "/usr/bin/at",
"Reboot": "/usr/sbin/reboot",
"Xvfb": "/usr/bin/xvfb-run",
"Session": "/usr/bin/mate-session"
},
Запуск службы:
[primo-admin@redos-robot ~]$ sudo systemctl start Primo.Orchestrator.Agent
Просмотр статуса службы:
[primo-admin@redos-robot ~]$ sudo systemctl status Primo.Orchestrator.Agent
Просмотр журнала службы:
[primo-admin@redos-robot ~]$ sudo journalctl -u Primo.Orchestrator.Agent
Настройка правила брандмауэра Firewall
Установка и настройка брандмауэра Firewall описана в Руководстве РЕДОС .
Для разрешения доступа к API агента Оркестратора выполните следующее:
[primo-admin@redos-robot ~]$ sudo firewall-cmd --zone=public --add-port=5002/tcp --permanent
[primo-admin@redos-robot ~]$ sudo firewall-cmd --reload
Настройка учетной записи робота
Создание учётной записи робота robot1
:
[primo-admin@redos-robot ~]$ sudo useradd -g primo-rpa -m -s /bin/bash robot1
Установка пароля учётной записи робота robot1
:
[primo-admin@redos-robot ~]$ sudo passwd robot1
Изменение пароля пользователя robot1.
Новый пароль: ***
Повторите ввод нового пароля: ***
passwd: данные аутентификации успешно обновлены.
После создания учётной записи робота на машине робота войдите в графический сеанс этой учётной записи для инициализации графического окружения.
Рекомендуется отключить фон рабочего стола для экономии памяти. Для этого используйте:
ПКМ на рабочем столе -> Параметры внешнего вида -> Фон -> Без фона рабочего стола
Запомните разрешение экрана, при котором тестируются действия робота - поиск изображений, клики и т.п., чтобы настроить такое же разрешение пользователю робота в Оркестраторе: Пуск -> Параметры -> Экраны
🔸 Рекомендации по настройке пользователя робота в Оркестраторе (пользователя РДП):
Для экономии памяти используйте минимально необходимую глубину цвета экрана - 24 или 16 бит.
Обновление агента Оркестратора
Остановка службы:
[primo-admin@redos-robot ~]$ sudo systemctl stop Primo.Orchestrator.Agent
Обновление файлов агента оркестратора на машине роботов (файл Agent-linux.zip должен находиться в каталоге /srv/samba/shared/install
):
[primo-admin@redos-robot ~]$ sudo unzip -o -u /srv/samba/shared/install/Agent-linux.zip -d /opt/Primo/Agent -x appsettings.ProdLinux.json appsettings.json
[primo-admin@redos-robot ~]$ sudo chmod a+x /opt/Primo/Agent/Primo.Orchestrator.Agent
[primo-admin@redos-robot ~]$ sudo chown -R agent.primo-rpa /opt/Primo/Agent
[primo-admin@redos-robot ~]$ sudo chmod -R g+w /opt/Primo/Agent
Запуск службы:
[primo-admin@redos-robot ~]$ sudo systemctl start Primo.Orchestrator.Agent
Просмотр статуса службы:
[primo-admin@redos-robot ~]$ sudo systemctl status Primo.Orchestrator.Agent
Миграция агента Оркестратора
Для миграции существующей установки агента Оркестратора на версию с возможностью работы без прав root выполните следующее:
- настройте пользователей и группы
- перенесите данные агента Оркестратора
- обновите агент и файл конфигурации
- обновите файл управления службой
Настройка пользователей и групп
Эти команды необходимо выполнять от имени пользователя, настроенного как администратор при установке РЕДОС 7.3:
[admin@redos-robot ~]$ sudo systemctl stop Primo.Orchestrator.Agent
[admin@redos-robot ~]$ sudo useradd -m -s /bin/bash primo-admin
[admin@redos-robot ~]$ sudo usermod -G wheel primo-admin
[admin@redos-robot ~]$ sudo passwd primo-admin
Новый пароль : ***
Повторите ввод нового пароля : ***
passwd: пароль успешно обновлён
Теперь небходимо войти в систему под пользователем primo-admin
и дальнейшие команды выполнять под его именем.
Выполните команды из следующих разделов:
- Настройка дополнительного ПО
- Настройка учетной записи агента
Существующие учётные записи роботов добавьте в группу primo-rpa:
[primo-admin@redos-robot ~]$ sudo usermod -G primo-rpa robot
Перенос данных агента Оркестратора
В командах этого раздела предполагаются исходные пути каталогов с данными, совпадающие с оригинальным файлом конфигурации. Если эти пути были изменены, подставьте изменённые пути.
[primo-admin@redos-robot ~]$ sudo mkdir /opt/Primo/AgentData
[primo-admin@redos-robot ~]$ sudo mv /opt/Primo/Agent/RobotLocks /opt/PrimoAgent/RobotDistr /opt/Primo/Agent/ScreenFilesZip /opt/Primo/AgentData
[primo-admin@redos-robot ~]$ sudo chown -R agent.primo-rpa /opt/Primo/AgentData /opt/LTools
[primo-admin@redos-robot ~]$ sudo chmod -R g+w /opt/Primo/AgentData /opt/LTools
Обновление агента и файла конфигурации
Обновление файлов агента Оркестратора (файл Agent-linux.zip
должен находиться в каталоге /srv/samba/shared/install
):
[primo-admin@redos-robot ~]$ sudo unzip -o -u /srv/samba/shared/install/Agent-linux.zip -d /opt/Primo/Agent -x appsettings.ProdLinux.json appsettings.json
[primo-admin@redos-robot ~]$ sudo chown -R agent.primo-rpa /opt/Primo/Agent
[primo-admin@redos-robot ~]$ sudo chmod -R g+w /opt/Primo/Agent
[primo-admin@redos-robot ~]$ sudo chmod a+x /opt/Primo/Agent/Primo.Orchestrator.Agent
В файле конфигурации appsettings.ProdLinux.json
внесите следующие изменения:
- Вместо:
...
"Robot": {
...
"LocksPath": "/opt/Primo/Agent/RobotLocks",
...
}
укажите:
...
"Robot": {
...
"LocksDir": "RobotLocks"
}
- Вместо:
"DeployRobot": {
...
"RobotDistrPath": "/opt/PrimoAgent/RobotDistr",
...
}
укажите:
"DeployRobot": {
...
"RobotDistrDir": "RobotDistr",
...
}
- Вместо:
"ScreenFiles": {
...
"ZipPath": "/opt/Primo/Agent/ScreenFilesZip",
...
}
укажите:
"ScreenFiles": {
...
"ZipDir": "ScreenFilesZip",
...
}
- Добавьте:
"Agent": {
...
"DataPath": "/opt/Primo/AgentData",
...
},
...
"AgentCommands": {
"At": "/usr/bin/at",
"Reboot": "/usr/sbin/reboot",
"Xvfb": "/usr/bin/xvfb-run",
"Session": "/usr/bin/mate-session"
},
Обновление файла управления службой
[primo-admin@redos-robot ~]$ sudo cp /opt/Primo/Agent/Primo.Orchestrator.Agent.service /etc/systemd/system/
[primo-admin@redos-robot ~]$ sudo systemctl daemon-reload
[primo-admin@redos-robot ~]$ sudo systemctl enable /etc/systemd/system/Primo.Orchestrator.Agent.service
Действия при установке Astra Linux 1.7.x
Настройка машины робота
Это руководство описывает шаги, необходимые при настройке машины робота под управлением Агента версии 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 необходимо:
- на экране Настройка учётных записей и паролей создать пользователя-администратора (далее -
primo-admin
)
Для предоставления пользователю primo-admin
необходимых прав после установки, выполните следующую команду:
[admin@astra-robot ~]$ sudo usermod -G cdrom,floppy,audio,dip,video,plugdev,netdev,lpadmin,astra-console,astra-admin primo-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-admin@astra-robot ~]$ sudo apt update
Репозитории
main
,update
,base
иextended
должны присутствовать в выводе команды. -
Установите необходимое для работы робота ПО:
[primo-admin@astra-robot ~]$ sudo apt -y install at xvfb python3-numpy python3-opencv xdotool dotnet-sdk-6.0 graphicsmagick-imagemagick-compat
Подготовка учётных записей и каталогов
Создание общей группы для агента и роботов
Для работы агента Jркестратора и роботов создайте общую группу:
[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
Действия при установке CentOS 7, 8
При установке машины робота под управлением Centos 7 необходимо:
- на экране ВЫБОР ПРОГРАММ отметить базовое окружение Рабочая станция:
- на экране СОЗДАНИЕ ПОЛЬЗОВАТЕЛЕЙ создать пользователя-администратора (далее - primo-admin):
Установка дополнительного ПО и создание дополнительных пользователей будет описана ниже.
Настройка дополнительного ПО
- Выполните подключение машины робота к репозиториям
base
,extra
иupdates
. Настройка локальных зеркал этих репозиториев описана в Create Local Repos .
🔶 Локальные репозитории необходимо выгружать на машине, имеющей доступ в Интернет.
Рекомендуется выделить одну машину под управлением CentOS 7 для размещения на ней сервера репозиториев.
- Проверьте доступность репозиториев
base
,extra
иupdates
, используя следующую команду:
[primo-admin@centos-robot ~]$ sudo yum repolist
Репозитории base
, extra
и updates
должны присутствовать в выводе команды.
- Установите необходимое для работы робота ПО:
[primo-admin@centos-robot ~]$ sudo yum -y install at xorg-x11-server-Xvfb numpy opencv-python ImageMagick
[primo-admin@centos-robot ~]$ sudo yum -y install epel-release
[primo-admin@centos-robot ~]$ sudo yum -y install xdotool
[primo-admin@centos-robot ~]$ sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
[primo-admin@centos-robot ~]$ sudo yum -y install dotnet-sdk-6.0
Для установки пакетов xdotool и dotnet-sdk-6.0 необходимо подключение к сети Internet.
Настройка учетной записи агента
Для работы агента Оркестратора и роботов создайте общую группу:
[primo-admin@centos-robot ~]$ sudo groupadd primo-rpa
Для работы агента Оркестратора создайте учётную запись:
[primo-admin@centos-robot ~]$ sudo useradd -g primo-rpa -m -s /bin/bash agent
Если требуется, задайте пароль учётной записи:
[primo-admin@centos-robot ~]$ sudo passwd agent
Изменяется пароль пользователя agent.
Новый пароль : ***
Повторите ввод нового пароля : ***
passwd: все данные аутентификации успешно обновлены.
Для запуска агентом Оркестратора заданий роботов без прав пользователя root установите следующую настройку:
[primo-admin@centos-robot ~]$ sudo sh -c "echo 'agent ALL = (%primo-rpa) NOPASSWD: /usr/bin/at' > /etc/sudoers.d/primo-rpa-agent"
[primo-admin@centos-robot ~]$ sudo sh -c "echo 'agent ALL = (ALL) NOPASSWD: /usr/sbin/reboot' >> /etc/sudoers.d/primo-rpa-agent"
[primo-admin@centos-robot ~]$ sudo sh -c "echo 'agent ALL = (ALL) NOPASSWD: /usr/bin/kill' >> /etc/sudoers.d/primo-rpa-agent"
[primo-admin@centos-robot ~]$ sudo sh -c "echo 'agent ALL = (ALL) NOPASSWD: /usr/sbin/sysctl' >> /etc/sudoers.d/primo-rpa-agent"
[primo-admin@astra-robot ~]$ sudo sh -c "echo 'agent ALL = (ALL) NOPASSWD: /bin/systemctl' >> /etc/sudoers.d/primo-rpa-agent"
Установка агента
Разворачивание файлов агента Оркестратора на машине роботов (файл Agent-linux.zip должен находиться в каталоге /srv/samba/shared/install
):
[primo-admin@centos-robot ~]$ sudo mkdir -p /opt/Primo/Agent /opt/Primo/AgentData /opt/LTools /opt/Primo/Agent_
[primo-admin@centos-robot ~]$ sudo unzip /srv/samba/shared/install/Agent-linux.zip -d /opt/Primo/Agent
[primo-admin@centos-robot ~]$ sudo chmod a+x /opt/Primo/Agent/Primo.Orchestrator.Agent
[primo-admin@centos-robot ~]$ sudo chown -R agent.primo-rpa /opt/Primo/Agent /opt/Primo/AgentData /opt/LTools /opt/Primo/Agent
[primo-admin@centos-robot ~]$ sudo chmod -R g+w /opt/Primo/Agent /opt/Primo/AgentData /opt/LTools /opt/Primo/Agent
Установите агент Оркестратора как службу и настройте автозапуск:
[primo-admin@centos-robot ~]$ sudo cp /opt/Primo/Agent/Primo.Orchestrator.Agent.service /etc/systemd/system/
[primo-admin@centos-robot ~]$ sudo systemctl daemon-reload
[primo-admin@centos-robot ~]$ sudo systemctl enable /etc/systemd/system/Primo.Orchestrator.Agent.service
Убедитесь, что в конфигурационном файле appsettings.ProdLinux.json правильно указаны команды, с помощью которых агент запускает роботов и управляет машиной (здесь указаны правильные команды для Centos 7):
"AgentCommands": {
"At": "/usr/bin/at",
"Reboot": "/usr/sbin/reboot",
"Xvfb": "/usr/bin/xvfb-run",
"Session": "/usr/bin/gnome-session"
},
Запуск службы:
[primo-admin@centos-robot ~]$ sudo systemctl start Primo.Orchestrator.Agent
Просмотр статуса службы:
[primo-admin@centos-robot ~]$ sudo systemctl status Primo.Orchestrator.Agent
Просмотр журнала службы:
[primo-admin@centos-robot ~]$ sudo journalctl -u Primo.Orchestrator.Agent
Настройка правила брандмауэра Firewall
Установка и настройка брандмауэра Firewall описана в Using Firewalls .
Для разрешения доступа к API агента Оркестратора выполните следующее:
[primo-admin@centos-robot ~]$ sudo firewall-cmd --zone=public --add-port=5002/tcp --permanent
[primo-admin@centos-robot ~]$ sudo firewall-cmd --reload
Настройка учетной записи робота
Создание учётной записи робота robot1:
[primo-admin@centos-robot ~]$ sudo useradd -g primo-rpa -m -s /bin/bash robot1
Установка пароля учётной записи робота robot1:
[primo-admin@centos-robot ~]$ sudo passwd robot1
Изменяется пароль пользователя robot1.
Новый пароль : ***
Повторите ввод нового пароля : ***
passwd: все данные аутентификации успешно обновлены.
После создания учётной записи робота на машине робота войдите в графический сеанс этой учётной записи для инициализации графического окружения.
Рекомендуется отключить фон рабочего стола для экономии памяти. Для этого используйте:
ПКМ на рабочем столе -> Изменить фон
Запомните разрешение экрана, при котором тестируются действия робота - поиск изображений, клики и т.п., чтобы настроить такое же разрешение пользователю робота в Оркестраторе:
Приложения -> Системные -> Параметры -> Устройства -> Дисплеи
🔸 Рекомендации по настройке пользователя робота в Оркестраторе (пользователя РДП):
Для экономии памяти используйте минимально необходимую глубину цвета экрана - 24 или 16 бит.
Обновление агента Оркестратора
Остановка службы:
[primo-admin@centos-robot ~]$ sudo systemctl stop Primo.Orchestrator.Agent
Обновление файлов агента Оркестратора на машине роботов (файл Agent-linux.zip должен находиться в каталоге /srv/samba/shared/install
):
[primo-admin@centos-robot ~]$ sudo unzip -o -u /srv/samba/shared/install/Agent-linux.zip -d /opt/Primo/Agent -x appsettings.ProdLinux.json appsettings.json
[primo-admin@centos-robot ~]$ sudo chown -R agent.primo-rpa /opt/Primo/Agent
[primo-admin@centos-robot ~]$ sudo chmod -R g+w /opt/Primo/Agent
[primo-admin@centos-robot ~]$ sudo chmod a+x /opt/Primo/Agent/Primo.Orchestrator.Agent
Запуск службы:
[primo-admin@centos-robot ~]$ sudo systemctl start Primo.Orchestrator.Agent
Просмотр статуса службы:
[primo-admin@centos-robot ~]$ sudo systemctl status Primo.Orchestrator.Agent
Миграция агента Оркестратора
Для миграции существующей установки агента Оркестратора на версию с возможностью работы без прав root выполните следующее:
- настройте пользователей и группы
- перенесите данные агента Оркестратора
- обновите агент и файл конфигурации
- обновите файл управления службой
Настройка пользователей и групп
Эти команды необходимо выполнять от имени пользователя, настроенного как администратор при установке CentOS 7:
[admin@centos-robot ~]$ sudo systemctl stop Primo.Orchestrator.Agent
[admin@centos-robot ~]$ sudo useradd -m -s /bin/bash primo-admin
[admin@centos-robot ~]$ sudo usermod -G wheel primo-admin
[admin@centos-robot ~]$ sudo passwd primo-admin
Новый пароль : ***
Повторите ввод нового пароля : ***
passwd: пароль успешно обновлён
Теперь небходимо войти в систему под пользователем primo-admin и дальнейшие команды выполнять под его именем.
Выполните команды из следующих разделов:
- Настройка дополнительного ПО
- Настройка учетной записи агента
Существующие учётные записи роботов добавьте в группу primo-rpa:
[primo-admin@centos-robot ~]$ sudo usermod -G primo-rpa robot
Перенос данных агента Оркестратора
В командах этого раздела предполаются исходные пути каталогов с данными, совпадающие с оригинальным файлом конфигурации. Если эти пути были изменены, то подставьте изменённые пути.
[primo-admin@centos-robot ~]$ sudo mkdir /opt/Primo/AgentData
[primo-admin@centos-robot ~]$ sudo mv /opt/Primo/Agent/RobotLocks /opt/PrimoAgent/RobotDistr /opt/Primo/Agent/ScreenFilesZip /opt/Primo/AgentData
[primo-admin@centos-robot ~]$ sudo chown -R agent.primo-rpa /opt/Primo/AgentData /opt/LTools
[primo-admin@centos-robot ~]$ sudo chmod -R g+w /opt/Primo/AgentData /opt/LTools
Обновление агента и файла конфигурации
Обновление файлов агента Оркестратора (файл Agent-linux.zip должен находиться в каталоге /srv/samba/shared/install
):
[primo-admin@centos-robot ~]$ sudo unzip -o -u /srv/samba/shared/install/Agent-linux.zip -d /opt/Primo/Agent -x appsettings.ProdLinux.json appsettings.json
[primo-admin@centos-robot ~]$ sudo chown -R agent.primo-rpa /opt/Primo/Agent
[primo-admin@centos-robot ~]$ sudo chmod -R g+w /opt/Primo/Agent
[primo-admin@centos-robot ~]$ sudo chmod a+x /opt/Primo/Agent/Primo.Orchestrator.Agent
В файле конфигурации appsettings.ProdLinux.json внесите следующие изменения:
- Вместо:
...
"Robot": {
...
"LocksPath": "/opt/Primo/Agent/RobotLocks",
...
}
укажите:
...
"Robot": {
...
"LocksDir": "RobotLocks"
}
- Вместо:
"DeployRobot": {
...
"RobotDistrPath": "/opt/PrimoAgent/RobotDistr",
...
}
укажите:
"DeployRobot": {
...
"RobotDistrDir": "RobotDistr",
...
}
- Вместо:
"ScreenFiles": {
...
"ZipPath": "/opt/Primo/Agent/ScreenFilesZip",
...
}
укажите:
"ScreenFiles": {
...
"ZipDir": "ScreenFilesZip",
...
}
- Добавьте:
"Agent": {
...
"DataPath": "/opt/Primo/AgentData",
...
},
...
"AgentCommands": {
"At": "/usr/bin/at",
"Reboot": "/usr/sbin/reboot",
"Xvfb": "/usr/bin/xvfb-run",
"Session": "/usr/bin/gnome-session"
},
Обновление файла управления службой
[primo-admin@centos-robot ~]$ sudo cp /opt/Primo/Agent/Primo.Orchestrator.Agent.service /etc/systemd/system/
[primo-admin@centos-robot ~]$ sudo systemctl daemon-reload
[primo-admin@centos-robot ~]$ sudo systemctl enable /etc/systemd/system/Primo.Orchestrator.Agent.service
Проверка настройки машины робота
Проверяем доступность машины Оркестратора с машины робота. На машине робота выполняем команду:
curl -k https://<IP-адрес-машины-Оркестратора>:5001/api/version
и убеждаемся, что вернется версия Оркестратора.
Проверяем работу Агента на машине робота. На машине Оркестратора выполняем команду:
curl -k https://<IP-адрес-машины-Робота>:5002/api/version
и убеждаемся, что вернется версия Агента.