Установка KeyStack LCM¶
Компонент KeyStack LCM (Lifecycle Manager) обеспечивает жизненный цикл облака. Он также используется в качестве seed node — с него происходит установка и настройка всех остальных узлов в составе облака.
Примечание
В данной инструкции в качестве базового доменного имени облачной платформы используется cloud.itkey.com и имена сервисов по умолчанию. При выполнении инструкции указывайте ваши действительные имена.
Базовая установка LCM¶
Зайдите на LCM-узел по SSH.
Скопируйте дистрибутив KeyStack на него любым удобным способом.
Переключитесь на пользователя
root, перейдите в папку с файлом дистрибутива и распакуйте дистрибутив платформы KeyStack.# sudo su - # tar -xvf installer-ks2025.2.2-sberlinux-offline.tgz # cd installer/
Если для хранилища артефактов будет использовано клиентское хранилище Docker-образов:
В папке
installer/certsсоздайте файлmynexus.itkey.com.pem(гдеmynexus.itkey.com— FQDN вашего сервиса Nexus) и разместите в нем полную цепочку сертификатов вашего сервиса Nexus.Убедитесь, что в вашем Docker-хранилище существует пользователь с правами
pullиpush.
Docker-образы для OpenStack и kolla-ansible будут сохранены в вашем Nexus в пространстве project_k.
При интеграции KeyStack с клиентским сервисом идентификации и аутентификации (Active Directory или другой сервис LDAP с TLS) в папке
installer/certsсоздайте файлldaps.pemи разместите в нем полную цепочку сертификатов LDAPs.В распакованном архиве запустите скрипт
installer.sh.Последовательно введите запрашиваемые данные:
home dir for the installation: путь к директории для установки, по умолчанию
/installer;IP address of this machine: IP-адрес LCM-узла, соответствующий доменному имени
ks-lcm;Use remote/existing Artifactory:
y— использовать собственное хранилище артефактов; при выборе этого варианта укажите:FQDN хранилища Nexus (например,
mynexus.itkey.com), не должно совпадать с FQDN для Nexus в составе дистрибутива KeyStack;имя пользователя с правами
pullиpushв Docker-хранилище;пароль пользователя с правами
pullиpushв Docker-хранилище, длина — не менее 8 символов.
n— развернуть новый Nexus на LCM-узле (вариант по умолчанию).
auth LDAP for Gitlab and Netbox:
y— включить поддержку интеграции с каталогами LDAP и ролевой модели в GitLab и NetBox; при выборе этого варианта укажите:LDAP Server URI: адрес LDAP-сервиса в формате
ldaps://<IP или FQDN>;LDAP BIND DN: пользователь в LDAP с правами просмотра, используется для подключения к LDAP;
LDAP BIND Password: пароль пользователя для подключения к LDAP;
LDAP USER SEARCH BASEDN: имя контейнера (Distinguished Name) в LDAP, с которого начинается поиск пользователей;
LDAP GROUP SEARCH BASEDN: группа для поиска пользователя; вернет все группы, к которым принадлежит пользователь;
LDAP GROUP for reader role: группа LDAP, пользователи из которой соответствуют роли reader;
LDAP GROUP for auditor role: группа LDAP, пользователи из которой соответствуют роли auditor;
LDAP GROUP for admin role: группа LDAP, пользователи из которой соответствуют роли admin.
root domain name: корневое доменное имя сервисов KeyStack, например,
cloud.itkey.com, оно будет добавлено к введенным ниже именам сервисов, таким образом, получатся имена вида<сервис>.cloud.itkey.com;Nexus domain name: доменное имя сервиса Nexus, например,
nexus;GitLab domain name: доменное имя сервиса GitLab, например,
ks-lcm;Vault domain name: доменное имя сервиса Vault, например,
vault;Netbox domain name: доменное имя сервиса NetBox, например,
netbox;Generate Self-signed certificates:
y— сгенерировать новые самоподписанные сертификаты (вариант по умолчанию);n— использовать существующие сертификаты; при выборе этого варианта разместите в папкеinstaller/certsсертификаты:ca.crt— корневой сертификат (root CA);chain-ca.pem— цепочка CA-сертификатов;nexus.cloud.itkey.com.crtиnexus.cloud.itkey.com.key— сертификат и приватный ключ сертификата для сервиса Nexus;ks-lcm.cloud.itkey.com.crtиks-lcm.cloud.itkey.com.key— сертификат и приватный ключ сертификата для сервиса GitLab;vault.cloud.itkey.com.crtиvault.cloud.itkey.com.key— сертификат и приватный ключ сертификата для сервиса Vault;netbox.cloud.itkey.com.crtиnetbox.cloud.itkey.com.key— сертификат и приватный ключ сертификата для сервиса NetBox.
Дождитесь завершения операции. На LCM-узле будут установлены и настроены компоненты:
SSH-ключи для беспарольного доступа на узлы;
самоподписанные сертификаты для служб LCM, при их использовании;
хранилище Sonatype Nexus (если был выбран вариант создания нового хранилища);
система автоматизации (GitLab-CI);
репозитории управления облаком (CI/CD);
NetBox (CMDB).
Данные с текущей конфигурацией инсталляции сохраняются в Vault в директорию secret_v2 / deployments / <LCM FQDN> / secrets / accounts.
При успешной установке будут показаны реквизиты для доступа к компонентам KeyStack. Сохраните реквизиты доступа к компонентам:
GitLab root password
GitLab runner token
GitLab SSH private key
GitLab SSH public key
Nexus admin password
Netbox admin password
Netbox postgres password
Netbox redis password
Netbox redis cache password
Vault Initial Root Token
Vault Unseal Key 1
Root CA Certificate
Осторожно
Реквизиты будут показаны только один раз. После закрытия или очищения терминала реквизиты доступа будут безвозвратно удалены.
Добавьте корневой сертификат (значение параметра Root CA Certificate) в формате Base64 ASCII в ваши доверенные корневые центры сертификации для корректной работы веб-интерфейсов платформы.
Настройка собственного корневого сертификата¶
Инсталлятор генерирует собственные сертификаты платформы с помощью openssl:
Создает корневой CA (центр сертификации): корневой сертификат и приватный ключ. Срок действия — 10 лет.
Создает wildcard-сертификат и приватный ключ для сервисов GitLab, Nexus, Vault, NetBox и делает их доверенными этому CA. Также создается цепочка сертификатов вида
chain-cert.pemдля сервисов. Срок действия — 2 года.Создает в Vault репозиторий installer для хранения сертификатов и создает в нем CA на основе корневого CA. Срок действия — 2 года.
Создает роль, с помощью которой можно выписывать сертификаты на основе запросов пользователей.
Важно
Все пароли и сертификаты платформы должны храниться в сервисе Vault.
Для того чтобы использовать собственные сертификаты, выполните следующие действия:
Подготовьте цепочку сертификатов для своего Nexus в файле
nexus.itkey.com.pem.Откройте веб-интерфейс развернутого Vault (
vault.cloud.itkey.com).Авторизуйтесь с помощью реквизитов для Vault, полученных на этапе установки дистрибутива KeyStack.
Откройте на редактирование файл secret_v2 / deployments / <LCM FQDN> / secrets / accounts / ca.crt и дополните его корневым и промежуточным CA-сертификатами своего Nexus.
Настройка ролевой модели в GitLab и NetBox¶
Примечание
Для настройки ролевой модели необходимо включить интеграцию с каталогами LDAP на этапе установки LCM (опция auth LDAP for Gitlab and Netbox).
Настройка ролевой модели в NetBox¶
После инсталляции зайдите в веб-интерфейс NetBox одним пользователем из каждой сопоставленной группы LDAP. При этом действии каждая группа будет зарегистрирована в NetBox.
Зайдите пользователем с ролью admin.
Перейдите в раздел .
Отредактируйте группы и выставите им разрешения:
Для групп с ролью security_auditor и reader укажите разрешение
perm_ro.Для групп с ролью admin укажите разрешение
perm_rw.
Перенесите административные привилегии со встроенной учётной записи администратора NetBox на учетную запись администратора из каталога LDAP:
Войдите в NetBox административным пользователем с ролью admin из каталога LDAP.
Перейдите в раздел .
Откройте редактирование пользователя admin.
Снимите с пользователя admin статусы Статус персонала и Статус суперпользователя.
Перейдите в раздел .
Удалите все токены, принадлежащие встроенному пользователю admin.
Добавьте новый токен:
Нажмите Добавить.
Выберите текущего пользователя.
Отметьте галочкой Запись включена.
Скопируйте сгенерированный токен.
Откройте веб-интерфейс сервиса Vault.
Перейдите в директорию secret_v2 / deployments / <LCM FQDN> / secrets / accounts.
Нажмите Create new для создания новой версии секрета.
Замените значение
NETBOX_TOKENна скопированное.
Настройка ролевой модели в GitLab¶
После инсталляции зайдите веб-интерфейс GitLab по адресу
https://ks-lcm.cloud.itkey.com.Выберите вариант входа Standard и авторизуйтесь пользователем
root.Перейдите в репозиторий project_k / services / gitlab-ldap-sync, откройте на редактирование файл
gitlab-ldap-sync.conf:
В секции
[gitlab]в строкеgroups=укажите названия ваших сопоставляемых LDAP-групп. Отредактируйте значения ключаldap:для каждой группы. В строкеmaintenance_ldap_groupукажите название LDAP-группы, которая сопоставляется с ролью admin. Руководствуйтесь назначением сопоставляемых групп, указанным в Описании ролевой модели.В секции
[ldap]в строкеuser_filter=укажите название LDAP-групп.Запустите пайплайн по умолчанию для первичной синхронизации пользователей из вашего сервиса LDAP. При запуске пайплайна убедитесь, что в переменной
KEYSTACK_RELEASEуказано актуальное значение релиза.В репозитории project_k / services / gitlab-ldap-sync в разделе настройте периодичность запуска пайплайна.
Проверка настройки¶
Войдите в веб-интерфейс NetBox и GitLab пользователями с разными ролями. При аутентификации выбирайте вариант входа LDAP. Вход должен быть успешным, доступные элементы соответствовать роли пользователя.