Установка базового кластера
Устанавливаемые компоненты
| Компонент | Описание |
|---|---|
| Zakroma-Storage | Управляющий слой, обеспечивающий S3-протокол. |
| Zakroma-ZDS | Нижний слой хранения (минимальное требование — 3 узла в режиме Erasure Coding, 1 узел - в режиме без избыточного кодирования). |
| Keycloak (опционально) | Система управления аутентификацией и авторизацией (используется для Admin UI и доступа к Zakroma). |
| PostgreSQL | СУБД для метаданных Zakroma-Storage и Keycloak. |
| Сервер | Компоненты |
|---|---|
rutherford-1.zakroma.internal | Keycloak (опционально) |
rutherford-2.zakroma.internal | Zakroma-Storage, Zakroma-ZDS (Erasure Coding 2+1) |
rutherford-3.zakroma.internal | Zakroma-Storage, Zakroma-ZDS (Erasure Coding 2+1) |
rutherford-4.zakroma.internal | Zakroma-Storage, Zakroma-ZDS (Erasure Coding 2+1) |
rutherford-5.zakroma.internal | PostgreSQL |
Установка
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 8[zakroma-storage] 9rutherford-2 ansible_host=192.168.1.2 10rutherford-3 ansible_host=192.168.1.3 11rutherford-4 ansible_host=192.168.1.4 12 13[zakroma-zds-v2-ec] 14rutherford-2 ansible_host=192.168.1.2 zakroma_zds_node_name=rutherford-2 15rutherford-3 ansible_host=192.168.1.3 zakroma_zds_node_name=rutherford-3 16rutherford-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# Содержит информацию о каждом хосте, на который нужно скопировать сертификаты и ключи. 6# Ключ словаря — это имя хоста из вашего inventory, а значение — ещё один словарь, который включает в себя список сертификатов для копирования. 7# Внутри host_cert_config для каждого хоста объявляется массив certs, в котором можно описать разные сертификаты и ключи (если нужно скопировать несколько файлов) 8host_cert_config: 9 rutherford-2: 10 certs: 11 - src_dir: "{{ certificates_copy_source_path }}" 12 dest_dir: "/opt/certs/" 13 cert_file: "zakroma.crt" 14 key_file: "zakroma.key" 15 owner: "root" 16 group: "root" 17 cert_permissions: "0644" 18 key_permissions: "0600" 19 rutherford-3: 20 certs: 21 - src_dir: "{{ certificates_copy_source_path }}" 22 dest_dir: "/opt/certs/" 23 cert_file: "zakroma.crt" 24 key_file: "zakroma.key" 25 owner: "root" 26 group: "root" 27 cert_permissions: "0644" 28 key_permissions: "0600" 29 rutherford-4: 30 certs: 31 - src_dir: "{{ certificates_copy_source_path }}" 32 dest_dir: "/opt/certs/" 33 cert_file: "zakroma.crt" 34 key_file: "zakroma.key" 35 owner: "root" 36 group: "root" 37 cert_permissions: "0644" 38 key_permissions: "0600"
- Запустить playbook:
1ansible-playbook -i inventories/base-cluster/hosts playbooks/sample-play-copy-certificates.yml
4. Установка Zakroma Storage
-
Подготовить файл с лицензией
licence, положить его в директорию ./files/zakroma-licence и запустить playbookplaybooks/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
- Запустить playbook:
1ansible-playbook -i inventories/base-cluster/hosts playbooks/sample-play-zakroma-storage.yml
5. Опциональная настройка Nginx
Nginx не является обязательным компонентом установки. Для legacy-инсталляций используйте отдельную инструкцию: Настройка Nginx.
6. Установка 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
- Запустить playbook:
1ansible-playbook -i inventories/base-cluster/hosts playbooks/sample-play-zakroma-zds-v2-ec.yml