Установка KeyStack LCM

Компонент KeyStack LCM (Lifecycle Manager) обеспечивает жизненный цикл облака. Он также используется в качестве seed node — с него происходит установка и настройка всех остальных узлов в составе облака.

Для установки LCM в режиме высокой доступности (три LCM-узла в кластере Kubernetes) обратитесь к инструкции Установка KeyStack LCM в режиме высокой доступности. Ниже описана установка LCM в стандартном режиме без высокой доступности.

Примечание

В данной инструкции в качестве базового доменного имени облачной платформы используется cloud.itkey.com и имена сервисов по умолчанию. При выполнении инструкции указывайте ваши действительные имена.

Базовая установка LCM

  1. Зайдите на LCM-узел по SSH.

  2. Скопируйте дистрибутив KeyStack на него любым удобным способом.

  3. Переключитесь на пользователя root, перейдите в папку с файлом дистрибутива и распакуйте дистрибутив платформы KeyStack.

    # sudo su -
    # tar -xvf installer-ks2025.3.1-sberlinux-offline.tgz
    # cd installer/
    
  4. Если для хранилища артефактов будет использовано клиентское хранилище Docker-образов:

    1. В папке installer/certs создайте файл mynexus.itkey.com.pem (где mynexus.itkey.comFQDN вашего сервиса Nexus) и разместите в нем полную цепочку сертификатов вашего сервиса Nexus.

    2. Убедитесь, что в вашем Docker-хранилище существует пользователь с правами pull и push.

    Docker-образы для OpenStack и kolla-ansible будут сохранены в вашем Nexus в пространстве project_k.

  5. При интеграции KeyStack с клиентским сервисом идентификации и аутентификации (Active Directory или другой сервис LDAP с TLS) в папке installer/certs создайте файл ldaps.pem и разместите в нем полную цепочку сертификатов LDAPs.

  6. Добавьте корневой сертификат (значение параметра Root CA Certificate) в формате Base64 ASCII в ваши доверенные корневые центры сертификации для корректной работы веб-интерфейсов платформы.

    # cp certs/chain-ca.pem /etc/pki/ca-trust/source/anchors/
    # update-ca-trust
    

    Примечание

    Файл chain-ca.pem должен содержать полную цепочку сертификатов центров сертификации (CA chain), выпустивших сертификат для сервисов LCM.

  7. В распакованном архиве запустите скрипт installer.sh.

  8. Последовательно введите запрашиваемые данные:

    • 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-сервиса в формате 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.

  9. Дождитесь завершения операции. На LCM-узле будут установлены и настроены компоненты:

    • SSH-ключи для беспарольного доступа на узлы;

    • самоподписанные сертификаты для служб LCM, при их использовании;

    • хранилище Sonatype Nexus (если был выбран вариант создания нового хранилища);

    • система автоматизации (GitLab-CI);

    • репозитории управления облаком (CI/CD);

    • NetBox (CMDB).

    Данные с текущей конфигурацией инсталляции сохраняются в Vault в директорию secret_v2 / deployments / <LCM FQDN> / secrets / accounts.

  10. При успешной установке будут показаны реквизиты для доступа к компонентам 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

    Осторожно

    Реквизиты будут показаны только один раз. После закрытия или очищения терминала реквизиты доступа будут безвозвратно удалены.

  11. Настройте пользователя kolla для возможности резервного копирования LCM-узла и баз данных OpenStack:

    1. Создайте пользователя kolla и добавьте в группу docker:

      # useradd -s /bin/bash -m kolla
      # usermod -aG docker kolla
      
    2. Настройте права sudo для пользователя, создав файл /etc/sudoers.d/kolla со следующим содержимым:

      kolla ALL=(ALL) NOPASSWD:ALL
      
    3. Настройте доступ по SSH для пользователя:

      # su -l kolla
      # mkdir -p .ssh
      # vi .ssh/authorized_keys
      
    4. Добавьте в файл authorized_keys содержимое публичного ключа из /installer/config/gitlab_key.pub.

    Подробная информация о резервном копировании представлена в разделе Резервное копирование и восстановление.

Настройка собственного корневого сертификата

Инсталлятор генерирует собственные сертификаты платформы с помощью openssl:

  1. Создает корневой CA (центр сертификации): корневой сертификат и приватный ключ. Срок действия — 10 лет.

  2. Создает wildcard-сертификат и приватный ключ для сервисов GitLab, Nexus, Vault, NetBox и делает их доверенными этому CA. Также создается цепочка сертификатов вида chain-cert.pem для сервисов. Срок действия — 2 года.

  3. Создает в Vault репозиторий installer для хранения сертификатов и создает в нем CA на основе корневого CA. Срок действия — 2 года.

  4. Создает роль, с помощью которой можно выписывать сертификаты на основе запросов пользователей.

Важно

Все пароли и сертификаты платформы должны храниться в сервисе Vault.

Для того чтобы использовать собственные сертификаты, выполните следующие действия:

  1. Подготовьте цепочку сертификатов для своего Nexus в файле nexus.itkey.com.pem.

  2. Откройте веб-интерфейс развернутого Vault (vault.cloud.itkey.com).

  3. Авторизуйтесь с помощью реквизитов для Vault, полученных на этапе установки дистрибутива KeyStack.

  4. Откройте на редактирование файл secret_v2 / deployments / <LCM FQDN> / secrets / accounts / ca.crt и дополните его корневым и промежуточным CA-сертификатами своего Nexus.

Настройка ролевой модели в GitLab и NetBox

Ролевая модель в GitLab и NetBox настраивается автоматически при наличии необходимых конфигурационных файлов. Если требуется дополнительная настройка обратитесь к разделам Ролевая модель в NetBox и Ролевая модель в GitLab в Руководстве администратора.