Запуск инсталлятора
Перед запуском инсталлятора должны быть выполнены следующие условия:
-
Создано продуктивное окружение в облачном проекте (продуктивный контур):
- Развёрнут кластер Kubernetes.
- Созданы и подключены к облачному проекту сервисные учётные записи. Подробнее об их создании читайте в Руководстве администратора. По согласованию с Заказчиком сервисные учётные записи могут быть созданы командой DevPlatform.
- Настроены сертификаты и DNS-записи.
-
Создан репозиторий исходного кода в проекте разработки.
-
Создан GitLab Runner (один или два) с указанием тегов для выполнения развёртывания.
-
Создан и настроен конвейер (pipeline) для репозитория исходного кода.
-
Создано хранилище Nexus в проекте разработки.
-
Скачайте архив, необходимый для установки VK Dev Platform.
-
Распакуйте архив.
-
Проверьте целостность содержимого архива командой:
unzip -t [archive_name]
Для установки 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 располагаются в файлах ~/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-агента для сбора метрик |
| Разворачивание Postgres и установка Zalando Postgres operator |
| Разворачивание Keycloak, создание областей безопасности (realm) для DevPlatform |
| Разворачивание БД Redis |
| Разворачивание GitLab, установка GitLab proxy для обеспечения единого входа, настройка секретов и TLS сертификатов |
| Разворачивание MySQL (Dev Prom), установка Percona Operator for MySQL |
| Разворачивание DevPlatform |
| Разворачивание Sonatype Nexus Repository Manager, настройка аутентификации через OpenID Connect |
| Разворачивание SonarQube, настройка аутентификации через OpenID Connect |
| Разворачивание интеграционного ядра |
| Разворачивание Devprom ALM |
| Создание общего пространства имён Kubernetes, настройка TLS сертификатов |
| Установка oidc-proxy, получение доступа к Keycloak |
| Создание S3 бакета для хранения резервных копий Postgres |
| Создание клиентов gitlab/nexus/etc в keycloak для обеспечения единого входа |
| Установка erebor_grafana_proxy для интеграции с Monitoring aaS |
| Установка Grafana для отображения метрик |
| Настройка дашбордов мониторинга |
| Создание и настройка сервисного пользователя openstack |
| Установка pgAdmin |
| Установка Prometheus Node Exporter для сбора телеметрии с операционной системы ноды Kubernetes |
| Операции с токеном (в рамках интеграции с Monitoring aaS) |
| Настройка каналов оповещения (в рамках интеграции с Monitoring aaS) |
| Настройка триггеров в 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.