Подготовка зеркала для установки в закрытом контуре
В закрытом контуре, при котором в процессе установки нет сети Интернет на всех узлах и зеркале, для установки необходим дистрибутив и лицензия РОСА Кубис. Ссылку на скачивание 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 необходимо:
- На 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-репозитория Repodata Depth должна быть установлена в
- Также необходим yum- или apt-репозиторий для дистрибутива;
- Например, для дистрибутива РеД ОС нужен helm, raw, docker и два yum репозитория, для дистрибутива astra ‒ helm, raw, docker и два apt репозитория.
Примечание ‒ Имена репозиториев могут быть любыми. Соответствие имен будет установлено в файле конфигурации.
- На хосте, имеющем доступ, сгенерировать пример конфигурации командой:
stm external config
- Полученный файл
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