Подготовка зеркала для установки в закрытом контуре

В закрытом контуре, при котором в процессе установки нет сети Интернет на всех узлах и зеркале, для установки необходим дистрибутив и лицензия РОСА Кубис. Ссылку на скачивание stm, stc, .bundle, а также номер лицензии передает заказчику менеджер со стороны компании РОСА.

Следует обратить внимание, что описываемый в разделе функционал доступен только в enterprise-версии.

Работа с зеркалом

Команды выполняются с помощью утилиты stm (shturval mirror), которая входит в состав .bundle. При запуске команд необходимо подставлять свои значения для параметров.

Команды инициализации, обновления зеркала и все доступные параметры приведены в таблице 8.

Основные команды утилиты stm и все доступные параметры приведены в таблице 9.

Примеры работы с зеркалом

Команда инициализации зеркала:

stm init --fqdn=mirror.ip-XX-XX-XXX-XX.shturval.link --license=XXXXXXXXXX

Следует обратить внимание, что можно использовать команду stm bundle make, включающую инициализацию зеркала и загрузку пакетов и образов. Пример команды инициализации зеркала и загрузка пакетов и образов из ".bundle".

stm bundle make --fqdn=mirror.ip-XX-XX-XXX-XX.shturval.link --license=XXXXXXXXXX

Команда загрузки новых версий из ".bundle" в ранее развернутое зеркало:

stm bundle load --path=../bundle/shturval-bundle

где в --path вместо ../bundle/shturval-bundle нужно указать путь до нового ".bundle". Следует обратить внимание, что выполнять команду необходимо в директории с текущим зеркалом.

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

Команда проверки целостности ".bundle":

stm bundle check

Команда основных операций с зеркалом

Запуск зеркала. Команда может потребоваться после остановки зеркала
stm start
Перезапуск
stm restart
Остановка зеркала. Команда может потребоваться при подключении Step-ca к зеркалу
stm stop
Проверка статуса зеркала
stm status
Удаление зеркала
stm uninstall

Работа с сертификатами

В Комплексе есть возможность импортировать свой сертификат на этапе инициализации зеркала (init, bundle make), на этапе развертывания nginx для внешнего nexus (external nginx) или отдельной командой (cert import).

В случае если сертификаты подключаются не во время инициализации зеркала или балансировщика, следует воспользоваться Инструкцией "Как прописать сертификаты в зеркало".

Требования к сертификату

  • Требования к сертификату включают:
  • Для импорта необходимо указать файл с цепочкой сертификатов и ключом.
  • Сертификаты и ключ должны быть в pem-формате.
  • Цепочка сертификатов должна содержать CA и сам сертификат.
  • Сертификат должен содержать поле "subjectAltName" с FQDN зеркала **(Fqdn должен совпадать с указанным параметром --fqdn или со значением в конфигурации зеркала).
  • При подписании CSR необходимо сохранить Extensions (для OpenSSL ‒ ключ -copy_extensions copyall).

Чтобы импортировать сертификат в зеркало, следует использовать команды для работы с сертификатом, в которые подставить свои значения параметров.

Команды и доступные параметры для работы с сертификатами приведены в таблице 10.

Примеры команд

Команды генерации csr и выпуска сертификата:

Выпустить запрос на получение сертификата (csr и ключ будут находиться в каталоге export)
stm cert csr --fqdn=mirror.corpdomain.ru
Выпустить сертификат, используя CSR и свой CA (пример для openssl)
openssl x509 -req -sha512  -in export/csr.pem -days 3650 -CA ca/ca_cert.pem \
-CAkey ca/ca_private_key.pem -CAcreateserial -out export/mirror_cert.pem -copy_extensions copyall
Добавить к полученному сертификату свой CA
cat ca/ca_cert.pem >> export/mirror_cert.pem

Команда импорта сертификата на инициализированное зеркало. Выполнение команды приведет к перезапуску зеркала.

stm cert import --cert-file export/mirror_cert.pem --privkey-file export/privkey.pem

Команда инициализации зеркала с импортом сертификата в зеркало:

stm bundle make --fqdn=mirror.corpdomain.ru --license=XXXXXXXXXX --version=2.10.0 \
--cert-file export/mirror_cert.pem --privkey-file export/privkey.pem

Внешний Nexus

Загрузка образов во внешний Nexus

Чтобы загрузить образы во внешний Nexus, используют команды stm external, в которые необходимо подставить свои значения параметров.

Команды и доступные параметры для загрузки образов во внешний Nexus приведены в таблице 11.

Примеры команд

Команда генерации конфигурации:

stm external config

Команда загрузки содержимого ".bundle" во внешний Nexus:

stm external load

Команда развертывания Nginx для проксирования запросов во внешний Nexus с импортом сертификата:

stm external nginx --fqdn=mirror.example.ru --cert-file export/mirror_cert.pem --privkey-file export/privkey.pem

Подготовка внешнего Nexus

Для подготовки внешнего Nexus необходимо:

  1. На Nexus необходимо создать требуемые hosted-репозитории:
  • Репозитории, обязательные для всех установок ‒ форматы raw, helm, docker;
    • Docker репозиторий должен иметь коннектор (выделенный порт);
  • Для apt-дистрибутивов обязателен Hosted APT repository, названный в конфигурационном файле "deb_universal";
    • Для apt-репозиториев "distribution" должен быть "main";
    • Для apt репозиториев должна быть сгенерирована пара gpg-ключей. Приватный ключ должен быть использован при создании репозитория, публичный должен быть загружен в корень raw репозитория под именем shturval.gpg;
  • Для yum-дистрибутивов обязателен Hosted APT repository, названый в конфиге "rpm_universal";
    • Для yum-репозитория Repodata Depth должна быть установлена в 0;
  • Также необходим yum- или apt-репозиторий для дистрибутива;
  • Например, для дистрибутива РеД ОС нужен helm, raw, docker и два yum репозитория, для дистрибутива astra ‒ helm, raw, docker и два apt репозитория.

Примечание ‒ Имена репозиториев могут быть любыми. Соответствие имен будет установлено в файле конфигурации.

  1. На хосте, имеющем доступ, сгенерировать пример конфигурации командой:
stm external config
  1. Полученный файл config/external-config-example.yaml нужно скопировать как config/external-config.yaml и заполнить в соответствии со своими данными.

Соответствие имен репозиториев заполняется как "ключ: значение", где в значении указываются имена созданных репозиториев (ключи менять не следует). Например, если для raw-репозитория был создан репозиторий с именем "raw_repo", в конфигурации запись должна выглядеть так:

bin_public: "raw_repo".

Запуск синхронизации из .bundle

Запуск синхронизации из ".bundle" осуществляется командой:

stm external load

После загрузки будет сгенерирован пример конфигурации Nginx. Его можно использовать для создания собственной конфигурации, для поднятия Nginx на нужном хосте. Модуль развертывания зеркала может развернуть собственный Nginx с требуемой конфигурацией (хост должен соответствовать общим требованиям модуля) командой:

stm external nginx –fqdn=mirror.example.ru