VK Dev Platform logo
Помощь
Обновлена 24 июля 2024 г. в 15:37

Запуск инсталлятора

Предусловия

Перед запуском инсталлятора должны быть выполнены следующие условия:

  • Создано продуктивное окружение в облачном проекте (продуктивный контур):

    • Развёрнут кластер Kubernetes.
    • Созданы и подключены к облачному проекту сервисные учётные записи. Подробнее об их создании читайте в Руководстве администратора. По согласованию с Заказчиком сервисные учётные записи могут быть созданы командой DevPlatform.
    • Настроены сертификаты и DNS-записи.
  • Создан репозиторий исходного кода в проекте разработки.

  • Создан GitLab Runner (один или два) с указанием тегов для выполнения развёртывания.

  • Создан и настроен конвейер (pipeline) для репозитория исходного кода.

  • Создано хранилище Nexus в проекте разработки.

Распаковка архива

  • Скачайте архив, необходимый для установки VK Dev Platform.

  • Распакуйте архив.

  • Проверьте целостность содержимого архива командой:

    unzip -t [archive_name]

Установка VK Dev Platform

Для установки VK Dev Platform с гостевой ОС запустите инсталлятор:

ansible-playbook -i inventories/mcs0549725789-dev02 pb-data-plane.yaml --vault-id dev@.env/password.sh

Для установки VK Dev Platform с помощью Docker:

docker build -t shepherd . &&  docker run -it -v $(pwd):/var/shepherd shepherd /bin/bash -c "cd /var/shepherd && export ANSIBLE_ROLES_PATH=/var/shepherd/roles && ansible-playbook -i inventories/mcs0549725789-dev02 playbooks/data-plane.yaml --vault-id dev@.env/password.sh"

Получение паролей VK Dev Platform

Все пароли для доступа к VK Dev Platform располагаются в файлах ~/roles/role_name/defaults/main.yaml (в открытом или зашифрованном виде).

Перечень ролей

Установка и обновление ПО выполняется при помощи системы управления конфигурациями ПО Ansible. Архив инсталлятора включает в себя перечень плейбуков, ролей, inventory, helm charts и образов Docker, которые загружаются в доступный репозиторий Nexus.

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

  • в control plane — плейбук pb-control-plane.yaml.
  • в data plane — плейбук pb-data-plane.yaml.

В плейбуках перечислены роли, расположенные в порядке выполнения команд. Роли включают в себя набор задач, переменных и других артефактов, необходимых для настройки Платформы. Часть ролей (common, oidc-proxy, S3, SSO) являются вспомогательными, они используются в процессе запуска другими ролями, которые в свою очередь отвечают за Разворачивание и конфигурирование отдельных компонентов системы. В таблице ниже указан список используемых в инсталляторе ролей и их функционал.

Роль

Функционал

telegraf

Разворачивание Telegraf-агента для сбора метрик

zalando

Разворачивание Postgres и установка Zalando Postgres operator

keycloak

Разворачивание Keycloak, создание областей безопасности (realm) для DevPlatform

redis

Разворачивание БД Redis

gitlab

Разворачивание GitLab, установка GitLab proxy для обеспечения единого входа, настройка секретов и TLS сертификатов

percona

Разворачивание MySQL (Dev Prom), установка Percona Operator for MySQL

front

Разворачивание DevPlatform

nexus

Разворачивание Sonatype Nexus Repository Manager, настройка аутентификации через OpenID Connect

sonarqube

Разворачивание SonarQube, настройка аутентификации через OpenID Connect

samsara

Разворачивание интеграционного ядра

devprom

Разворачивание Devprom ALM

common

Создание общего пространства имён Kubernetes, настройка TLS сертификатов

oidc-proxy

Установка oidc-proxy, получение доступа к Keycloak

S3

Создание S3 бакета для хранения резервных копий Postgres

SSO

Создание клиентов gitlab/nexus/etc в keycloak для обеспечения единого входа

erebor_grafana_proxy

Установка erebor_grafana_proxy для интеграции с Monitoring aaS

grafana

Установка Grafana для отображения метрик

grafana_dashboard

Настройка дашбордов мониторинга

openstack

Создание и настройка сервисного пользователя openstack

pgadmin

Установка pgAdmin

prometheus_node_exporter

Установка Prometheus Node Exporter для сбора телеметрии с операционной системы ноды Kubernetes

vkcs_login

Операции с токеном (в рамках интеграции с Monitoring aaS)

vkcs_notification_channel

Настройка каналов оповещения (в рамках интеграции с Monitoring aaS)

vkcs_trigger

Настройка триггеров в Monitoring aaS

Inventories — это набор inventory-файлов, содержащих информацию об узлах (hosts) инфраструктуры, на которых производится установка и обновление ПО. В inventory-файлах Ansible указываются параметры, необходимые для подключения к узлам:

  • Доменные имена или IP-адреса узлов.
  • Kubeconfig для доступа в кластер Kubernetes (в зашифрованном виде).
  • Переменные для генерации ConfigMap, Secret и Kubernetes CRD.
  • Ключи для обеспечения единого входа.

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

  • Корректно заполнены inventory и переменные для нового стенда.
  • Установлено ПО Private Cloud 4.X. Подробнее об установке — в Руководстве по установке Private Cloud 4.X.
  • Установлено ПО Docker версии XX для запуска контейнера с Ansible.