Настройка целевой машины

Введение

Компоненты Primo.AI.Api (выборочно) и их связи приведены на схеме ниже:

Агент – self-hosted веб-приложение, REST API. Агент выполнен как NET8-приложение, которое устанавливается на целевой машине и используется для управления IDP.

IDP – data science-ядро с нейронными сетями и OCR. Предназначено для интеллектуальной обработки документов. Размещено на специальным образом настроенной целевой машине.

На одной целевой машине может работать только один агент – это ограничение обусловлено полной нагрузкой машины IDP-процессом. Целевых машин может быть много. Все целевые машины должны быть настроены одинаково, и на каждой целевой машине должен быть развернут агент. Версии ОС на целевых машинах могут отличаться

Порт 44392, указанный на схеме выше, используется при настройке конфигурационных файлов агента и открытия портов на файерволе (в том числе аппаратном в сети организации).

Для настройки целевой машины нужна чистая машина с ОС Linux (обязательно с последними обновлениями). На машину необходимо скопировать папку с комплектом поставки. Это может быть любая папка, но для определенности пусть будет папка /srv/samba/shared/install*.

Для настройки целевой машины требуется последовательно выполнить все шаги настоящего руководства.

*Сетевая папка, доступная с машины, на которой размещен комплект поставки.

Системные требования

Для целевой машины следует использовать рабочую станцию под управлением Astra Linux, к которой предъявляются требования из таблицы ниже.

ПараметрТребование

CPU

4 физических ядра / 8 виртуальных ядер

RAM

8 Гб

HDD

250 Гб (OS + Data)

Файлы из комплекта поставки

Скопируйте на целевую машину файлы, приведенные в таблице ниже — их вы найдете в комплекте поставки Primo RPA AI Server. Остальное ПО должно быть предустановлено в Astra Linux.

ФайлОписаниеПримечание

Agent-linux.zip

Дистрибутив агента

A-IDP.zip

Дистрибутив IDP

Вариант установки А:

- при наличии интернета;

- python 3.10+;

- GNU C Library (glibc) версии 2.33 и выше

B-IDP.zip

Дистрибутив IDP

Вариант установки Б – при невозможности выполнить вариант установки А

B-pyenv.zip

Вспомогательное ПО – pyenv со встроенным Python 3.11

Вариант установки Б – при невозможности выполнить вариант установки А

Подготовка к установке

При установке Astra Linux на целевой машине необходимо создать пользователя-администратора. Для этого на экране «Настройка учетных записей и паролей» введите имя primo-admin для учетной записи администратора.

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

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

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

🔶Важно. Локальные репозитории необходимо выгружать на машине, имеющей доступ в интернет.

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

Проверьте доступность репозиториев, используя команду:

# sudo apt update

Репозитории main, update, base и extended должны присутствовать в выводе команды.

Агент

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

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

# sudo groupadd primo-ai

Для работы агента создайте учетную запись agent:

# sudo useradd -g primo-ai -m -s /bin/bash agent

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

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

# sudo mkdir -p /app/Primo.AI /app/Primo.AI/Agent /app/Primo.AI/AgentData 
# sudo unzip /srv/samba/shared/install/Agent-linux.zip -d /app/Primo.AI/Agent
# sudo chmod -R 771 /app/Primo.AI/Agent /app/Primo.AI/AgentData
# sudo chown -R agent:primo-ai /app/Primo.AI/Agent /app/Primo.AI/AgentData /app/Primo.AI/Agent

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

# sudo sh -c "echo 'agent ALL=(%primo-ai) NOPASSWD: /app/Primo.AI/Agent/kill.sh, /app/Primo.AI/IDP/start_inference.sh, /app/Primo.AI/IDP/start_training.sh, /app/Primo.AI/IDP/start_evaluation.sh' > /etc/sudoers.d/Primo.AI.Agent"

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

# sudo cp /app/Primo.AI/Agent/Primo.AI.Agent.service /etc/systemd/system/
# sudo systemctl daemon-reload
# sudo systemctl enable /etc/systemd/system/Primo.AI.Agent.service

В конфигурационном файле appsettings.ProdLinux.json укажите:

  • Адрес Primo.AI.Api и его компонентов.

  • AgentId — уникальный идентификатор агента в виде значения с типом данных GUID. Идентификатор агента можно задать самостоятельно, а затем передать администратору вместе с IP-адресом, чтобы он добавил его в профиль целевой машины, либо наоборот — сначала создать целевую машину в разделе Настройки ➝ Целевые машины, скопировать автоматически заданный GUID и указать его в этом параметре.

  • UserName — логин учетной записи агента.

  • Password — пароль от учетной записи агента.

 	"Api": {
    		"AgentId": "{91E221E8-8E13-4100-8BCB-84EA318C32DA}", // Уникальный идентификатор агента 
			
    		"UserName": "agent",
    		"Password": "Xxxxxxxxxxxx",

    		"AuthBaseUrl": "https://primo-ai-api-server:44392",
    		"ApiBaseUrl": "https://primo-ai-api-server:44392",
    		"InferenceBaseUrl": "https://primo-ai-api-server:44392",
    		"LogsBaseUrl": "https://primo-ai-api-server:44392",
  },

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

"TrainProcess": {
  "ProcessFileName": "/app/Primo.AI/IDP/start_training.sh"
},
"InferenceProcess": {
  "ProcessFileName": "/app/Primo.AI/IDP/start_inference.sh"
},
"TestProcess": {
  "ProcessFileName": "/app/Primo.AI/IDP/start_evaluation.sh"
},

Запустите службы:

# sudo systemctl start Primo.AI.Agent

Проверьте статус службы:

# sudo systemctl status Primo.AI.Agent

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

# sudo journalctl -u Primo.AI.Agent

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

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

# sudo ufw allow 5002/tcp

IDP

Вариант установки А

Установка IDP при наличии в репозиториях apt целевой машины python3.10/3.11, выхода в интернет, а также GNU C Library (glibc) версии 2.33 и выше.

Создайте учетную запись idp:

# sudo useradd -g primo-ai -m -s /bin/bash idp

Разверните файлы IDP на целевой машине (файл A-IDP.zip должен находиться в каталоге /srv/samba/shared/install):

# sudo mkdir -p /app/Primo.AI/IDP 
# sudo unzip /srv/samba/shared/install/A-IDP.zip -d /app/Primo.AI/IDP
# sudo chmod -R 777 /app/Primo.AI/IDP

Установите библиотеки python3, tesseract и другие пакеты:

# sudo apt install software-properties-common -y
# sudo add-apt-repository ppa:deadsnakes/ppa
# sudo apt-get update | sudo apt install python3.11 python3.11-venv python3.11-dev libsm6 libxext6 build-essential libssl-dev libffi-dev ffmpeg -y

Создайте и активируйте виртуальную среду venv:

# python3.11 -m venv /app/Primo.AI/IDP/venv
# source /app/Primo.AI/IDP/venv/bin/activate

Установите пакеты python.