Управляющий слой: S3 API, управление рабочими областями, бакетами и политиками доступа.
ZDS (v1, конфигурация для Single Node)
Слой хранения данных на одном узле без избыточного кодирования (режим FS). Поддерживается только в конфигурации Single Node для тестирования.
ZDS (v2, актуальная версия)
Слой хранения данных с режимами Erasure Coding и репликации (Replica Factor). Решение по умолчанию начиная с поставки 7.0.0.
Keycloak (опционально)
Система управления аутентификацией и авторизацией (используется для входа в Admin UI и доступа пользователей к сервисам Закрома.Хранение).
PostgreSQL
СУБД для метаданных Закрома.Хранение и Keycloak.
Kafka
Система обмена сообщениями, используемая сервисами Закрома.Хранение. Обязательна в мультикластере; в сценариях Single Node, базового и растянутого кластера нужна для работы сервиса seclog.
Kafka-UI (опционально)
Веб-интерфейс управления и мониторинга кластера Kafka.
HAProxy и keepalived
Отказоустойчивый балансировщик на узлах Закрома.Хранение: публикует S3 API и Admin UI на общем виртуальном IP-адресе (VIP). Используется в сценариях базового и растянутого кластера.
Nginx не входит в сценарии базового кластера, Single Node и растянутого кластера поставки 8.1.0: в базовом и растянутом кластере S3 API и Admin UI публикуются через балансировщик haproxy-ha. Роль nginx остаётся в архиве для legacy-инсталляций, где Nginx уже используется как reverse proxy или для терминации TLS. В описанном мультикластерном сценарии Nginx обязателен для TLS-терминации CDN. Подробнее: Настройка Nginx.
Компоненты, устанавливаемые с помощью Ansible-ролей
Название
Поддерживаемые версии
Закрома.Хранение
2.10.1
ZDS (Single Node)
1.6.5
Keycloak
26.5.5
Java
зависит от дистрибутива Linux (устанавливается из стандартных репозиториев ОС узла)
Kafka
3.8.1
Kafka-UI
0.7.2
ZDS (кластер)
2.1.1
Поддерживаемые дистрибутивы Linux
Название
Поддерживаемые версии
Debian
10, 11, 12
Ubuntu
20, 22, 24
AlmaLinux
8, 9
RedOS
7, 8, 8 Сертифицированный
RHEL
8, 9
ALT Server
10.4 (Mendelevium)
ALSE
1.8 Орёл/Воронеж/Смоленск, Сертифицированный
ALT SP
Сертифицированный
ROSA Chrome
2021.1 (12.7), 12 ФСТЕК, 13
Версии Ansible-ролей из поставки
Роль
Версия
certificates
1.1.0
keycloak
8.0.3
java
2.2.0
kafka
2.1.1
kafka-ui
1.0.0
nginx
1.4.0
zakroma-storage
11.0.1
zakroma-zds
5.3.8
zakroma-zds-v2
6.2.0
zakroma-preflight
1.1.1
zakroma-log-collector
1.0.0
zakroma-quick-start
1.2.0
postgresql-ha
0.5.0
haproxy-ha
0.1.2
Роль postgresql-ha входит в архив поставки, но не используется в примерах плейбуков и инвентарей.
Используемые Ansible collections
Collection
Версия
community.general
9.4.0
ansible.posix
1.6.0
community.crypto
2.22.0
community.postgresql
3.4.1
middleware_automation.keycloak
2.4.1
Структура дистрибутива
Дистрибутив поставляется архивом вида zakroma-roles-<ВЕРСИЯ_РЕЛИЗА_АРХИВА_С_ANSIBLE_РОЛЯМИ>.tar.gz.
.gitignore
Список локальных каталогов и файлов, которые не должны попадать в репозиторий шаблона поставки.
ansible.cfg
Файл конфигурации Ansible: пути к инвентарям, параметры подключения, логирования и т. д.
CHANGELOG.md
Журнал изменений поставки по версиям.
files/dashboards/.gitkeep
Служебный файл для сохранения пустого каталога дашбордов в шаблоне поставки.
files/keycloak/realm.json
Преднастроенный realm Keycloak в формате JSON.
files/zakroma-licence/licence
Пример файла лицензии Закрома.Хранение; копируется на целевые узлы отдельным плейбуком.
files/zcli/.gitkeep
Служебный файл для сохранения каталога, предназначенного для утилиты zcli, в шаблоне поставки.
inventories/
Инвентари Ansible по сценариям развёртывания:
base-cluster/
Инвентарь для развёртывания базового кластера:
group_vars/ – переменные групп хостов для базового кластера:
certificates.yml – переменные для копирования сертификатов на целевые узлы.
haproxy-ha.yml – переменные для установки и настройки отказоустойчивого балансировщика HAProxy с keepalived на узлах Закрома.Хранение.
java.yml – переменные для установки Java.
kafka-ui.yml – переменные для установки и настройки Kafka-UI.
kafka.yml – переменные для установки и настройки Kafka.
keycloak.yml – переменные для установки и настройки Keycloak.
zakroma-log-collector.yml – переменные для сбора диагностических логов с узлов Закрома.Хранение.
zakroma-storage.yml – переменные для установки и настройки Закрома.Хранение.
zakroma-zds-v2-ec.yml – переменные для установки и настройки ZDS (решение по умолчанию).
hosts – описание узлов базового кластера.
multicluster/
Инвентарь для мультикластерного развёртывания:
cluster-1/ и cluster-2/
Для каждого кластера:
group_vars/ – файлы с переменными, аналогичные base-cluster, но без haproxy-ha.yml; дополнительно содержат kafka-ui-nginx.yml и zakroma-storage-nginx.yml – переменные Nginx для Kafka-UI и для TLS-терминации CDN.
hosts – описание узлов кластера.
single-node/
Инвентарь для развёртывания на одном узле:
group_vars/ – переменные для одного узла. Отличие от других сценариев — файл zakroma-zds-fs.yml (ZDS без Erasure Coding).
hosts – файл с описанием единственного узла.
stretched-cluster/
Инвентарь для развёртывания растянутого кластера на двух площадках:
group_vars/ – переменные для растянутого кластера. Отличие от других сценариев — файлы haproxy-ha-site-1.yml и haproxy-ha-site-2.yml (балансировщик и VIP каждой площадки) и zakroma-zds-site-1.yml и zakroma-zds-site-2.yml (отдельный кластер ZDS на каждой площадке).
hosts – описание узлов обеих площадок.
quick-start/
Инвентарь для первого запуска сценария быстрой установки (sample-play-quick-start.yml, sample-play-quick-start-single-node.yml). Файл group_vars/all/quick-start.yml — заглушка: после стадии bootstrap роль zakroma-quick-start заполняет каталог group_vars и файл hosts рабочими значениями.
playbooks/
Плейбуки для применения ролей и выполнения отдельных задач:
sample-play-copy-certificates.yml – плейбук для копирования сертификатов.
sample-play-copy-licence-file.yml – плейбук для копирования файла лицензии на целевые хосты.
sample-play-delete-old-version.yml – плейбук очистки legacy-сервиса zakroma-storage-gateway после обновления до monolith-архитектуры; выполняется только с явным подтверждением -e cleanup_approved=true.
sample-play-haproxy-ha.yml – плейбук для установки и настройки отказоустойчивого балансировщика HAProxy с keepalived.
sample-play-java.yml – плейбук для установки Java.
sample-play-kafka-ui-nginx.yml – плейбук для установки и настройки Nginx для Kafka-UI.
sample-play-kafka-ui.yml – плейбук для установки и настройки Kafka-UI.
sample-play-kafka.yml – плейбук для установки и настройки Kafka.
sample-play-keycloak-copy-realm.yml – плейбук для импорта конфигурации realm в Keycloak.
sample-play-keycloak.yml – плейбук для установки и настройки Keycloak.
sample-play-quick-start-single-node.yml – плейбук быстрой установки на одном узле (роль zakroma-quick-start).
sample-play-quick-start.yml – плейбук быстрой установки кластера (роль zakroma-quick-start).
sample-play-zakroma-log-collector.yml – плейбук для сбора диагностических логов.
sample-play-zakroma-storage-nginx.yml – плейбук для установки и настройки Nginx для Закрома.Хранение.
sample-play-zakroma-storage-upgrade.yml – плейбук обновления Закрома.Хранение с переносом файла лицензии из каталога legacy-сервиса zakroma-storage-gateway в каталог zakroma-storage-monolith.
sample-play-zakroma-storage.yml – плейбук для установки и настройки Закрома.Хранение.
sample-play-zakroma-zds-fs.yml – плейбук для установки и настройки ZDS в режиме FS (без
Erasure Coding).
sample-play-zakroma-zds-v2-ec.yml – плейбук для установки и настройки ZDS в режиме EC
(решение по умолчанию).