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

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

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

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

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

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

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

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

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

  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: пароль успешно обновлён

Режим запуска роботов atd

Для запуска заданий роботов без прав пользователя root файл /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 запуск команды /usr/sbin/reboot с правами пользователя root без ввода пароля, то есть, позволяет агенту перезагрузить машину агента;

  • вторая строка разрешает пользователю agent запуск команды /usr/bin/kill с правами любого пользователя из группы primo-rpa без ввода пароля, то есть, позволяет агенту завершить процесс любого робота;

  • третья строка разрешает пользователю agent запуск команды /usr/bin/at с правами любого пользователя из группы primo-rpa без ввода пароля, то есть, позволяет агенту запустить робота с помощью службы atd.

Режим запуска роботов systemd

Для запуска заданий роботов без прав пользователя root файл /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 без ввода пароля, то есть позволяет агенту включить поддержку сеансов для робота.

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

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

[primo-admin@astra-robot ~]$ sudo mkdir -p /opt/Primo/Agent /opt/Primo/AgentData /opt/LTools
[primo-admin@astra-robot ~]$ sudo unzip /srv/samba/shared/install/Agent-linux.zip -d /opt/Primo/Agent
[primo-admin@astra-robot ~]$ sudo chmod a+x /opt/Primo/Agent/Primo.Orchestrator.Agent /opt/Primo/Agent/LTools.Orchestrator.Agent.Runner
[primo-admin@astra-robot ~]$ sudo chown -R agent:primo-rpa /opt/Primo/Agent /opt/Primo/AgentData /opt/LTools
[primo-admin@astra-robot ~]$ sudo chmod -R g+w /opt/Primo/Agent /opt/Primo/AgentData /opt/LTools

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

[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

В конфигурационном файле appsettings.ProdLinux.json укажите адрес Оркестратора и TenantId (если эта машина не в тенанте по умолчанию) и пользователя из тенанта, а также адрес машины робота:

  "Orchestrator": {
    "UserName": "agent",
    "Password": "Qwe123!@#",
    "BaseUrl": "https://192.168.1.154:44392",
    "DownloadRpaProject": true,
    "UserBaseUrlFromRequest": true,
    "TenantId": ""
  },
  ...
  "Agent": {
    ...
    "IpAddress": "192.168.0.20",
    ...
    "RobotStartMethod": "system",
  },

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

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

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

[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

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

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

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

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

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

Создание учетной записи робота 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 systemctl stop Primo.Orchestrator.Agent

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

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

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

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

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

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

Миграция агента Оркестратора

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

  • настройте пользователей и группы;

  • перенесите данные агента Оркестратора;

  • обновите агент и файл конфигурации;

  • обновите файл управления службой.

Настройка пользователей и групп

Эти команды необходимо выполнять от имени пользователя настроенного как администратор при установке Astra Linux 1.7:

[admin@astra-robot ~]$ sudo systemctl stop Primo.Orchestrator.Agent
[admin@astra-robot ~]$ sudo useradd -m -s /bin/bash primo-admin
[admin@astra-robot ~]$ sudo usermod -G cdrom,floppy,audio,dip,video,plugdev,netdev,lpadmin,astra-console,astra-admin primo-admin
[admin@astra-robot ~]$ sudo passwd primo-admin
Новый пароль : ***
Повторите ввод нового пароля : ***
passwd: пароль успешно обновлён

Теперь войдите в систему под пользователем primo-admin и дальнейшие команды выполняйте под его именем.

Выполните команды из следующих разделов:

Существующие учетные записи роботов добавьте в группу primo-rpa:

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

Перенос данных агента Оркестратора

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

[primo-admin@astra-robot ~]$ sudo mkdir /opt/Primo/AgentData 
[primo-admin@astra-robot ~]$ sudo mv /opt/Primo/Agent/RobotLocks /opt/PrimoAgent/RobotDistr /opt/Primo/Agent/ScreenFilesZip /opt/Primo/AgentData
[primo-admin@astra-robot ~]$ sudo chown -R agent:primo-rpa /opt/Primo/Agent /opt/Primo/AgentData /opt/LTools
[primo-admin@astra-robot ~]$ sudo chmod -R g+w /opt/Primo/Agent /opt/Primo/AgentData /opt/LTools

Обновление агента и файла конфигурации

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

[primo-admin@astra-robot ~]$ sudo 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 chown -R agent:primo-rpa /opt/Primo/Agent
[primo-admin@astra-robot ~]$ sudo chmod -R g+w /opt/Primo/Agent 
[primo-admin@astra-robot ~]$ sudo chmod a+x /opt/Primo/Agent/Primo.Orchestrator.Agent /opt/Primo/Agent/LTools.Orchestrator.Agent.Runner

В файле конфигурации appsettings.ProdLinux.json внесите следующие изменения:

  1. Вместо:

...
"Robot": {
  ...
  "LocksPath": "/opt/Primo/Agent/RobotLocks",
  ...
}

укажите:

...
"Robot": {
  ...
  "LocksDir": "RobotLocks"
}
  1. Вместо:

"DeployRobot": {
  ...
  "RobotDistrPath": "/opt/PrimoAgent/RobotDistr",
  ...
}

укажите:

"DeployRobot": {
  ...
  "RobotDistrDir": "RobotDistr",
  ...
}
  1. Вместо:

"ScreenFiles": {
  ...
  "ZipPath": "/opt/Primo/Agent/ScreenFilesZip",
  ...
}

укажите:

"ScreenFiles": {
  ...
  "ZipDir": "ScreenFilesZip",
  ...
}
  1. Добавьте:

"Agent": {
  ...
  "DataPath": "/opt/Primo/AgentData",
  ...
},
...
"AgentCommands": {
    "At": "/usr/bin/at",
    "Reboot": "/usr/sbin/reboot",
    "Xvfb": "/usr/bin/xvfb-run",
    "Session": "/usr/bin/fly-wm --execOnly {}"
},

Обновление файла управления службой

[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

Last updated

Was this helpful?