В статье описана установка ELMA Cortex в закрытом контуре (Air-Gapped) с использованием Docker Swarm.
Для этого применяется приватный реестр образов. Рекомендуем использовать Harbor. Подробнее о его установке читайте в статье про установку Harbor для ELMA Cortex.
Процесс установки ELMA Cortex состоит из следующих шагов:
- Копирование установочных файлов в изолированную среду.
- Загрузка образов в приватный Docker‑реестр.
- Настройка ELMA Cortex для использования приватного реестра.
- Установка ELMA Cortex.
Предварительные условия
Убедитесь, что:
- на машине с доступом к интернету соблюдаются требования:
- ОС Linux (Ubuntu 18.04+, CentOS 7+ или аналогичные);
- минимум 20 ГБ свободного места на диске;
- установлен curl или wget;
- заданы права Root или sudo;
- вы загрузили установочные файлы и настроили переменные окружения;
- на изолированной машине (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 для использования приватного реестра
- Перейдите в папку с файлами для Docker Swarm:
cd swarm-files
- Укажите адрес вашего приватного реестра в файле .env. Если ваш реестр использует нестандартный порт, укажите его через двоеточие:
IMAGE_REPOSITORY=your-registry.example.com:5000/elma-cortex
Шаг 4. Установка ELMA Cortex
- Если вы используете приватный реестр, требующий аутентификации, выполните вход в Docker:
docker login your-registry.example.com
- Запустите скрипт установки:
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) образов
- Проверьте учётные данные реестра:
docker login your-registry.example.com
- Проверьте настройки TLS. Для самоподписанных сертификатов используйте параметр --tls-verify false.
- Убедитесь в наличии свободного места на сервере реестра.
Сервисы не запускаются
- Проверьте, что все образы загружены:
docker images | grep your-registry.example.com
- Проверьте, что в файле переменных окружения .env для параметра IMAGE_REPOSITORY указан правильный путь к репозиторию образов.
- Проверьте, что у 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>
Команда |
Применение |
Параметры |
|
Скачать файлы Docker Swarm и Docker‑образы.
|
--dir <PATH> — папка для файлов (по умолчанию: elma-cortex-X.Y.Z) |
|
Загрузить образы в приватный реестр. |
|