Установка Single Node
Устанавливаемые компоненты
Компонент | Описание |
---|---|
Zakroma-Storage | Управляющий слой, обеспечивающий S3-протокол. |
Zakroma-ZDS | Нижний слой хранения (минимальное требование — 3 узла в режиме Erasure Coding, 1 узел - в режиме без избыточного кодирования). |
Keycloak | Система управления аутентификацией и авторизацией (используется для Admin UI и доступа к Zakroma). |
Nginx | Proxy-сервер, выступающий в качестве фронтенда для Zakroma-Storage. |
PostgreSQL | СУБД для метаданных Zakroma-Storage и Keycloak. |
Kafka (опционально) | Система обмена сообщениями, используемая сервисами Zakroma (требуется для различных служебных операций, опционально). |
Сервер | Компоненты |
---|---|
plank.zakroma.local | Zakroma-Storage, Zakroma-ZDS,Keycloak,Nginx,PostgreSQL,Kafka |
Установка
1. Получить и распаковать архив
1tar -xvzf zakroma-roles-<ВЕРСИЯ_РЕЛИЗА_АРХИВА_С_ANSIBLE_РОЛЯМИ>.tar.gz
1.1. Перейти в директорию с ролями
1cd zakroma-roles-<ВЕРСИЯ_РЕЛИЗА_АРХИВА_С_ANSIBLE_РОЛЯМИ>
2. Создать inventory, включающий хостнейм в соответствующих хост-группах, как пример можно использовать файл inventories/single-node/hosts
1[certificates] 2plank ansible_host=10.40.0.10 3 4[keycloak] 5plank ansible_host=10.40.0.10 6 7[zakroma-storage-nginx] 8plank ansible_host=10.40.0.10 9 10[zakroma-storage] 11plank ansible_host=10.40.0.10 12 13[zakroma-zds-fs] 14plank ansible_host=10.40.0.10
3. Копирование сертификатов на целевые хосты с помощью роли certificates
- Необходимо отредактировать файл переменных
inventories/single-node/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 # Имя хоста из inventory файла 10 plank: 11 certs: 12 # Каталог, из которого копируются файлы сертификата и ключа. Обычно совпадает со значением переменной certificates_copy_source_path, но может быть переопределён для отдельных хостов. 13 - src_dir: "{{ certificates_copy_source_path }}" 14 15 # Целевой каталог на хосте, в который нужно скопировать сертификаты и ключи. 16 dest_dir: "/opt/keycloak/" 17 18 # Имя файла сертификата, который будет скопирован. 19 cert_file: "keycloak.crt" 20 21 # Имя файла закрытого ключа (private key), который будет скопирован. 22 key_file: "keycloak.key" 23 24 # Владелец (пользователь) файлов сертификата и ключа на целевом хосте. 25 owner: "keycloak" 26 27 # Группа владельца файлов сертификата и ключа на целевом хосте. 28 group: "keycloak" 29 30 # Права (в формате UNIX, например, 0644) на файл сертификата. 31 cert_permissions: "0644" 32 33 # Права (в формате UNIX, например, 0600) на файл ключа 34 key_permissions: "0600" 35 36 - src_dir: "{{ certificates_copy_source_path }}" 37 dest_dir: "/opt/certs/" 38 cert_file: "zakroma.crt" 39 key_file: "zakroma.key" 40 owner: "nginx" 41 group: "nginx" 42 cert_permissions: "0644" 43 key_permissions: "0600"
- Запустить playbook:
1ansible-playbook -i inventories/single-node/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.local' 4 5# Базовый домен, используемый в URL для Keycloak.
- Запустить playbook:
1ansible-playbook -i inventories/single-node/hosts playbooks/sample-play-keycloak.yml
- После установки keycloak необходимо сконфигурировать REALM по инструкции
https://zakroma.ru/knowledgeBase/storage/article/keycloack
или воспользоваться плейбуком, который сделает импорт готового REALM.
1ansible-playbook -i inventories/single-node/hosts playbooks/sample-play-keycloak-copy-realm.yml
- Проверить доступность Web интерфейса:
- Url -
https://keycloak.zakroma.local:8443
- Username - Какой вы указали в group_vars для роли keycloak. Если был импорт готового REALM, то username - ‘admin’
- Password - Какой вы указали в group_vars для роли keycloak. Если был импорт готового REALM, то пароль - ‘predef1nedPassw0rd’
- Url -
5. Установка Zakroma Storage
-
Подготовить файл с лицензией
licence
, положить его в директорию ./files и запустить playbookplaybooks/sample-play-copy-licence-file.yaml
для группы хостовzakroma-storage
-
Далее необходимо отредактировать файл переменных
inventories/single-node/group_vars/zakroma-storage.yml
ролиzakroma-storage
для группы хостовzakroma-storage
1# ---------------------------------------------------ОБЩИЕ НАСТРОЙКИ--------------------------------------------------- 2# Выполнить удаление старых пакетов ничего больше 3zakroma_storage_delete_packages_only: false 4 5# Выполнить только рестарт сервисов и ничего больше
- Запустить playbook:
1ansible-playbook -i inventories/single-node/hosts playbooks/sample-play-zakroma-storage.yml
6. Установка Nginx (на хосты с Zakroma Storage)
- Необходимо отредактировать файл переменных
inventories/single-node/group_vars/zakroma-storage-nginx.yml
ролиnginx
для группы хостовzakroma-storage-nginx
1--- 2# Перезапустить nginx, даже если не было изменений 3flush_restart_nginx: false 4 5# Используется только для установки на Debian/Ubuntu, так как используется опция -t для apt.
- Запустить playbook:
1ansible-playbook -i inventories/single-node/hosts playbooks/sample-play-zakroma-storage-nginx.yml
- Проверить доступность Web интерфейса:
- Url -
https://zakroma-admin.zakroma.local
- Username - Какой вы указали на этапе создания пользователя в Keycloak. Если был импорт готового REALM, то username - ‘zakromaadmin’
- Password - Какой вы указали на этапе создания пользователя в Keycloak. Если был импорт готового REALM, то пароль - ‘zakromaadmin’
- Url -
7. Установка Zakroma ZDS в режиме FS (без избыточного кодирования, только для одного хоста) (нижний слой хранения)
- Необходимо отредактировать файл переменных
inventories/single-node/group_vars/zakroma-storage-zds-fs.yml
ролиzakroma-zds
для группы хостовzakroma-zds-fs
1# Выполнить удаление старых пакетов ничего больше 2zakroma_zds_delete_packages_only: false 3 4# Выполнить только рестарт сервисов и ничего больше 5zakroma_zds_restart_services_only: false
- Запустить playbook:
1ansible-playbook -i inventories/single-node/hosts playbooks/sample-play-zakroma-zds-fs.yml