Состав поставки для установки через Ansible

Компоненты системы

КомпонентОписание
Zakroma-StorageУправляющий слой, обеспечивающий работу S3 API, управление рабочими областями, бакетами и политиками доступа.
ZDS (Single Node)Слой хранения данных (минимальное требование — 3 узла в режиме Erasure Coding, 1 узел — в режиме без избыточного кодирования). Поддержка только Single-Node конфигурации для целей тестирования.
ZDS (кластер)Слой хранения данных, поддерживающий режим Erasure Coding и режим репликации (Replica Factor), поставляется как решение по умолчанию начиная с версии поставки 7.0.0.
Keycloak (опционально)Система управления аутентификацией и авторизацией (используется для входа в Admin UI и доступа пользователей к сервисам Закрома.Хранение).
PostgreSQLСУБД для метаданных Zakroma-Storage и Keycloak.
Kafka (опционально)Система обмена сообщениями, используемая сервисами Zakroma (требуется для отдельных служебных операций).
Kafka-UI (опционально)Интерфейс управления и мониторинга Kafka-кластером через веб-приложение.

Nginx не входит в сценарии базового кластера, Single Node и растянутого кластера поставки 7.2.4. Роль nginx остаётся в архиве для legacy-инсталляций, где Nginx уже используется как reverse proxy или для терминации TLS. В описанном мультикластерном сценарии Nginx обязателен для TLS-терминации CDN. Подробности приведены в отдельной инструкции: Настройка Nginx.

Компоненты, устанавливаемые с помощью Ansible-ролей

НазваниеПоддерживаемые версии
Zakroma-Storage2.9.4
ZDS (Single Node)1.6.5
Keycloak26.5.5
Javaв зависимости от дистрибутива Linux
(устанавливается из стандартных репозиториев хостовой операционной системы)
Kafka3.8.1
Kafka-UI0.7.2
ZDS (кластер)2.1.1

Поддерживаемые дистрибутивы Linux

НазваниеПоддерживаемые версии
Debian10, 11, 12
Ubuntu20, 22, 24
AlmaLinux8, 9
RedOS7, 8, 8 Сертифицированный
RHEL8, 9
ALT Server10.4 (Mendelevium)
ALSE1.8 Орёл/Воронеж/Смоленск, Сертифицированный
Alt Linux SPСертифицированный
ROSA Chrome2021.1 (12.7)

Версии Ansible-ролей из поставки

РольВерсия
certificates1.0.0
keycloak8.0.1
java2.1.3
kafka2.1.0
kafka-ui1.0.0
nginx1.3.0
zakroma-storage10.0.6
zakroma-zds5.3.8
zakroma-zds-v26.1.1
zakroma-preflight1.0.0
zakroma-log-collector1.0.0
zakroma-quick-start1.0.0

Используемые Ansible collections

CollectionВерсия
community.general9.4.0
ansible.posix1.6.0
community.crypto2.22.0
community.postgresql3.4.1
middleware_automation.keycloak2.4.1

Структура дистрибутива

Дистрибутив поставляется архивом вида zakroma-roles-<ВЕРСИЯ_РЕЛИЗА_АРХИВА_С_ANSIBLE_РОЛЯМИ>.tar.gz.

