Перейти к содержанию

Создание и синхронизация приватного репозитория Боцман

Введение

Когда используется создание внутреннего репозитория:

  1. Организация внутреннего защищенного хранилища компонентов платформы “Боцман” для последующей установки “Боцман” в закрытом контуре без доступа к сети Интернет.

  2. Организация локального защищенного хранилища компонентов платформы “Боцман” при нестабильном подключении к сети Интернет.

  3. По причине внутренних правил и политик информационной безопасности.

  4. Для ускорения процесса установки платформы “Боцман”.

В примере используется легковесный docker registry (https://hub.docker.com/_/registry)

Заметка

Если вы планируете использовать уже существующий registry на базе harbor, artifactory или иных продуктов, пожалуйста, обратитесь к их официальной документации по их настройке.

Технические требования

При планировании о размещении Registry следует учитывать:

  1. Приватный Registry должен иметь доступ до Registry платформы "Боцман" для синхронизации образов.
    Варианты исполнения:
    • Registry имеет постоянный доступ до публичного Registry платформы "Боцман"
    • Registry имеет постоянный доступ через Прокси до публичного Registry платформы "Боцман"
    • Registry имеет доступ до публичного Registry платформы "Боцман" в определенные часы синхронизации
    • Registry не имеет доступа до публичного Registry платформы "Боцман". Перенос осуществляется через отчуждаемые носители.
      Предварительно все пакеты должны быть размещены на отчуждаемом носители на устройстве с доступом к сети Интернет.
  2. До Registry должны иметь доступ все будущие узлы кластера и АРМ администратора. Доступ должен быть постоянный.

Описание параметров

Имя параметра Описание
OS Astra Linux, RED OS, Ubuntu
vCPU 2
RAM 8GB
DISK SPACE OS Не менее 30GB
DISK SPACE DATA Не менее 100GB
Networking Не менее 300Мb/s для доступа с серверов куда будет устанавливаться "Боцман"

Шаг 1. Настройка SSL сертификатов

Пример использования самоподписанных сертификатов

Выполните команду создания директории /data/certs на хосте, выделенном под роль registry:

mkdir -p /data/certs

Выполните команду перехода в директорию /data/certs:

cd /data/certs

Выполните команду генерации приватного ключа:

openssl genrsa -out registry.key  2048

Выполните создание конфигурационного файла san.cnf выпуска сертификата

Пример:

[req]
default_bits  = 2048
distinguished_name = req_distinguished_name
req_extensions = req_ext
x509_extensions = v3_req
prompt = no

[req_distinguished_name]
countryName = RU
stateOrProvinceName = N/A
localityName = N/A
organizationName = Self-signed certificate
commonName = REGISTRY_DOMAIN_NAME (1)

[req_ext]
subjectAltName = @alt_names

[v3_req]
subjectAltName = @alt_names

[alt_names]
DNS.0 = REGISTRY_DOMAIN_NAME (2)
IP.1 = REGISTRY_IP_ADDRESS (3)
  1. Доменное имя вашего registry
  2. Доменное имя вашего registry
  3. ip адрес хоста с ролью registry, который будет доступен с АРМ

Выполните команду генерации сертификата:

openssl req -new -x509 -nodes -sha256 -days 365 -key registry.key -out registry.crt -config san.cnf

Результатом выполнения команды должен стать файл: registry.crt

Выполните команду запуска registry с поддержкой терминирования TLS соединений (https):

docker run -d -p 443:5000 --name registry-tls  -v /data/certs:/certs -v /data/certs:/certs  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.crt -e REGISTRY_HTTP_TLS_KEY=/certs/registry.key  registry:2.8.3

Шаг 2. Добавление на АРМ сертификата в список доверенных

Выполните команду создания каталога на хосте с ролью АРМ:

mkdir -p /etc/docker/certs.d/registry:443/

Выполните команду, чтобы поместить содержимое файла registry.crt с хоста registry в файл:

/etc/docker/certs.d/registry:443/ca.crt на хосте с ролью АРМ

Выполните команду аутентификации на АРМ в новом докере registry:

docker login registry

Результатом выполнения команды должна стать строка: Login Succeeded

Шаг 3. Копирование с помощью bootsmanctl

Объем данных docker-образов

Объем скачиваемых данных составляет около 20Gi

Используйте bootsmanctl для получения копии образов в ваше хранилище образов

(1) bootsmanctl mirror registry YOUR_PRIVATE_REGISTRY_PATH \
(2)-u YOUR_PRIVATE_REGISTRY_USERNAME \
(3)-p YOUR_PRIVATE_REGISTRY_PASSWORD \
(4)-r BOOTSMAN_VERSION
  1. Url вашего хранилище образов.

    Например: registry:8080/bootsman-images

  2. Имя пользователя для вашего хранилища.

    Нужны права на запись

  3. Пароль пользователя
  4. Версия образов Bootsman

Ошибки передачи данных

В случае появления ошибок передачи, повторите процедуру копирования.

2025/07/17 10:47:21 protocol error: received DATA after END_STREAM
2025/07/17 10:49:12 protocol error: received DATA after END_STREAM

Следующий шаг