Skip to Content

Обновление 1.26.6.1 → 1.26.6.2

ℹ️

Примечания к релизу: 1.26.6.2

Значимые изменения, которые следует учитывать системному администратору:

  • Обновлены все образы Docker: ai-server-api, ai-server-auth, ai-server-ft, ai-server-idp-cpu, ai-server-idp-gpu, ai-server-inference, ai-server-logs, ai-server-machineinfo, ai-server-nlp, ai-server-ollama, ai-server-rag-gpu, ai-server-ui, ai-server-vllm-gpu
  • Обновлены дистрибутивы Agent-linux.zip и Api.MachineInfo-linux.zip
  • TLS-сертификаты больше не встроены в образ ai-server-ui — теперь монтируются через volume в docker-compose.yaml
  • Обновлены версии Python-зависимостей в сервисах DS (устранение CVE)
  • Образ Ollama (ai-server-ollama) теперь запускается от непривилегированного пользователя (UID 1001)
  • Обновлён образ RabbitMQ: 3.10.7-management4.2.8-management-alpine (устранение уязвимостей, Alpine-база)
  • Обновлён образ PostgreSQL: postgres:17.6postgres:17.10-alpine (устранение уязвимостей, Alpine-база)
  • Обновлён образ Redis: redis:latestredis:7.4-alpine (устранение уязвимостей, Alpine-база)

Машина сервера

1. Извлеките TLS-сертификаты из текущего образа

⚠️

Начиная с версии 1.26.6.2 сертификаты не включены в образ ai-server-ui. Перед обновлением необходимо сохранить сертификаты из работающего контейнера и подключить их через volume.

Создайте директорию для сертификатов:

sudo mkdir -p /app/Primo.AI/Api/volumes/nginx/ssl

Извлеките сертификаты из работающего контейнера server_ui:

docker cp server_ui:/etc/nginx/cert1.crt /app/Primo.AI/Api/volumes/nginx/ssl/cert1.crt docker cp server_ui:/etc/nginx/cert1.rsa /app/Primo.AI/Api/volumes/nginx/ssl/cert1.rsa

Установите права доступа:

sudo chmod 644 /app/Primo.AI/Api/volumes/nginx/ssl/cert1.crt sudo chmod 600 /app/Primo.AI/Api/volumes/nginx/ssl/cert1.rsa
ℹ️

Если контейнер server_ui уже остановлен или сертификаты недоступны, сгенерируйте новые по инструкции.

2. Обновите docker-compose.yaml

Откройте файл /app/Primo.AI/Api/docker-compose.yaml и внесите следующие изменения:

a) Обновите образ PostgreSQL:

postgres: image: externals/postgres:17.10-alpine

b) Обновите образ RabbitMQ:

rabbitMQ: image: externals/rabbitmq:4.2.8-management-alpine

c) Обновите образ Redis:

redis: image: externals/redis:7.4-alpine

d) Добавьте в секцию nginxvolumes монтирование сертификатов:

nginx: image: primo-rpa/ai-server-ui ... volumes: - ./volumes/nginx/nginx.conf:/etc/nginx/nginx.conf - ./volumes/nginx/ssl/cert1.crt:/etc/nginx/cert1.crt:ro - ./volumes/nginx/ssl/cert1.rsa:/etc/nginx/cert1.rsa:ro - ./volumes/nginx/:/var/log/nginx

3. Обновите образы Docker

Через архив:

sudo apt update && sudo apt install 7z names="ai-server-api ai-server-auth ai-server-inference ai-server-logs ai-server-machineinfo ai-server-ui" externals="postgres:17.10-alpine rabbitmq:4.2.8-management-alpine redis:7.4-alpine" for name in $names; do wget --content-disposition "https://disk.primo-rpa.ru/index.php/s/t9BHBjR6PP06Yax/download?path=%2FRelease%2FAI%20Server%2Fdistr&files=$name.tar.7z" 7z x $name.tar.7z docker load -i $name.tar rm $name.tar.7z $name.tar done for external in $externals; do filename=$(echo "$external" | sed 's/:/_/g') wget --content-disposition "https://disk.primo-rpa.ru/index.php/s/t9BHBjR6PP06Yax/download?path=%2FRelease%2FAI%20Server%2Fdistr%2Fexternals&files=$filename.tar.7z" 7z x $filename.tar.7z docker load -i $filename.tar rm $filename.tar.7z $filename.tar done

