Установка мультикластера
Устанавливаемые компоненты
| Компонент | Описание |
|---|---|
| Zakroma-Storage | Управляющий слой, обеспечивающий S3-протокол. |
| Zakroma-ZDS | Нижний слой хранения (минимальное требование — 3 узла в режиме Erasure Coding, 1 узел - в режиме без избыточного кодирования). |
| PostgreSQL | СУБД для метаданных Zakroma-Storage. |
| Kafka | Система обмена сообщениями, используемая сервисами Zakroma |
| Сервер | Компоненты | Cluster |
|---|---|---|
loran-10.cluster-1.zakroma.internal | Zakroma-Storage, Zakroma-ZDS (Erasure Coding 2+1) | 1 |
loran-11.cluster-1.zakroma.internal | Zakroma-Storage, Zakroma-ZDS (Erasure Coding 2+1) | 1 |
loran-12.cluster-1.zakroma.internal | Zakroma-Storage, Zakroma-ZDS (Erasure Coding 2+1) | 1 |
loran-14.cluster-1.zakroma.internal | PostgreSQL | 1 |
loran-15.cluster-1.zakroma.internal | Kafka | 1 |
loran-20.cluster-2.zakroma.internal | Zakroma-Storage, Zakroma-ZDS (Erasure Coding 2+1) | 2 |
loran-21.cluster-2.zakroma.internal | Zakroma-Storage, Zakroma-ZDS (Erasure Coding 2+1) | 2 |
loran-22.cluster-2.zakroma.internal | Zakroma-Storage, Zakroma-ZDS (Erasure Coding 2+1) | 2 |
loran-24.cluster-2.zakroma.internal | PostgreSQL | 2 |
loran-25.cluster-2.zakroma.internal | Kafka | 2 |
Установка
1. Получить и распаковать архив
1tar -xvzf zakroma-roles-<ВЕРСИЯ_РЕЛИЗА_АРХИВА_С_ANSIBLE_РОЛЯМИ>.tar.gz
1.1. Перейти в директорию с ролями
1cd zakroma-roles-<ВЕРСИЯ_РЕЛИЗА_АРХИВА_С_ANSIBLE_РОЛЯМИ>
2. Установка первого кластера
2.1 Создать inventory, включающий хостнейм в соответствующих хост-группах
Как пример можно использовать файл inventories/multicluster/cluster-1/hosts
1[certificates] 2loran-10 ansible_host=10.128.0.10 3loran-11 ansible_host=10.128.0.11 4loran-12 ansible_host=10.128.0.12 5loran-13 ansible_host=10.128.0.13 6 7 8[zakroma-storage] 9loran-10 ansible_host=10.128.0.10 10loran-11 ansible_host=10.128.0.11 11loran-12 ansible_host=10.128.0.12 12 13[zakroma-zds-v2-ec] 14loran-10 ansible_host=10.128.0.10 zakroma_zds_node_name=loran-10 15loran-11 ansible_host=10.128.0.11 zakroma_zds_node_name=loran-11 16loran-12 ansible_host=10.128.0.12 zakroma_zds_node_name=loran-12
Для проверки текущего ansible_hostname на узлах выполните:
1ansible -m setup -i inventories/multicluster/cluster-1/hosts all | grep ansible_hostname
2.2. Копирование сертификатов на целевые хосты с помощью роли certificates
- Необходимо отредактировать файл переменных
inventories/multicluster/cluster-1/group_vars/certificates.ymlролиcertificatesдля группы хостовcertificates
1--- 2--- 3# Задаёт путь к каталогу, откуда копируются сертификаты и ключи. 4certificates_copy_source_path: "files"
- Запустить playbook:
1ansible-playbook -i inventories/multicluster/cluster-1/hosts playbooks/sample-play-copy-certificates.yml
2.3. Установка Zakroma Storage c помощью роли zakroma-storage
-
Подготовить файл с лицензией
licence, положить его в директорию ./files/zakroma-licence и запустить playbookplaybooks/sample-play-copy-licence-file.ymlдля группы хостовzakroma-storage -
Далее необходимо отредактировать файл переменных
inventories/multicluster/cluster-1/group_vars/zakroma-storage.ymlролиzakroma-storageдля группы хостовzakroma-storage
1--- 2# ---------------------------------------------------ОБЩИЕ НАСТРОЙКИ--------------------------------------------------- 3# Выполнить удаление Zakroma и ничего больше 4zakroma_storage_delete_only: false
- Запустить playbook:
1ansible-playbook -i inventories/multicluster/cluster-1/hosts playbooks/sample-play-zakroma-storage.yml
2.4. Опциональная настройка Nginx
Nginx не является обязательным компонентом установки. Для legacy-инсталляций используйте отдельную инструкцию: Настройка Nginx.
2.5. Установка Zakroma ZDS в режиме EC (Erasure coding, минимум 3 хоста) (нижний слой хранения) с помощью роли zakroma-zds-v2
- Необходимо отредактировать файл переменных
inventories/multicluster/cluster-1/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
- Запустить playbook:
1ansible-playbook -i inventories/multicluster/cluster-1/hosts playbooks/sample-play-zakroma-zds-v2-ec.yml
3. Установка второго кластера
3.1 Создать inventory, включающий хостнейм в соответствующих хост-группах
Как пример можно использовать файл inventories/multicluster/cluster-2/hosts
1[certificates] 2loran-20 ansible_host=10.129.0.20 3loran-21 ansible_host=10.129.0.21 4loran-22 ansible_host=10.129.0.22 5loran-23 ansible_host=10.129.0.23 6 7[keycloak] 8loran-23 ansible_host=10.129.0.23 9 10 11[zakroma-storage] 12loran-20 ansible_host=10.129.0.20 13loran-21 ansible_host=10.129.0.21 14loran-22 ansible_host=10.129.0.22 15 16[zakroma-zds-v2-ec] 17loran-20 ansible_host=10.129.0.20 zakroma_zds_node_name=loran-20 18loran-21 ansible_host=10.129.0.21 zakroma_zds_node_name=loran-21 19loran-22 ansible_host=10.129.0.22 zakroma_zds_node_name=loran-22
Для проверки текущего ansible_hostname на узлах выполните:
1ansible -m setup -i inventories/multicluster/cluster-2/hosts all | grep ansible_hostname
3.2. Копирование сертификатов на целевые хосты с помощью роли certificates
- Необходимо отредактировать файл переменных
inventories/multicluster/cluster-2/group_vars/certificates.ymlролиcertificatesдля группы хостовcertificates
1--- 2# Задаёт путь к каталогу, откуда копируются сертификаты и ключи. 3certificates_copy_source_path: "files" 4 5# Содержит информацию о каждом хосте, на который нужно скопировать сертификаты и ключи.
- Запустить playbook:
1ansible-playbook -i inventories/multicluster/cluster-2/hosts playbooks/sample-play-copy-certificates.yml
3.3. Установка Zakroma Storage c помощью роли zakroma-storage
-
Подготовить файл с лицензией
licence, положить его в директорию ./files/zakroma-licence и запустить playbookplaybooks/sample-play-copy-licence-file.ymlдля группы хостовzakroma-storage -
Далее необходимо отредактировать файл переменных
inventories/multicluster/cluster-2/group_vars/zakroma-storage.ymlролиzakroma-storageдля группы хостовzakroma-storage
1--- 2# ---------------------------------------------------ОБЩИЕ НАСТРОЙКИ--------------------------------------------------- 3# Выполнить удаление Zakroma и ничего больше 4zakroma_storage_delete_only: false
- Запустить playbook:
1ansible-playbook -i inventories/multicluster/cluster-2/hosts playbooks/sample-play-zakroma-storage.yml
3.4. Опциональная настройка Nginx
Nginx не является обязательным компонентом установки. Для legacy-инсталляций используйте отдельную инструкцию: Настройка Nginx.
3.5. Установка Zakroma ZDS в режиме EC (Erasure coding, минимум 3 хоста) (нижний слой хранения) с помощью роли zakroma-zds-v2
- Необходимо отредактировать файл переменных
inventories/multicluster/cluster-2/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
- Запустить playbook:
1ansible-playbook -i inventories/multicluster/cluster-2/hosts playbooks/sample-play-zakroma-zds-v2-ec.yml