Skip to Content

Установка Orchestrator в закрытом контуре (без доступа к интернету)

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

ℹ️

Рекомендация: Используйте одинаковые версии Docker на обеих машинах, чтобы избежать возможных проблем с совместимостью формата образов.

ℹ️

Начиная с версии 1.26.7, в docker-compose.yml добавлена поддержка TLS. Теперь Оркестратор можно развернуть с шифрованием соединений (HTTPS) штатными средствами. Для использования TLS необходимо предварительно подготовить сертификаты.

Порядок действий

1. Подготовка на машине с доступом в интернет

  1. Авторизуйтесь в приватном реестре (если образы находятся в закрытом реестре, например nexus.primo-rpa.ru:8000):
docker login nexus.primo-rpa.ru:8000
  1. Скопируйте файл docker-compose.yml в рабочую директорию. Теперь рабочая директория (например, /home/user/orchestrator) содержит docker-compose.yml. Все дальнейшие команды мы выполняем из нее.

  2. Загрузите Docker-образы:

docker compose pull

2. Сохранение образов в архив

Убедитесь, что все образы на месте:

Вариант А — сохранить все образы в один файл (удобно для переноса):

docker save -o images.tar $(docker compose config --images)

Вариант Б — сохранить каждый образ в отдельный файл (удобно при обновлении отдельных образов):

mkdir images for img in $(docker compose config --images); do docker save -o images/$(echo $img | tr '/:' '_').tar $img done

Рекомендуется также сохранить информацию о версиях образов:

docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.ID}}" > images-version-info.txt

3. Копирование на флеш-накопитель

Скопируйте созданные файлы на флеш-накопитель:

# Если образы в одном файле cp images.tar images-version-info.txt /media/usb/ # Если в папке images cp -r images images-version-info.txt /media/usb/ # Не забудьте также скопировать docker-compose.yml cp docker-compose.yml /media/usb/

4. Перенос на сервер в закрытом контуре

Подключите флеш-накопитель к серверу без доступа в интернет и скопируйте файлы:

# Создайте рабочую директорию mkdir -p /opt/orchestrator # Скопируйте файлы с флешки cp /media/usb/images.tar /opt/orchestrator/ cp /media/usb/docker-compose.yml /opt/orchestrator/ cp /media/usb/images-version-info.txt /opt/orchestrator/ # (или cp -r /media/usb/images /opt/orchestrator/)

5. Загрузка образов на сервере

Если использовался один файл:

cd /opt/orchestrator docker load -i images.tar

Если использовалось несколько файлов:

cd /opt/orchestrator/images for f in *.tar; do docker load -i "$f"; done

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

sudo docker images # Сравните с содержимым images-version-info.txt

6. Настройка TLS (опционально)

⚠️

Важно: Данный раздел актуален только для версии Orchestrator 1.26.7 и выше.

Если требуется запустить Оркестратор с шифрованием соединений (HTTPS), необходимо разместить файлы сертификатов и конфигурации nginx в рабочей директории /opt/orchestrator рядом с docker-compose.yml.

Структура директории должна выглядеть следующим образом:

/opt/orchestrator/ ├── docker-compose.yml ├── nginx.conf # конфигурация nginx с поддержкой HTTPS ├── cert1.crt # публичный сертификат └── cert1.rsa # приватный ключ (может иметь расширение .key)
⚠️

Важно: Файлы сертификатов должны называться именно cert1.crt и cert1.rsa, либо необходимо изменить соответствующие пути в файле nginx.conf.

Где взять сертификаты:

Сертификаты и файл nginx.conf можно получить:

  • из Nexus-репозитория (рекомендуемый способ для закрытых контуров);
  • или сгенерировать самостоятельно (для тестовых сред).
ℹ️

Если TLS не требуется, сертификаты можно не добавлять — Оркестратор запустится по HTTP.

7. Запуск Orchestrator

cd /opt/orchestrator sudo docker compose up -d

Проверка статуса:

sudo docker compose ps # Все контейнеры должны быть в статусе "Up" или "healthy"

После запуска Оркестратор будет доступен:

  • Без TLS: http://<IP-сервера>:5000
  • С TLS: https://<IP-сервера> (порт 443)

Устранение возможных проблем

  1. Ошибка: no such file or directory при docker load Решение: Проверьте, что файл существует и путь указан верно. Используйте ls -la для проверки.

  2. Ошибка: конфликт имен образов при загрузке Решение: Убедитесь, что имена образов в docker-compose.yml и в tar-файлах совпадают. При загрузке отдельных файлов убедитесь, что нет лишних символов в именах.

  3. Ошибка: TLS не работает, соединение по HTTP Решение: Проверьте, что файлы сертификатов (cert1.crt, cert1.rsa) и nginx.conf присутствуют в рабочей директории. Убедитесь, что имена файлов совпадают с ожидаемыми в конфигурации.

Для больших образов (более 1 ГБ) рекомендуется использовать отдельные файлы — это упрощает повторную загрузку при обновлении только части образов и позволяет избежать ошибок при повреждении большого архива.

Важно

  1. docker-compose up не умеет самостоятельно распаковывать tar — сперва выполните docker load
  2. Загруженные образы будут доступны Docker Compose только после завершения docker load
  3. Сверьте теги образов в docker-compose.yml с теми, что были сохранены в tar — расхождения приведут к ошибке Unable to find image
Last updated on