Быстрый старт (4 узла)
Назначение
Кластер разворачивается одним сценарием Ansible — ролью zakroma-quick-start из архива поставки. Роль последовательно подготавливает узлы, настраивает PostgreSQL, применяет типовые настройки Закрома.Хранение и ZDS, выполняет preflight-проверки и устанавливает продукт.
Поддерживаются два варианта конфигурации — четырёхузловая (о ней в этой статье) и одноузловая.
В текущей конфигурации на каждом из трёх основных узлов совмещены сервисы Закрома.Хранение и ZDS, а PostgreSQL размещается отдельно на четвёртом узле. Такой вариант подходит для тестирования отказоустойчивости и Erasure Coding.
В результате будут развёрнуты:
- три узла с Закрома.Хранение и ZDS: Закрома.Хранение предоставляет S3 API и управляет рабочими областями, бакетами и политиками доступа, а ZDS хранит данные объектов на дисках узлов;
- отдельный четвёртый узел PostgreSQL: база данных хранит метаданные, конфигурацию и служебную информацию Закрома.Хранение, но не содержимое S3-объектов;
- защита данных Erasure Coding 2+1: объект разделяется на две части данных и одну часть чётности, распределённые между тремя ZDS-узлами; это позволяет продолжить чтение данных при недоступности одного узла;
- локальные пользователи без Keycloak и LDAP: учётные записи задаются в конфигурации Закрома.Хранение и используются для входа в Admin UI и последующего выпуска S3-ключей;
- HTTP-доступ без TLS и сертификатов;
- без опциональных сервисов Kafka, Nginx и отдельного балансировщика.
Не для productionРесурсы из раздела «Минимальные требования» рассчитаны на функциональный пилот. В этом сценарии Admin UI и S3 API работают по HTTP: учётные данные, S3-ключи и объекты передаются без шифрования. Используйте конфигурацию только в изолированной тестовой сети. Для production нужны TLS, отдельный расчёт ресурсов, HA-кластер PostgreSQL и внешний отказоустойчивый балансировщик. См. Типовые варианты конфигурации.
Минимальные требования
Для быстрого старта необходимы четыре физических или виртуальных узла стандартной архитектуры x86_64 (amd64). ARM-архитектура в этом сценарии не описывается.
В примере используется дистрибутив Debian 12. Роль quick-start рассчитана на использование именно с ним. С иными дистрибутивами рекомендуется использовать стандартный метод установки.
| Узел | Операционная система | Архитектура | vCPU | RAM | Системный диск | Диск данных |
|---|---|---|---|---|---|---|
storage-1 | Debian 12 | x86_64 | 4 | 8 ГБ | SSD 50 ГБ | отдельный SSD 50 ГБ для ZDS |
storage-2 | Debian 12 | x86_64 | 4 | 8 ГБ | SSD 50 ГБ | отдельный SSD 50 ГБ для ZDS |
storage-3 | Debian 12 | x86_64 | 4 | 8 ГБ | SSD 50 ГБ | отдельный SSD 50 ГБ для ZDS |
postgres-1 | Debian 12 | x86_64 | 4 | 8 ГБ | SSD 50 ГБ | отдельный SSD рекомендуется |
На всех узлах должна быть включена синхронизация времени с единым источником. Для функционального пилота достаточно сети 1 Гбит/с, для нагрузочных тестов рекомендуется минимум 10 Гбит/с.
Межсетевой экран на время установки отключите или настройте по разделу «Firewall». Не отключайте его вне изолированного тестового контура.
Три диска по 50 ГБ дают 150 ГБ сырой ёмкости; при Erasure Coding 2+1 расчётная полезная ёмкость — около 100 ГБ. Фактически доступно немного меньше из-за разметки файловой системы и служебных данных ZDS. Если объём тестовых данных превышает 50 ГБ, увеличьте размер каждого диска ZDS, чтобы сохранить запас свободного места. Подробнее о том, как ZDS хранит данные, см. Как ZDS хранит данные.
Схема стенда
Конфигурация 3+1 означает три узла Закрома.Хранение и ZDS и один узел PostgreSQL. Её не следует путать с параметрами Erasure Coding: для трёх ZDS-узлов используется EC 2+1.
| Узел | IP-адрес | Установленные компоненты | Назначение |
|---|---|---|---|
storage-1 | 192.168.1.11 | Закрома.Хранение, ZDS | S3 API, управление хранилищем и хранение частей объектов |
storage-2 | 192.168.1.12 | Закрома.Хранение, ZDS | S3 API, управление хранилищем и хранение частей объектов |
storage-3 | 192.168.1.13 | Закрома.Хранение, ZDS | S3 API, управление хранилищем и хранение частей объектов |
postgres-1 | 192.168.1.14 | PostgreSQL 16 | Метаданные, конфигурация и служебная информация Закрома.Хранение |
Компоненты Закрома.Хранение и ZDS работают на трёх узлах совместно. Части объектов распределяются между ZDS-узлами по схеме EC 2+1, а все экземпляры Закрома.Хранение используют отдельный PostgreSQL по адресу postgresql.zakroma.internal:5432.
Параметры примера
Узлы и их IP-адреса приведены в таблице раздела «Схема стенда».
| Параметр | Значение |
|---|---|
| Базовый домен | zakroma.internal |
| Admin UI | http://zakroma-admin.zakroma.internal:8444 |
| S3 API | http://<workspace>.zakroma.internal:6443 |
| PostgreSQL | postgresql.zakroma.internal:5432 |
| Подсеть кластера | 192.168.1.0/24 |
| Диск ZDS | /dev/vdb |
| Точка монтирования ZDS | /data/zds |
Замените примеры на адреса и имена из своей инфраструктуры.

