Настройка машины робота
Действия при установке CentOS 7
При установке машины робота под управлением 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"
Установка агента
Разворачивание файлов агента оркестратора на машине роботов (файл Agent-linux.zip
должен находиться в каталоге /srv/samba/shared/install
):
[primo-admin@centos-robot ~]$ sudo mkdir -p /opt/Primo/Agent /opt/Primo/AgentData /opt/LTools
[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
[primo-admin@centos-robot ~]$ sudo chmod -R g+w /opt/Primo/Agent /opt/Primo/AgentData /opt/LTools
Установите агент оркестратора как службу и настройте автозапуск:
[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
укажите адрес Оркестратора и 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
правильно указаны команды, с помощью которых агент запускает роботов и управляет машиной (здесь указаны правильные команды для 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