Установка Single-Node
Устанавливаемые компоненты
| Компонент | Описание |
|---|---|
| Zakroma-Disk | Сервис Закрома.Диск, включая web-интерфейс, dsdrive, WebDAV и сервис блокировок. |
| Nginx | Proxy-сервер для web-интерфейса и WebDAV. |
| Keycloak | Система аутентификации и авторизации. |
| PostgreSQL | СУБД для метаданных Закрома.Диск и Keycloak. |
| Сервер | Компоненты |
|---|---|
plank.zakroma.internal | Zakroma-Disk, Nginx, PostgreSQL, Keycloak |
Установка
1. Получение и распаковка архива поставки
1tar -xvzf zakroma-roles-2.0.1.tar.gz 2cd zakroma-roles-2.0.1
2. Подготовка inventory
В качестве основы используйте файл инвентаря inventories/single-node/hosts.
1[certificates] 2plank ansible_host=10.222.0.220 3 4[zakroma-disk-nginx] 5plank ansible_host=10.222.0.220 6 7[zakroma-disk] 8plank ansible_host=10.222.0.220
Если Keycloak устанавливается этой же поставкой, добавьте хост в группу keycloak:
1[keycloak] 2plank ansible_host=10.222.0.220
3. Распространение сертификатов
Отредактируйте inventories/single-node/group_vars/certificates.yml: укажите имя хоста из inventory, файлы сертификатов и целевые каталоги.
1--- 2certificates_copy_source_path: "files" 3 4host_cert_config: 5 plank: 6 certs: 7 - src_dir: "{{ certificates_copy_source_path }}" 8 dest_dir: "/opt/certs/" 9 cert_file: "zakroma.crt" 10 key_file: "zakroma.key" 11 owner: "nginx" 12 group: "nginx" 13 cert_permissions: "0644" 14 key_permissions: "0600"
Запустите playbook:
1ANSIBLE_CONFIG=ansible.cfg ansible-playbook -i inventories/single-node/hosts playbooks/sample-play-copy-certificates.yml
4. Установка Keycloak
Если используется Keycloak из поставки, настройте inventories/single-node/group_vars/keycloak.yml по инструкции Настройка Keycloak и запустите:
1ANSIBLE_CONFIG=ansible.cfg ansible-playbook -i inventories/single-node/hosts playbooks/sample-play-keycloak.yml 2ANSIBLE_CONFIG=ansible.cfg ansible-playbook -i inventories/single-node/hosts playbooks/sample-play-keycloak-copy-realm.yml
5. Настройка Закрома.Диск
Отредактируйте inventories/single-node/group_vars/zakroma-disk.yml.
Ниже представлены базовые параметры для установки Закрома.Диск, поменяйте их на соответствующие и запустите установку:
1zakroma_disk_version: 1.5.1 2 3zakroma_disk_auth: 4 # Включить аутентификацию для микросервисов Закрома.Диск. 5 # Для корректной работы WebDAV значение должно быть true.
Важная информация об аутентификации пользователей
Закрома.Диск поддерживает интеграцию с Keycloak для аутентификации пользователей в Web UI и WebDAV.
Для Web UI может использоваться один из двух режимов:
Authorization Code Flow / redirect flow- пользователь перенаправляется в Keycloak, проходит интерактивную аутентификацию в браузере и возвращается в Web UI Закрома.Диск;direct grant- Закрома.Диск получает токен доступа напрямую от Keycloak без браузерного перенаправления пользователя.
WebDAV использует только режим direct grant. Это связано с тем, что типовые WebDAV-клиенты не поддерживают интерактивный OIDC/OAuth redirect в браузере и не могут выполнить стандартный сценарий входа через Keycloak.
Параметры zakroma_disk_auth.access_key_id и zakroma_disk_auth.access_key обязательны при включенной межсервисной аутентификации Закрома.Диск. Для корректной работы Закрома.Диск с WebDAV задайте zakroma_disk_auth.enabled: true, заполните zakroma_disk_auth.access_key_id и zakroma_disk_auth.access_key, а также не оставляйте эти значения пустыми в продуктивной инсталляции.
Для работы WebDAV необходимо включить Direct Access Grants / direct grant flow в настройках Keycloak client и включить direct grant в конфигурации Закрома.Диск:
1zakroma_disk_dsdrive.auth.direct_grant.enabled: true
Для синхронизации пользователей можно использовать два варианта: по ролям Keycloak (user_role) или по группам Keycloak (user_groups). Настройка role-mapper и group-mapper описана в отдельной инструкции по Keycloak для Закрома.Диск.
6. Настройка Nginx
Отредактируйте inventories/single-node/group_vars/zakroma-disk-nginx.yml: замените server_name, пути к сертификатам и домены disk.zakroma.internal / webdav.zakroma.internal на значения вашего контура.
TLS для Закрома.Диск настраивается на уровне Nginx. В конфигурации zakroma_disk_dsdrive.storage TLS-параметры Закрома.Диск указывать не требуется.
Пример конфигурации Nginx:
1--- 2# Перезапустить nginx, даже если не было изменений. 3flush_restart_nginx: false 4 5# Название пакета Nginx.
7. Запуск установки
1ANSIBLE_CONFIG=ansible.cfg ansible-playbook -i inventories/single-node/hosts playbooks/sample-play-zakroma-disk.yml 2ANSIBLE_CONFIG=ansible.cfg ansible-playbook -i inventories/single-node/hosts playbooks/sample-play-zakroma-disk-nginx.yml
8. Проверка стенда после установки
- Откройте
https://disk.zakroma.internalи убедитесь, что загружается интерфейс Закрома.Диск. - Войдите через Keycloak и проверьте, что пользователь попадает в интерфейс без ошибок авторизации.
- Подключитесь к WebDAV по адресу
https://webdav.zakroma.internalи проверьте чтение и запись тестового файла. - На узлах группы
zakroma-diskубедитесь, что сервисыzakroma-disk-*запущены и не уходят в постоянный перезапуск.