Если есть доступ к nexus.primo-rpa.ru:8005:

names="ai-server-api ai-server-auth ai-server-inference ai-server-logs ai-server-machineinfo ai-server-ui" externals="postgres:17.10-alpine rabbitmq:4.2.8-management-alpine redis:7.4-alpine" for name in $names; do docker pull nexus.primo-rpa.ru:8005/primo-rpa/$name docker tag nexus.primo-rpa.ru:8005/primo-rpa/$name primo-rpa/$name docker rmi nexus.primo-rpa.ru:8005/primo-rpa/$name done for external in $externals; do docker pull nexus.primo-rpa.ru:8005/externals/$external docker tag nexus.primo-rpa.ru:8005/externals/$external externals/$external docker rmi nexus.primo-rpa.ru:8005/externals/$external done

4. Обновите Api.MachineInfo

wget --content-disposition "https://disk.primo-rpa.ru/index.php/s/t9BHBjR6PP06Yax/download?path=%2FRelease%2FAI%20Server%2Fdistr&files=Api.MachineInfo-linux.zip" sudo systemctl stop Primo.AI.Api.MachineInfo sudo unzip -o Api.MachineInfo-linux.zip -x "appsettings*" -d /app/Primo.AI/Api.MachineInfo/ sudo chmod +x /app/Primo.AI/Api.MachineInfo/Primo.AI.Api.MachineInfo sudo chown primo:primo-ai /app/Primo.AI/Api.MachineInfo/ sudo systemctl start Primo.AI.Api.MachineInfo

5. Перезапустите компоненты:

docker compose -f /app/Primo.AI/Api/docker-compose.yaml down && \ docker compose -f /app/Primo.AI/Api/docker-compose.yaml up -d

Убедитесь, что Центр управления доступен по HTTPS (порт 44392).

Целевые машины

1. Измените владельца директории с шаблонами моделей

⚠️

Шаг обязателен, если на целевой машине используется Ollama. Образ ai-server-ollama теперь запускается от непривилегированного пользователя (UID 1001). Без смены владельца контейнер не сможет записывать данные в примонтированную директорию.

sudo chown -R 1001:1001 /app/Primo.AI/AgentData/ModelTemplates

2. Обновите файлы агента

wget --content-disposition "https://disk.primo-rpa.ru/index.php/s/t9BHBjR6PP06Yax/download?path=%2FRelease%2FAI%20Server%2Fdistr&files=Agent-linux.zip&downloadStartSecret=uf3pctriscf" sudo systemctl stop Primo.AI.Agent sudo rm /app/Primo.AI/Agent/InMemoryProcessStore.json sudo unzip -o Agent-linux.zip -x "appsettings*" -d /app/Primo.AI/Agent/ sudo chmod +x /app/Primo.AI/Agent/Primo.AI.Agent sudo chown -R agent:primo-ai /app/Primo.AI/Agent/ sudo systemctl start Primo.AI.Agent

3. Обновите образы DS

  • Вариант загрузки 1: скачайте необходимые архивы из официальной поставки AI Server:
