Установка базового кластера с Keycloak

Устанавливаемые компоненты

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

Установка

1. Получить и распаковать архив

1tar -xvzf zakroma-roles-<ВЕРСИЯ_РЕЛИЗА_АРХИВА_С_ANSIBLE_РОЛЯМИ>.tar.gz

1.1. Перейти в директорию с ролями

1cd zakroma-roles-<ВЕРСИЯ_РЕЛИЗА_АРХИВА_С_ANSIBLE_РОЛЯМИ>

2. Создать inventory, включающий хостнейм в соответствующих хост-группах, как пример можно использовать файл inventories/base-cluster/hosts

1[certificates] 2rutherford-1 ansible_host=192.168.1.1 3rutherford-2 ansible_host=192.168.1.2 4rutherford-3 ansible_host=192.168.1.3 5rutherford-4 ansible_host=192.168.1.4 6 7[keycloak] 8rutherford-1 ansible_host=192.168.1.1 9 10 11[zakroma-storage] 12rutherford-2 ansible_host=192.168.1.2 13rutherford-3 ansible_host=192.168.1.3 14rutherford-4 ansible_host=192.168.1.4 15 16[zakroma-zds-v2-ec] 17rutherford-2 ansible_host=192.168.1.2 zakroma_zds_node_name=rutherford-2 18rutherford-3 ansible_host=192.168.1.3 zakroma_zds_node_name=rutherford-3 19rutherford-4 ansible_host=192.168.1.4 zakroma_zds_node_name=rutherford-4

Для проверки текущего ansible_hostname на узлах выполните:

1ansible -m setup -i inventories/base-cluster/hosts all | grep ansible_hostname

3. Копирование сертификатов на целевые хосты с помощью роли certificates

  • Необходимо отредактировать файл переменных inventories/base-cluster/group_vars/certificates.yml роли certificates для группы хостов certificates
1--- 2# Задаёт путь к каталогу, откуда копируются сертификаты и ключи. 3certificates_copy_source_path: "files" 4 5# Содержит информацию о каждом хосте, на который нужно скопировать сертификаты и ключи.
Развернутьarrow
  • Запустить playbook:
1ansible-playbook -i inventories/base-cluster/hosts playbooks/sample-play-copy-certificates.yml

4. Установка Keycloak с помощью роли keycloak

  • Необходимо отредактировать файл переменных inventories/base-cluster/group_vars/keycloak.yml роли keycloak для группы хостов keycloak
1--- 2# Адрес (хост) PostgreSQL, к которому будет подключаться Keycloak. 3postgres_host: 'postgresql.zakroma.internal' 4 5# Базовый домен, используемый в URL для Keycloak.
Развернутьarrow
  • Запустить playbook:
1ansible-playbook -i inventories/base-cluster/hosts playbooks/sample-play-keycloak.yml
  • После установки keycloak необходимо сконфигурировать REALM по инструкции https://zakroma.ru/knowledgeBase/storage/article/keycloack или воспользоваться плейбуком, который сделает импорт готового REALM
1ansible-playbook -i inventories/base-cluster/hosts playbooks/sample-play-keycloak-copy-realm.yml
  • Проверить доступность Web интерфейса:
    • Url - https://keycloak.zakroma.internal:8443
    • Username - Какой вы указали в group_vars для роли keycloak. Если был импорт готового REALM, то username - ‘admin’
    • Password - Какой вы указали в group_vars для роли keycloak. Если был импорт готового REALM, то пароль - ‘predef1nedPassw0rd’

5. Установка Zakroma Storage

  • Подготовить файл с лицензией licence, положить его в директорию ./files/zakroma-licence и запустить playbook playbooks/sample-play-copy-licence-file.yml для группы хостов zakroma-storage

  • Далее необходимо отредактировать файл переменных inventories/base-cluster/group_vars/zakroma-storage.yml роли zakroma-storage для группы хостов zakroma-storage

1--- 2# ---------------------------------------------------ОБЩИЕ НАСТРОЙКИ--------------------------------------------------- 3# Выполнить удаление Zakroma и ничего больше 4zakroma_storage_delete_only: false
Развернутьarrow
  • Запустить playbook:
1ansible-playbook -i inventories/base-cluster/hosts playbooks/sample-play-zakroma-storage.yml

6. Опциональная настройка Nginx

Nginx не является обязательным компонентом установки. Для legacy-инсталляций используйте отдельную инструкцию: Настройка Nginx.

7. Установка Zakroma ZDS в режиме EC (Erasure coding, минимум 3 хоста) (нижний слой хранения)

  • Необходимо отредактировать файл переменных inventories/base-cluster/group_vars/zakroma-zds-v2-ec.yml роли zakroma-zds-v2 для группы хостов zakroma-zds-v2-ec
1# Выполнить удаление бинарного файла - удаляет только бинарный файл в дирректории /opt/zakroma/zakroma-ds-agent 2zakroma_zds_delete_binary: false 3 4# Выполнить только рестарт сервисов и ничего больше 5zakroma_zds_restart_services_only: false
Развернутьarrow
  • Запустить playbook:
1ansible-playbook -i inventories/base-cluster/hosts playbooks/sample-play-zakroma-zds-v2-ec.yml