Подготовка до запуска Ansible
Перед первым запуском плейбука выполните на узлах настройки из этого раздела.
Записи DNS
Если используете DNS, создайте A-записи:
| Имя | IP-адреса |
|---|---|
storage-1.zakroma.internal | 192.168.1.11 |
storage-2.zakroma.internal | 192.168.1.12 |
storage-3.zakroma.internal | 192.168.1.13 |
postgres-1.zakroma.internal | 192.168.1.14 |
postgresql.zakroma.internal | 192.168.1.14 |
zakroma-admin.zakroma.internal | 192.168.1.11, 192.168.1.12, 192.168.1.13 |
*.zakroma.internal | 192.168.1.11, 192.168.1.12, 192.168.1.13 |
Wildcard-запись покрывает global.zakroma.internal и имена вида <workspace>.zakroma.internal. Если DNS-сервер не поддерживает wildcard, создайте отдельные записи для global и каждой рабочей области.
DNS-сервер на узлах Debian 12
На всех четырёх узлах и на управляющем сервере укажите адрес DNS-сервера, в котором созданы записи из таблицы выше. В примере ниже DNS-сервер — 192.168.1.2; замените его на IP-адрес своего DNS-сервера.
Сначала проверьте, какая служба управляет разрешением имён:
1ls -l /etc/resolv.conf 2resolvectl status 2>/dev/null || systemd-resolve --status 2>/dev/null
Если /etc/resolv.conf — симлинк на systemd-resolved (типично для Debian 12), задайте DNS через конфиг:
1sudo install -d -m 0755 /etc/systemd/resolved.conf.d 2sudo tee /etc/systemd/resolved.conf.d/zakroma.conf >/dev/null <<'EOF' 3[Resolve] 4DNS=192.168.1.2 5FallbackDNS=1.1.1.1 6Domains=zakroma.internal 7EOF 8sudo systemctl restart systemd-resolved 9resolvectl status
Проверьте, что в выводе resolvectl status для активного интерфейса указан DNS Servers: 192.168.1.2 и домен zakroma.internal.
Если узел настроен статически через /etc/network/interfaces, DNS можно указать в описании интерфейса:
1auto ens3 2iface ens3 inet static 3 address 192.168.1.11 4 netmask 255.255.255.0 5 gateway 192.168.1.1 6 dns-nameservers 192.168.1.2 7 dns-search zakroma.internal
После изменения перезапустите сеть (sudo ifdown ens3 && sudo ifup ens3) или перезагрузите узел.
Без отдельного DNSЕсли своего DNS-сервера нет, записи можно не настраивать: на стадии
bootstrapответьтеyesна вопрос «Прописать /etc/hosts на узлах» — роль добавит нужные имена локально. Файл/etc/hostsне поддерживает wildcard-записи, поэтому для клиентов и S3 вне кластера каждую рабочую область придётся прописать отдельно или использовать DNS.
DNS round-robinНесколько A-записей распределяют клиентские запросы, но не проверяют состояние узлов. Для production используйте балансировщик с проверкой состояния сервисов.
Проверка DNS
На управляющем сервере и на всех четырёх узлах:
1sudo apt-get update 2sudo apt-get install -y dnsutils 3getent ahostsv4 postgresql.zakroma.internal 4getent ahostsv4 zakroma-admin.zakroma.internal 5getent ahostsv4 global.zakroma.internal
Если DNS не используется, пропустите проверку.
Firewall
Проверьте межсетевой экран на узлах:
1command -v ufw && sudo ufw status 2command -v firewall-cmd && sudo firewall-cmd --state 3command -v nft && sudo nft list ruleset
Для изолированного пилотного контура firewall можно временно отключить. Если он включён, разрешите:
| Узлы назначения | Источник | Порты | Назначение |
|---|---|---|---|
storage-1, storage-2, storage-3 | управляющий сервер и клиентская сеть | 22, 6443, 8444 | SSH, S3 API и Admin UI |
storage-1, storage-2, storage-3 | три узла Закрома.Хранение и ZDS | 8088, 8089 | API ZDS и межузловой обмен ZDS |
postgres-1 | управляющий сервер | 22, 5432 | SSH; настройка PostgreSQL на стадии postgres |
postgres-1 | три узла Закрома.Хранение | 5432 | подключение к PostgreSQL |
Пример правил UFW для подсети 192.168.1.0/24:
1# На трёх узлах Storage/ZDS. 2sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp 3sudo ufw allow from 192.168.1.0/24 to any port 6443 proto tcp 4sudo ufw allow from 192.168.1.0/24 to any port 8444 proto tcp 5sudo ufw allow from 192.168.1.0/24 to any port 8088 proto tcp 6sudo ufw allow from 192.168.1.0/24 to any port 8089 proto tcp 7sudo ufw status numbered 8 9# На узле PostgreSQL. 10sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp 11sudo ufw allow from 192.168.1.0/24 to any port 5432 proto tcp 12sudo ufw status numbered
Если управляющий сервер или S3-клиенты находятся в другой подсети, добавьте отдельные точечные правила для их адресов.
Диски ZDS
На каждом из трёх узлов Закрома.Хранение и ZDS смонтируйте отдельный диск в /data/zds до запуска роли. Роль проверяет, что /data/zds — точка монтирования отдельного тома, и создаёт внутри неё каталоги db, vacuum-state, scan-state, disk.
Форматирование удалит данныеКоманда
mkfs.xfsбезвозвратно удалит данные на выбранном устройстве. Сверьте/dev/vdbс фактическим диском для данных.
1lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINTS,MODEL 2sudo wipefs --no-act /dev/vdb 3sudo mkfs.xfs /dev/vdb 4sudo install -d -m 0755 /data/zds 5ZDS_UUID=$(sudo blkid -s UUID -o value /dev/vdb) 6FSTAB_LINE="UUID=${ZDS_UUID} /data/zds xfs defaults,noatime 0 2" 7sudo grep -Fqx "$FSTAB_LINE" /etc/fstab || printf '%s\n' "$FSTAB_LINE" | sudo tee -a /etc/fstab 8sudo mount -a 9findmnt --target /data/zds
SSH-доступ
С управляющего сервера должен работать SSH с sudo на все четыре узла под одним пользователем. Пользователь и ключ передаются при запуске плейбука через -u и --private-key, в inventory они не сохраняются.
1ssh -i ~/.ssh/key_name user@192.168.1.11 'sudo -n true' 2ssh -i ~/.ssh/key_name user@192.168.1.14 'sudo -n true'
Подготовка поставки
Получите:
- Архив
zakroma-roles-<версия>.tar.gz. См. Таблица соответствия версий. - Файл лицензии.
- Управляющий сервер с Ansible 2.15.0–2.18.15 и SSH/sudo-доступом ко всем узлам.
Распакуйте архив:
1RELEASE_VERSION=8.1.0 2tar -xvzf "zakroma-roles-${RELEASE_VERSION}.tar.gz" 3cd "zakroma-roles-${RELEASE_VERSION}" 4ansible --version
Положите лицензию в каталог поставки:
1install -m 0644 /path/to/licence files/zakroma-licence/licence
Развёртывание кластера
Первый запуск (интерактивный)
Запускайте из корня распакованной поставки. Нужен TTY — сценарий задаёт вопросы через интерактивный ввод.
1ANSIBLE_CONFIG=ansible.cfg ansible-playbook \ 2 -u user --private-key ~/.ssh/key_name \ 3 -i inventories/quick-start/hosts \ 4 playbooks/sample-play-quick-start.yml
На стадии bootstrap роль:
- Скопирует
group_varsизinventories/base-clusterвinventories/quick-start. - Спросит IP трёх узлов Закрома.Хранение и одного PostgreSQL (введите FQDN или IP).
- Спросит базовый домен, точку монтирования ZDS (
/data/zds), запись/etc/hosts(yes/no), пароли PostgreSQL, Admin UI и ZDS. - Если пакеты отсутствуют в
roles/zakroma-storage/filesиroles/zakroma-zds-v2/files, спросит логин и пароль для их скачивания. - Запишет указанные данные в
inventories/quick-start/hosts,group_vars/all/quick-start.ymlиgroup_vars/all/quick-start-secrets.yml.
Далее выполняются стадии prepare, postgres, licence, preflight и install. Установка Закрома.Хранение и ZDS выполняется отдельным этапом плейбука после preflight.
ПаролиПустой ввод пароля генерирует случайную строку. Сгенерированные пароли выводятся в консоль на стадии
bootstrap. Не используйте символы:,',"в паролях — они нарушают разбор YAML-конфигурации Закрома.Хранение.
CIDR для PostgreSQLРоль добавляет в
pg_hba.confправило для подсетей изzakroma_quick_start_pg_cidrs. Если список пуст, используются/32-адреса узлов Закрома.Хранение. На стадииbootstrapможно указать свою подсеть, например192.168.1.0/24.
Повторный запуск
Когда inventory и секреты уже записаны, запустите плейбук без интерактивного ввода. SSH-пользователь и ключ по-прежнему задаются флагами -u и --private-key или переменными ANSIBLE_USER и ANSIBLE_PRIVATE_KEY_FILE в окружении оператора; в inventory они не сохраняются.
1ANSIBLE_CONFIG=ansible.cfg ansible-playbook \ 2 -u user --private-key ~/.ssh/key_name \ 3 -i inventories/quick-start/hosts \ 4 -e zakroma_quick_start_interactive=false \ 5 playbooks/sample-play-quick-start.yml
Отдельные стадии
1# Только блок «Доступ» (URL, пароли, /etc/hosts для клиента) 2ANSIBLE_CONFIG=ansible.cfg ansible-playbook -i inventories/quick-start/hosts \ 3 -u user --private-key ~/.ssh/key_name \ 4 -e zakroma_quick_start_stage=access \ 5 playbooks/sample-play-quick-start.yml 6 7# Только установка продукта (после успешного preflight) 8ANSIBLE_CONFIG=ansible.cfg ansible-playbook -i inventories/quick-start/hosts \ 9 -u user --private-key ~/.ssh/key_name \ 10 -e zakroma_quick_start_stage=install \ 11 playbooks/sample-play-quick-start.yml
Сохранённые файлы inventory
После первого запуска в inventories/quick-start/ появятся:
| Файл | Содержимое |
|---|---|
hosts | Узлы Закрома.Хранение, ZDS и PostgreSQL |
group_vars/all/quick-start.yml | Домен, mount ZDS, флаг /etc/hosts, CIDR PostgreSQL |
group_vars/all/quick-start-secrets.yml | Пароли (права 0600) |
group_vars/zakroma-storage.yml | Конфигурация Закрома.Хранение (роль обновляет автоматически) |
group_vars/zakroma-zds-v2-ec.yml | Конфигурация ZDS EC 2+1 (роль обновляет автоматически) |
Полное описание переменных базового кластера: Установка базового кластера.
Проверка сервисов
На каждом узле Закрома.Хранение и ZDS проверьте:
1sudo systemctl is-active zakroma-storage-monolith.service 2sudo systemctl is-active zakroma-ds-agent.service 3sudo systemctl is-enabled zakroma-storage-monolith.service 4sudo systemctl is-enabled zakroma-ds-agent.service
Ожидаются active и enabled. Если сервис не запущен:
1sudo journalctl -u zakroma-storage-monolith.service -n 100 --no-pager 2sudo journalctl -u zakroma-ds-agent.service -n 100 --no-pager
Проверьте ZDS. curl запросит пароль из quick-start-secrets.yml (zakroma_zds_password):
1curl --fail --silent --show-error --user zakromaadmin \ 2 http://localhost:8088/inner/status | jq -e ' 3 .status == "RUNNING" and 4 .dbCanWrite == true and 5 all(.drives[]; .status == "RUNNING") and 6 all(.storageGroups[]; .Status == "RUNNING") 7 '
На узле PostgreSQL:
1sudo systemctl is-active postgresql 2sudo -u postgres psql -d zakroma -c '\dn+'
С каждого узла Закрома.Хранение:
1getent ahostsv4 postgresql.zakroma.internal 2nc -vz -w 3 postgresql.zakroma.internal 5432
Подробнее: Настройка PostgreSQL.
Проверка DNS и HTTP после установки
Проверьте DNS с управляющего сервера (если DNS использовался в инсталляции):
1dig +short A zakroma-admin.zakroma.internal | sort -u 2dig +short A global.zakroma.internal | sort -u
Проверьте каждый backend Admin UI:
1for ip in 192.168.1.11 192.168.1.12 192.168.1.13; do 2 curl --fail --silent --show-error \ 3 --resolve zakroma-admin.zakroma.internal:8444:${ip} \ 4 http://zakroma-admin.zakroma.internal:8444/auth/config >/dev/null 5 echo "OK: Admin UI on ${ip}" 6done
Admin UI:
1http://zakroma-admin.zakroma.internal:8444
Стадия access плейбука выводит те же URL, пароли и фрагмент /etc/hosts для клиентской машины — команда запуска приведена в разделе «Отдельные стадии».
Подключение ZDS и создание бакета
Войдите под zakromaadmin с паролем из inventories/quick-start/group_vars/all/quick-start-secrets.yml (zakroma_admin_password). Роль автоматически создаёт тестовый бакет в отдельной рабочей области и подключает хранилище ZDS.
Во вкладке «Хранилища» убедитесь, что присутствует хранилище с названием ZDS. Если оно отсутствует, то добавить его можно с помощью этой инструкции: Хранилища.
Во вкладке «Рабочие области» убедитесь, что присутствует рабочая область с названием demo-ws, а в ней есть бакет demo. Перейдите в этот бакет, откройте раздел «Объекты» и попробуйте загрузить любой объект в бакет. Загрузка должна произойти успешно, а загруженный объект отобразится в списке.
В случае отсутствия бакета или прав на загрузку обратитесь к инструкциям ниже.
Подробнее про политики доступа: Политики доступа.
Подробнее: Рабочие области и Бакеты.
Проверьте, что wildcard-запись разрешает имя созданной области:
1dig +short A demo-ws.zakroma.internal | sort -u
Ожидаются IP-адреса всех трёх узлов Закрома.Хранение.
Проверка S3
Создайте для локального пользователя S3-ключ в Admin UI: нажмите на имя пользователя в правой верхней части страницы, затем на «Установить ключ доступа»; параметры можно не менять. Идентификатор ключа — это AWS_ACCESS_KEY_ID, секретный ключ — AWS_SECRET_ACCESS_KEY.
Копирование ключей не работает без HTTPSКнопки копирования идентификатора и секретного ключа работают только при включённом TLS, поэтому в этой конфигурации они недоступны.
Затем установите AWS CLI на управляющем сервере и передайте ключи через переменные окружения:
1export AWS_ACCESS_KEY_ID='<access-key>' 2read -rsp 'AWS Secret Access Key: ' AWS_SECRET_ACCESS_KEY 3export AWS_SECRET_ACCESS_KEY 4echo 5export S3_ENDPOINT='http://demo-ws.zakroma.internal:6443' 6export S3_BUCKET='demo'
Создайте тестовый файл, загрузите его в бакет, скачайте обратно, сравните содержимое и удалите объект:
1object="quick-start-$(date +%s).txt" 2printf 'Zakroma quick-start S3 check\n' >/tmp/zakroma-s3-source.txt 3aws --endpoint-url "$S3_ENDPOINT" s3 cp /tmp/zakroma-s3-source.txt "s3://${S3_BUCKET}/${object}" 4aws --endpoint-url "$S3_ENDPOINT" s3 ls "s3://${S3_BUCKET}/${object}" 5aws --endpoint-url "$S3_ENDPOINT" s3 cp "s3://${S3_BUCKET}/${object}" /tmp/zakroma-s3-downloaded.txt 6cmp /tmp/zakroma-s3-source.txt /tmp/zakroma-s3-downloaded.txt 7aws --endpoint-url "$S3_ENDPOINT" s3 rm "s3://${S3_BUCKET}/${object}" 8rm -f /tmp/zakroma-s3-source.txt /tmp/zakroma-s3-downloaded.txt 9unset AWS_SECRET_ACCESS_KEY
Критерии готовности
- Все четыре узла соответствуют минимальным ресурсам.
- На каждом узле Закрома.Хранение
/data/zdsсмонтирован как отдельный том. - DNS или
/etc/hostsна узлах разрешают FQDN стенда. - Firewall отключён в изолированном контуре либо разрешает необходимые соединения.
- Плейбук
sample-play-quick-start.ymlзавершился без ошибок на всех стадиях. - PostgreSQL доступен с трёх узлов Закрома.Хранение по
postgresql.<domain>:5432. - На каждом узле активны сервисы Закрома.Хранение и ZDS.
- ZDS видит три узла, тома в статусе
RUNNING, кластер —RW. - Admin UI и S3 API доступны по HTTP на портах
8444и6443. - Группа хранения создана с EC 2+1.
- Проверка S3 успешно записывает, читает и удаляет объект.
Распространённые ошибки
Ниже — частые причины падения плейбука на стадиях prepare, preflight и install. Текст сообщений может отличаться в зависимости от версии роли.
Доменные имена не разрешаются
Симптом. На стадии prepare или preflight:
1Имя postgresql.zakroma.internal не резолвится на storage-1. 2Настройте DNS для zakroma.internal или включите zakroma_quick_start_write_hosts.
Или на стадии preflight:
1Timeout when waiting for postgresql.zakroma.internal:5432
Причина. При zakroma_quick_start_write_hosts: false FQDN стенда должны разрешаться через DNS на каждом узле Закрома.Хранение, ZDS и PostgreSQL. Если DNS не настроен, имя есть только на управляющем сервере или /etc/hosts ещё не записан.
Что сделать.
- Настройте A-записи для
postgresql.<domain>,zakroma-admin.<domain>,global.<domain>и FQDN узлов (см. раздел «Записи DNS»). - Либо на стадии
bootstrapответьтеyesна вопрос о/etc/hosts, либо задайтеzakroma_quick_start_write_hosts: trueвgroup_vars/all/quick-start.ymlи повторите стадиюprepare. - Проверьте разрешение имён на проблемном узле:
1getent ahostsv4 postgresql.zakroma.internal 2getent ahostsv4 zakroma-admin.zakroma.internal
Файл лицензии не найден
Симптом. В начале прогона, на стадии bootstrap или licence:
1Положите лицензию в .../files/zakroma-licence/licence 2или задайте zakroma_quick_start_licence_src.
Причина. Роль ожидает файл лицензии на управляющем сервере до копирования на узлы Закрома.Хранение. Путь по умолчанию — files/zakroma-licence/licence в корне распакованной поставки.
Что сделать.
1install -m 0644 /path/to/licence files/zakroma-licence/licence 2# или укажите другой путь: 3# -e zakroma_quick_start_licence_src=/path/to/licence
Убедитесь, что файл обычный (не каталог) и содержит все поля лицензии (owner, licenseId, validTo, product, environment, licensedVolume, signature).
Нет сетевого доступа по нужным портам
Симптом. Preflight или установка падают на проверке TCP, SSH или подключении к сервисам:
1Timeout when waiting for postgresql.zakroma.internal:5432
1Failed to connect to the host via ssh: Connection timed out
Проверка preflight ZDS не видит соседние узлы на портах 8088/8089.
Причина. Межсетевой экран, security group облака или маршрутизация блокируют трафик между узлами или с управляющего сервера.
Что сделать. Разрешите соединения из таблицы раздела «Firewall».
Проверка с узла Закрома.Хранение:
1nc -vz -w 3 postgresql.zakroma.internal 5432 2nc -vz -w 3 storage-2.zakroma.internal 8088
С управляющего сервера:
1nc -vz -w 3 192.168.1.11 22 2nc -vz -w 3 192.168.1.14 5432
Диск ZDS не смонтирован
Симптом. На стадии prepare, задача «Проверить, что диск ZDS смонтирован»:
1/data/zds должен быть точкой монтирования отдельного тома, 2не каталогом на корневой ФС. 3Смонтируйте диск в этот путь и повторите.
Причина. Роль не форматирует и не монтирует диски. Каталог /data/zds на корневой файловой системе или пустой mount не подходят — нужен отдельный том (в примере /dev/vdb).
Что сделать. На каждом узле Закрома.Хранение и ZDS выполните подготовку диска (см. раздел «Диски ZDS»), затем повторите плейбук:
1findmnt --target /data/zds 2df -h /data/zds 3lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT /dev/vdb
Точка монтирования должна совпадать с zakroma_quick_start_zds_mount (по умолчанию /data/zds).
Дополнительно о роли zakroma-quick-start
Роль входит в поставку zakroma-roles версии 8.1.0 и находится в каталоге roles/zakroma-quick-start. Плейбук — playbooks/sample-play-quick-start.yml, inventory для первого запуска — заглушка inventories/quick-start/hosts.
| Стадия / тег | Действие роли |
|---|---|
bootstrap | Копирует group_vars из inventories/base-cluster в inventories/quick-start, спрашивает IP узлов, домен, пароли и параметры, записывает inventory |
prepare | Задаёт FQDN, ставит пакеты, при необходимости прописывает /etc/hosts, проверяет точку монтирования ZDS, создаёт каталоги и пользователя zakroma, накладывает overrides Закрома.Хранение и ZDS |
postgres | Устанавливает PostgreSQL 16 из PGDG, создаёт zakroma_user, БД zakroma и схемы |
licence | Копирует файл лицензии на узлы Закрома.Хранение |
preflight | Запускает проверки zakroma-preflight для Закрома.Хранение и ZDS |
install | Устанавливает zakroma-storage и zakroma-zds-v2 |
access | Выводит URL, пароли и блок /etc/hosts для клиентской машины |
Форматирование дисков и настройка DNS-сервера выполняются до запуска Ansible — роль эти шаги не выполняет (см. разделы «Диски ZDS» и «Записи DNS»).
Параметры для Quick Start (HTTP, file-auth, EC 2+1, порты 6443/8444, пароли из Vault или интерактивного ввода) роль применяет сама в inventories/quick-start/group_vars/zakroma-storage.yml и zakroma-zds-v2-ec.yml. Публикация Admin UI через балансировщик (zakroma_storage_admin.reverse_proxy), включённая в примере базового кластера, в плейбуке sample-play-quick-start.yml отключается. Ручное редактирование этих файлов для типового сценария не требуется.