Перейти к содержанию

Переменные, используемые в роли Ansible

Внимание!

Список переменных приведен для версии роли 25.5.1 и выше Переменные для других версий роли смотрите в Документации в git-репозитории роли

Глобальные переменные

Инсталляция

Имя Значение по умолчанию Описание
admin_password пароль для учетной записи admin (требования к паролю)
auth_webui true авторизация в WebUI, работает с Picodata версии 25.4.2 и выше; если версия меньше, то не выставляйте эту переменную
autonames true развертывание кластера с автогенерацией имен инстансов
cluster_name demo имя кластера
db_config словарь с параметрами конфигурации кластера
default_bucket_count 30000 количество бакетов в каждом тире по умолчанию
init_system systemd система управления сервисами и процессами (systemd, supervisord)
install_packages true необходимость установки picodata из репозитория пакетов
iptoro_ca_file файл с доверенным центром сертификации для настройки mTLS внутри кластера
iptoro_cert_file файл с сертификатом для настройки mTLS внутри кластера
iptoro_key_file файл с закрытым ключом для настройки mTLS внутри кластера
iproto_tls false признак использования mTLS внутри кластера
group root имя группы для файлов (эта группа уже должна быть создана на каждом сервере кластера)
https false признак использования https для кластера (WebUI и метрики)
https_cert_file файл с сертификатом для настройки https
https_key_file файл с закрытым ключом для настройки https
https_password_file файл с паролем для расшифровки закрытого ключа (опционально)
package_with_version имя пакета picodata с нужной версией для установки из репозитория. Пример для Ubuntu Jammy: package_with_version: 'picodata=25.5.1.0-jammy'
picodata_package_path путь до пакета picodata, который нужно установить на серверах
pg_ca_file файл с доверенным центром сертификации для SSL-соединения по PostgreSQL-протоколу
pg_cert_file файл с сертификатом для SSL-соединения по PostgreSQL-протоколу
pg_key_file файл с закрытым ключом для SSL-соединения по PostgreSQL-протоколу
pg_port_delay 5 задержка между проверками доступности порта PostgreSQL-протокола в секундах (если кластер большой, то стоит увеличить)
pg_ssl false признак использования протокола SSL при подключении по PostgreSQL-протоколу
repo 'https://download.picodata.io' репозиторий для установки пакетов, значение для ночных сборок: https://download.binary.picodata.io
retries_admin_sock 1 количество попыток ожидания запуска инстанса (увеличьте, если ваши инстансы долго запускаются)
rootless false установка кластера в режиме с ограниченными привилегиями
service_password пароль для сервисной учетной записи pico_service
systemd_params словарь с параметрами для Systemd
timeout_admin_sock 60 время ожидания запуска инстанса в секундах (увеличьте, если ваши инстансы долго запускаются)
user root имя пользователя для файлов (этот пользователь уже должен быть создан на каждом сервере кластера)

Пути

Имя Значение по умолчанию Описание
bin_dir /usr/bin путь до исполняемого файла picodata
conf_dir /etc/picodata размещение настроечных файлов
cert_dir /etc/picodata корневой путь для размещения сертификатов
crash_dump_fetch_dir ./crash_dumps размещение файлов с дампами на станции ansible при выполнении тега crash_dump
data_dir /var/lib/picodata размещение данных
dir_mode 0755 права, создаваемые на директории
log_dir /var/log/picodata размещение файлов журнала и аудита
report_dir ../ размещение файла с отчетом об установленных инстансах
run_dir /var/run/picodata размещение socket-файлов
share_dir /usr/share/picodata размещение служебных данных (плагинов)
supervisord_dir /etc/picodata/supervisord размещение конфигурационных файлов для supervisord
systemd_dir /etc/systemd/system размещение systemd-файлов

Журналирование и аудит

Имя Значение по умолчанию Описание
audit true аудит событий в кластере; при включении файлы будут размещаться в log_dir и начинаться с audit-
audit_pipe_command перенаправление вывода сообщений аудита в подпроцесс через pipe
audit_to syslog место хранения файлов аудита. Возможные значения: syslog, file, pipe
log_format plain формат отладочного журнала (plain, json)
log_level info уровень журналирования. Возможные значения: fatal, system, error, crit, warn, info, verbose, debug
log_pipe_command перенаправление вывода сообщений в подпроцесс через pipe
log_to syslog место хранения файлов журнала. Возможные значения: file, syslog, pipe

Адреса и порты

Имя Значение по умолчанию Описание
first_bin_port 13301 начальный номер порта для бинарных портов инстансов кластера
first_http_port 18001 начальный номер порта для http-портов инстансов кластера
first_pg_port 15001 начальный номер порта для PostgreSQL-протокола инстансов кластера
listen_address {{ansible_fqdn}} Jinja-шаблон для определения адреса сервера. Для IP можно указать {{ansible_default_ipv4.address}}
pg_address {{ansible_fqdn}} Jinja-шаблон для определения адреса сервера для подключения по PostgreSQL-протоколу. Для IP можно указать {{ansible_default_ipv4.address}}. Обычно совпадает с listen_address и используется для разделения внутреннего и внешнего трафика по разным сетевым интерфейсам

Резервное копирование