images="" echo "GPU? y/n" read GPU if [ "$GPU" = "y" ] || [ "$GPU" = "Y" ]; then echo "FT-сервер? y/n" read ft_server if [ "$ft_server" = "y" ] || [ "$ft_server" = "Y" ]; then images+=" ai-server-ft" fi echo "NLP-сервер? y/n" read nlp_server if [ "$nlp_server" = "y" ] || [ "$nlp_server" = "Y" ]; then images+=" ai-server-nlp" fi echo "Ollama? y/n" read ollama if [ "$ollama" = "y" ] || [ "$ollama" = "Y" ]; then images+=" ai-server-ollama" fi echo "vLLM? y/n" read vllm if [ "$vllm" = "y" ] || [ "$vllm" = "Y" ]; then images+=" ai-server-vllm-gpu" fi echo "IDP-сервер? y/n" read idp_server if [ "$idp_server" = "y" ] || [ "$idp_server" = "Y" ]; then images+=" ai-server-idp-gpu" fi echo "RAG? y/n" read rag if [ "$rag" = "y" ] || [ "$rag" = "Y" ]; then images+=" ai-server-rag-gpu" fi else echo "NLP-сервер? y/n" read nlp_server if [ "$nlp_server" = "y" ] || [ "$nlp_server" = "Y" ]; then images+=" ai-server-nlp" fi echo "Ollama? y/n" read ollama if [ "$ollama" = "y" ] || [ "$ollama" = "Y" ]; then images+=" ai-server-ollama" fi echo "IDP-сервер? y/n" read idp_server if [ "$idp_server" = "y" ] || [ "$idp_server" = "Y" ]; then images+=" ai-server-idp-cpu" fi fi # Удаляем ведущий пробел images=$(echo $images | sed 's/^ //') names=$(echo $images | tr ' ' '\n') echo "Загружаемые images: $images" sudo apt update && sudo apt install -y 7z for name in $names; do echo "Загрузка $name..." wget --content-disposition "https://disk.primo-rpa.ru/index.php/s/t9BHBjR6PP06Yax/download?path=%2FRelease%2FAI%20Server%2Fdistr&files=$name.tar.7z" 7z x $name.tar.7z docker load -i $name.tar rm -f $name.tar.7z $name.tar done echo "Готово!"
  • Вариант загрузки 2: используя репозиторий Docker: Работает при наличии подключения к nexus.primo-rpa.ru:8005.
#!/bin/bash images="" echo "GPU? y/n" read GPU if [ "$GPU" = "y" ] || [ "$GPU" = "Y" ]; then echo "FT-сервер? y/n" read ft_server if [ "$ft_server" = "y" ] || [ "$ft_server" = "Y" ]; then images+=" ai-server-ft" fi echo "NLP-сервер? y/n" read nlp_server if [ "$nlp_server" = "y" ] || [ "$nlp_server" = "Y" ]; then images+=" ai-server-nlp" fi echo "Ollama? y/n" read ollama if [ "$ollama" = "y" ] || [ "$ollama" = "Y" ]; then images+=" ai-server-ollama" fi echo "vLLM? y/n" read vllm if [ "$vllm" = "y" ] || [ "$vllm" = "Y" ]; then images+=" ai-server-vllm-gpu" fi echo "IDP-сервер? y/n" read idp_server if [ "$idp_server" = "y" ] || [ "$idp_server" = "Y" ]; then images+=" ai-server-idp-gpu" fi echo "RAG? y/n" read rag if [ "$rag" = "y" ] || [ "$rag" = "Y" ]; then images+=" ai-server-rag-gpu" fi else echo "NLP-сервер? y/n" read nlp_server if [ "$nlp_server" = "y" ] || [ "$nlp_server" = "Y" ]; then images+=" ai-server-nlp" fi echo "Ollama? y/n" read ollama if [ "$ollama" = "y" ] || [ "$ollama" = "Y" ]; then images+=" ai-server-ollama" fi echo "IDP-сервер? y/n" read idp_server if [ "$idp_server" = "y" ] || [ "$idp_server" = "Y" ]; then images+=" ai-server-idp-cpu" fi fi # Удаляем ведущий пробел images=$(echo $images | sed 's/^ //') names=$(echo $images | tr ' ' '\n') echo "Загружаемые images: $images" for name in $names; do docker pull nexus.primo-rpa.ru:8005/primo-rpa/$name docker tag nexus.primo-rpa.ru:8005/primo-rpa/$name primo-rpa/$name docker rmi nexus.primo-rpa.ru:8005/primo-rpa/$name done echo "Готово!"

Что дальше

После завершения обновления выполните проверку работоспособности системы.