Установить ELMA Cortex в закрытом контуре

В статье описана установка ELMA Cortex в закрытом контуре (Air-Gapped) с использованием Docker Swarm.

Для этого применяется приватный реестр образов. Рекомендуем использовать Harbor. Подробнее о его установке читайте в статье про установку Harbor для ELMA Cortex.

Процесс установки ELMA Cortex состоит из следующих шагов:

  1. Копирование установочных файлов в изолированную среду.
  2. Загрузка образов в приватный Docker‑реестр.
  3. Настройка ELMA Cortex для использования приватного реестра.
  4. Установка ELMA Cortex.

Предварительные условия

Убедитесь, что:

  • на машине с доступом к интернету соблюдаются требования:
  • на изолированной машине (Air-gapped):
    • инициализирован Docker Swarm;
    • есть доступ к вашему приватному Docker‑реестру.

Шаг 1. Перенос файлов в изолированную среду

Скопируйте на ваш изолированный сервер папку elma-cortex-X.Y.Z, где X.Y.Z — номер версии ELMA Cortex. Вы можете использовать любой метод передачи файлов, например, USB-накопитель или протокол SCP, если доступно защищенное соединение.

Пример использования SCP:

scp -r elma-cortex-X.Y.Z user@air-gapped-server:~/

Шаг 2. Загрузка образов в приватный реестр

На изолированном сервере загрузите Docker‑образы в ваш приватный реестр. Способ загрузки зависит от того, как настроен реестр и от использования в нём доверенного сертификата.

Важно: в параметре --uri указывайте адрес с портом, если он нестандартный.

С доверенным сертификатом

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

cd ~/elma-cortex-X.Y.Z
./cortex-offline-swarm.sh --push \
  --uri your-registry.example.com/elma-cortex \
  --creds admin:your-password

С самоподписанным сертификатом

Вы можете использовать флаг отключения проверки TLS, чтобы быстро загрузить образы с самоподписанным сертификатом. Соединение остаётся небезопасным:

./cortex-offline-swarm.sh --push \
  --uri your-registry.example.com/elma-cortex \
  --creds admin:your-password \
  --tls-verify false

С сертификатом CA для реестра

Вы можете добавить корневой сертификат вашего удостоверяющего центра (CA) в список доверенных, указав путь к его папке. Это обеспечивает безопасное TLS-соединение с проверкой подлинности сервера:

mkdir -p ~/certs
cp ca.crt ~/certs/
 
./cortex-offline-swarm.sh --push \
  --uri your-registry.example.com/elma-cortex \
  --creds admin:your-password \
  --cert-dir /path/to/certs

Шаг 3. Настройка ELMA Cortex для использования приватного реестра

  1. Перейдите в папку с файлами для Docker Swarm:

cd swarm-files

  1. Укажите адрес вашего приватного реестра в файле .env. Если ваш реестр использует нестандартный порт, укажите его через двоеточие:

IMAGE_REPOSITORY=your-registry.example.com:5000/elma-cortex

Шаг 4. Установка ELMA Cortex

  1. Если вы используете приватный реестр, требующий аутентификации, выполните вход в Docker:

docker login your-registry.example.com

  1. Запустите скрипт установки:

chmod +x install.sh
./install.sh

Об обновлении и удалении ELMA Cortex читайте в статье про установку с использованием Docker Swarm.

Устранение неполадок при установке ELMA Cortex

Рассмотрим, какие ошибки могут возникать при установке ELMA Cortex в закрытом контуре.

Ошибка “Permission denied” при запуске скриптов

Убедитесь, что скрипты являются исполняемыми:

chmod +x cortex-offline-swarm.sh install.sh manage-certs.sh

Ошибка загрузки (push) образов

  1. Проверьте учётные данные реестра:

docker login your-registry.example.com

  1. Проверьте настройки TLS. Для самоподписанных сертификатов используйте параметр --tls-verify false.
  2. Убедитесь в наличии свободного места на сервере реестра.

Сервисы не запускаются

  1. Проверьте, что все образы загружены:

docker images | grep your-registry.example.com

  1. Проверьте, что в файле переменных окружения .env для параметра IMAGE_REPOSITORY указан правильный путь к репозиторию образов.
  2. Проверьте, что у Docker есть права на скачивание из вашего реестра:

docker pull your-registry.example.com/elma-cortex/elma-assistant/llm-service/gamma-apps:X.Y.Z 

Справочник команд для установки в закрытом контуре

При установке ELMA Cortex используется скрипт cortex-offline-swarm.sh. Для нестандартных сценариев установки ознакомьтесь со всеми доступными для него командами.

Использование скрипта:

./cortex-offline-swarm.sh <command> <flags>

Команда

Применение

Параметры

--pull

Скачать файлы Docker Swarm и Docker‑образы.

 

--dir <PATH> — папка для файлов (по умолчанию: elma-cortex-X.Y.Z)

--push

Загрузить образы в приватный реестр.

  • --uri <URI> — URI реестра. Обязательный параметр;
  • --dir <PATH> — папка с образами;
  • --creds <USER:PASS> — учётные данные реестра;
  • --cert-dir <PATH> — путь к TLS сертификатам;
  • --tls-verify <BOOL> — проверять TLS. Значение по умолчанию — true.