Имя Значение по умолчанию Описание
backup_dir /var/lib/picodata/backups директория для размещения локальных резервных копий
backup_fetch false необходимость скачивания резервных копий с серверов; при значении false копии сохраняются только локально на серверах. Используется также и при восстановлении
backup_fetch_dir backups директория для размещения скачанных бэкапов на станции ansible с серверов кластера
force_copy_backup false копировать бэкап со станции бэкапа даже, если он есть на удаленных серверах
restore_dir директория для восстановления кластера, в формате YYYYMMDDhhmmss. Если не указана, то будет использована последняя из существующих
ip_replacements_file None Путь к файлу со словарем замены старых ip-адресов на новые при восстановлении из резервной копии

Прочие

Имя Значение по умолчанию Описание
cmdfile файл с командами, который используется при вызове с тэгом command
cmdline однострочная команда, которая используется при вызове с тэгом command. Можно использовать несколько команд через разделитель \n
debug false вывод отладочной информации
enable true используется только при тэге остановки кластера (stop) для того, чтобы инстансы не запустились при перезагрузки сервера
extra_vars {} словарь с дополнительными переменными окружения для всего кластера
fd_uniq_per_instance false позволяет разворачивать репликасет из нескольких реплик на одном сервере. Используйте только для локальной отладки!
filter .* опциональный фильтр по именам инстансов, используется при вызове с тегами command, restart, stop, start. Можно использовать регулярные выражения
instance имя инстанса, используется с тегом rebootstrap
need_restart true перезапустить инстансы кластера после изменения конфигурации
peer peer-адрес, используется с тегом rebootstrap
purge true при выставлении этой переменной в false при удалении кластера будут оставлены файлы с данными, конфигурационные файлы и файлы журнала
remove_pkg false при выставлении этой переменной в true при удалении кластера будет также удален пакет picodata с серверов
serial_host_restart 100 количество серверов для одновременного перезапуска
shredding false режим безопасного удаления рабочих файлов инстанса путем многократной перезаписи специальными битовыми последовательностями
sigkill false принудительно отправить сигнал SIGKILL во все процессы picodata (помогает остановить кластер, если он сломался по какой-либо причине)
sql_file файл с набором команд для выполнения после развертывания кластера
remove_sharedir true удалять share_dir при удалении кластера

Переменные для тиров

Имя Значение по умолчанию Описание
bucket_count 30000 количество бакетов в тире
can_vote true возможность инстансов участвовать в голосовании на выборах raft-лидера
config словарь для настройки инстансов тира, например указание размера инстанса. См. подробнее
db_config {} словарь с параметрами конфигурации кластера для тира
extra_vars {} словарь с дополнительными переменными окружения для конкретного тира
instances_per_server 1 количество инстансов тира на каждом сервере. Данный параметр более приоритетен, чем replicaset_count
replicaset_count 1 количество репликасетов в тире
replication_factor 1 фактор репликации
systemd_params {} словарь с настройками для Systemd

В переменных extra_vars можно использовать литерал <INSTANCE_NUM> для подстановки номера инстанса на сервере в значение переменной, пример:

tiers:
  default:
    replicaset_count: 2
    replication_factor: 3
    bucket_count: 16384
    extra_vars:
      RADIX_ADDR: '0.0.0.0:73<INSTANCE_NUM>'

В таком случае для первого инстанса переменная RADIX_ADDR установит значение 0.0.0.0:7300, для второго — 0.0.0.0:7301, для третьего — 0.0.0.0:7302 и так далее.

Группировка хостов

Групп хостов может быть несколько на один тир:

tiers:                         # описание тиров
  arbiter:                     # имя тира
    replicaset_count: 1        # количество репликасетов
    replication_factor: 1      # фактор репликации
    host_groups:               # список групп серверов для установки инстансов тира
      - ARBITERS
      - STORAGES

Если раздел host_groups не определен, то инстансы будут раскатаны на каждом сервере.

Переменная host_group должна быть определена в списке серверов.

Переменные для хостов

Пример настройки хостов:

G1:                                 # имя датацентра 1
  hosts:
    server-1-1:                     # имя сервера 1
      ansible_host: 192.168.19.21   # адрес сервера 1
      host_group: 'ARBITERS'        # группа хостов

G2:                                 # имя датацентра 2
  hosts:
    server-2-1:                     # имя сервера 2
      ansible_host: 192.168.19.22   # адрес сервера 2
      host_group: 'STORAGES'        # группа хостов

G3:                                 # имя датацентра 3
  hosts:
    server-3-1:                     # имя сервера 3
      ansible_host: 192.168.19.23   # адрес сервера 3
      host_group: 'STORAGES'        # группа хостов

Переменные для плагинов

Имя Значение по умолчанию Описание
config путь к конфигурационному файла плагина на локальном хосте (опционально)
enable true выполнить все sql-инструкции по настройке плагина, кроме его включения
install_sql true выполнить sql-инструкции по настройке и включению плагина (используется для отладки)
migration_context переменные для подстановки в миграциях (опционально)
migration_timeout 300 время ожидания окончания выполнения миграций
path путь к пакету с плагином на локальном хосте
plugin_timeout 300 время ожидания окончания выполнения команд установки плагина
services словарь с настройками для служб плагина (пока поддерживаются только тиры)