Установка через ansible

Компоненты системы ЗАКРОМА.Хранение

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

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

НазваниеПоддерживаемые версии
Zakroma-Storage2.5.0
Zakroma-ZDS1.5.1
Keycloak22
Nginxв зависимости от дистрибутива Linux
(устанавливается из стандартных репозиториев хостовой операционной системы)
Kafka3.8.1
Kafka-UI0.7.2

Версии Ansible ролей

НазваниеЗадачи ролиВерсия
zakroma-storageУстановка и конфигурирование компонента Zakroma-Storage6.3.0
zakroma-zdsУстановка и конфигурирование компонента Zakroma-ZDS5.2.0
keycloakУстановка и конфигурирование компонента Keycloak6.1.0
nginxУстановка и конфигурирование компонента Nginx1.1.0
certificatesКопирование сертификатов (TLS/SSL) на целевые хосты1.0.0
kafkaУстановка и конфигурирование Kafka2.0.0
kafka-uiУстановка и конфигурирование Kafka-UI1.0.0

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

НазваниеПоддерживаемые версии
Debian10, 11, 12
Ubuntu20, 22, 24
AlmaLinux8, 9
RedOs7, 8
RHEL8, 9
ALT Server10.4

Варианты развертывания

Примечание

Количество серверов каждого компонента может меняться в зависимости от требуемого объёма хранения, уровня отказоустойчивости и производительности. Также возможно объединять или совмещать некоторые из компонентов на меньшем количестве машин, например, для тестовых стендов или не очень нагруженных систем.

Демо-стенд (Single-Node Deployment)

  • Предназначен для демонстрации возможностей платформы Zakroma и её компонентов.
  • Идеально подходит для ознакомления с функциональностью системы и внутренних тестов.
  • Разворачивается на одном сервере, что упрощает настройку и сокращает требования к инфраструктуре.
СерверКомпоненты
Server1Zakroma-Storage, Zakroma-ZDS, Nginx,Keycloak,PostgreSQL, Kafka и Kafka-UI (опционально)
Установка

Как установить этот вариант читайте здесь.

Базовый кластер

  • Подходит для тестовых окружений или производственных систем небольшого масштаба.
СерверКомпоненты
Server1PostgreSQL
Server2Keycloak
Server3Zakroma-Storage, Zakroma-ZDS (Erasure Coding 2+1), Nginx
Server4Zakroma-Storage, Zakroma-ZDS (Erasure Coding 2+1), Nginx
Server5Zakroma-Storage, Zakroma-ZDS (Erasure Coding 2+1), Nginx
Server6Kafka и Kafka-UI (опционально)

Базовый кластер (Zakroma-ZDS в режиме Erasure Coding вынесен на отдельные сервера)

СерверКомпоненты
Server1PostgreSQL
Server2Keycloak
Server3Zakroma-ZDS (Erasure Coding 2+1)
Server4Zakroma-ZDS (Erasure Coding 2+1)
Server5Zakroma-ZDS (Erasure Coding 2+1)
Server6Zakroma-Storage, Nginx
Server7Kafka и Kafka-UI (опционально)
Установка

Как установить эти варианты читайте здесь.

Мультикластер

  • Несколько независимых кластеров
  • Позволяет организовать распределённое хранение, георезервирование и масштабирование на уровне нескольких кластеров.
  • Рекомендован при необходимости высокой доступности и геораспределения (например, кластеры в разных ЦОД).
СерверКомпонентыCluster
Server1PostgreSQL1
Server2Keycloak1
Server3Zakroma-Storage, Nginx, Zakroma-ZDS (Erasure Coding 2+1)1
Server4Zakroma-Storage, Nginx, Zakroma-ZDS (Erasure Coding 2+1)1
Server5Zakroma-Storage, Nginx, Zakroma-ZDS (Erasure Coding 2+1)1
Server6Kafka и Kafka-UI1
Server7PostgreSQL2
Server8Keycloak2
Server9Zakroma-Storage, Nginx, Zakroma-ZDS (Erasure Coding 2+1)2
Server10Zakroma-Storage, Nginx, Zakroma-ZDS (Erasure Coding 2+1)2
Server11Zakroma-Storage, Nginx, Zakroma-ZDS (Erasure Coding 2+1)2
Server12Kafka и Kafka-UI2
Установка

Как установить эти варианты читайте здесь.

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

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

1. 2├── ansible.cfg 3├── CHANGELOG.md 4├── collections 5│ └── ansible_collections
Развернутьarrow
  • ansible.cfg
    Файл конфигурации Ansible, в котором задаются параметры работы (например, пути к инвентарям, настройки подключения, параметры логирования и т.д.).
  • CHANGELOG.md
    Журнал изменений проекта. Здесь фиксируются версии, внесённые правки, улучшения и исправления ошибок.
  • collections/
    Каталог, содержащий Ansible collections – наборы ролей, плагинов и модулей, объединённых в пакеты для удобного повторного использования и распространения.
  • docs/
    Каталог с документацией в формате Markdown.
    • README.base-cluster.md – инструкция и описание для развёртывания базового кластера.
    • README.multicluster.md – инструкция и описание для развёртывания мультикластера.
    • README.prepare.md – руководство по подготовке окружения.
    • README.single-node.md – инструкция и описание для развёртывания одиночного узла.
  • files/realm.json
    JSON-файл, содержащий сконфигурированный REALM для Keycloak.
  • 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-storage-nginx.yml – переменные для установки и конфигурирования Nginx для Zakroma-Storage.
        • zakroma-storage.yml – переменные для установки и конфигурирования Zakroma-Storage.
        • zakroma-zds-ec.yml – переменные для установки и конфигурирования Zakroma-ZDS.
      • hosts – определение хостов для базового кластера.
    • multicluster/
      Инвентарь для мультикластерного развёртывания:
      • cluster-1/ и cluster-2/
        Для каждого кластера:
        • group_vars/ – аналогичные файлы с переменными (такие же файлы, как в base-cluster).
        • hosts – определение хостов для конкретного кластера.
    • single-node/
      Инвентарь для развёртывания на одном узле:
      • group_vars/ – файлы с переменными для одиночного узла. Отличительной особенностью является наличие файла * zakroma-zds-fs.yml* (нижний слой хранения без Erasure Coding).
      • hosts – файл с описанием единственного узла.
  • playbooks/
    Каталог с playbook’ов, необходимых для применение ролей или выполнение конкретных задач:
    • sample-play-copy-certificates.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-zakroma-storage-nginx.yml – playbook для установки и конфигурирования Nginx для Zakroma-Storage.
    • sample-play-zakroma-storage.yml – playbook для установки и конфигурирования Zakroma-Storage.
    • sample-play-zakroma-zds-ec.yml – playbook для установки и конфигурирования Zakroma-ZDS в режиме EC (с применением Erasure Coding)
    • sample-play-zakroma-zds-fs.yml – playbook для установки и конфигурирования Zakroma-ZDS в режиме FS (без Erasure Coding).
  • README.md
    Основной файл с описанием проекта, содержащий обзор, инструкции по установке, использованию и общую информацию о проекте.
  • roles/
    Каталог, где располагаются Ansible роли.
Смотрите также
Установка helm-чартами