1. 2├── .gitignore 3├── CHANGELOG.md 4├── ansible.cfg 5├── files
Развернутьarrow

  • .gitignore Список локальных каталогов и файлов, которые не должны попадать в репозиторий шаблона поставки.
  • ansible.cfg Файл конфигурации Ansible, в котором задаются параметры работы (например, пути к инвентарям, настройки подключения, параметры логирования и т.д.).
  • CHANGELOG.md Журнал изменений проекта. Здесь фиксируются версии, внесённые правки, улучшения и исправления ошибок.
  • files/dashboards/.gitkeep Служебный файл для сохранения пустого каталога дашбордов в шаблоне поставки.
  • files/keycloak/realm.json JSON-файл, содержащий сконфигурированный realm для Keycloak.
  • files/zakroma-licence/licence Пример файла лицензии Закрома.Хранение, который может быть скопирован на целевые хосты отдельным playbook.
  • files/zcli/.gitkeep Служебный файл для сохранения каталога, предназначенного для утилиты zcli, в шаблоне поставки.
  • inventories/ Каталог с инвентарями Ansible, разделёнными по различным сценариям развёртывания:
    • base-cluster/ Инвентарь для развёртывания базового кластера:
      • group_vars/ – переменные групп хостов для базового кластера:
        • certificates.yml – переменные для копирования сертификатов на целевые хосты.
        • java.yml – переменные для установки Java.
        • kafka-ui-nginx.yml – переменные для установки и конфигурирования Nginx для Kafka-UI.
        • kafka-ui.yml – переменные для установки и конфигурирования Kafka-UI.
        • kafka.yml – переменные для установки и конфигурирования Kafka.
        • keycloak.yml – переменные для установки и конфигурирования Keycloak.
        • zakroma-log-collector.yml – переменные для сбора диагностических логов с узлов Zakroma.
        • zakroma-storage-nginx.yml – переменные для установки и конфигурирования Nginx для Zakroma-Storage.
        • zakroma-storage.yml – переменные для установки и конфигурирования Zakroma-Storage.
        • zakroma-zds-ec.yml – переменные для установки и конфигурирования ZDS.
        • zakroma-zds-v2-ec.yml – переменные для установки и конфигурирования ZDS (решение по умолчанию).
      • hosts – определение хостов для базового кластера.
    • multicluster/ Инвентарь для мультикластерного развёртывания:
      • cluster-1/ и cluster-2/ Для каждого кластера:
        • group_vars/ – аналогичные файлы с переменными (такие же файлы, как в base-cluster).
        • hosts – определение хостов для конкретного кластера.
    • single-node/ Инвентарь для развёртывания на одном узле:
      • group_vars/ – файлы с переменными для одиночного узла. Отличительной особенностью является наличие файла zakroma-zds-fs.yml (слой хранения данных без Erasure Coding).
      • hosts – файл с описанием единственного узла.
    • quick-start/ Заглушка inventory для первого запуска сценария быстрой установки (sample-play-quick-start.yml). После стадии bootstrap роль zakroma-quick-start заполняет каталог group_vars и файл hosts рабочими значениями.
  • playbooks/ Каталог с плейбуками, необходимыми для применения ролей или выполнения конкретных задач:
    • sample-play-copy-certificates.yml – playbook для копирования сертификатов.
    • sample-play-copy-licence-file.yml – playbook для копирования файла лицензии на целевые хосты.
    • sample-play-delete-old-version.yml – playbook для удаления старой версии компонентов перед обновлением или переустановкой.
    • sample-play-java.yml – playbook для установки Java.
    • sample-play-kafka-ui-nginx.yml – playbook для установки и конфигурирования Nginx для Kafka-UI.
    • sample-play-kafka-ui.yml – playbook для установки и конфигурирования Kafka UI.
    • sample-play-kafka.yml – playbook для установки и конфигурирования Kafka.
    • sample-play-keycloak-copy-realm.yml – playbook для копирования realm-конфигурации в Keycloak.
    • sample-play-keycloak.yml – playbook для установки и конфигурирования Keycloak.
    • sample-play-quick-start.yml – playbook быстрой установки кластера (роль zakroma-quick-start).
    • sample-play-zakroma-log-collector.yml – playbook для сбора диагностических логов.
    • sample-play-zakroma-storage-nginx.yml – playbook для установки и конфигурирования Nginx для Zakroma-Storage.
    • sample-play-zakroma-storage-preflight.yml – playbook preflight-проверок Zakroma-Storage.
    • sample-play-zakroma-storage.yml – playbook для установки и конфигурирования Zakroma-Storage.
    • sample-play-zakroma-zds-ec.yml – playbook для установки и конфигурирования ZDS в режиме EC (с применением Erasure Coding)
    • sample-play-zakroma-zds-fs.yml – playbook для установки и конфигурирования ZDS в режиме FS (без Erasure Coding).
    • sample-play-zakroma-zds-v2-ec.yml – playbook для установки и конфигурирования ZDS в режиме EC (решение по умолчанию).
    • sample-play-zakroma-zdsv2-preflight.yml – playbook preflight-проверок ZDS.
  • requirements.yml.template Шаблон зависимостей Ansible: список collections и ролей с версиями для установки через ansible-galaxy.
  • roles/.gitkeep Служебный файл для сохранения каталога, в который устанавливаются Ansible-роли из requirements.yml.template.