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

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

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

Инсталляция

Имя Значение по умолчанию Описание
repo 'https://download.picodata.io' репозиторий для установки пакетов. Значение для ночных сборок: https://download.binary.picodata.io
cluster_name demo имя кластера
user root имя пользователя для файлов
group root имя группы для файлов
service_password пароль для сервисной учетной записи pico_service
admin_password пароль для учетной записи admin (требования к паролю)
init_system systemd система управления сервисами и процессами (systemd, supervisord)
install_packages true необходимость установки picodata из репозитория пакетов
systemd_params словарь с настройками systemd служб
db_config словарь с параметрами конфигурации кластера
default_bucket_count 30000 количество бакетов в каждом тире по умолчанию
pg_port_delay 5 задержка между проверками доступности порта PostgreSQL-протокола в секундах (если кластер большой, то стоит увеличить)
picodata_package_path путь до пакета Picodata, который нужно установить на серверах

Пути

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

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

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

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

Имя Значение по умолчанию Описание
first_bin_port 13301 начальный номер порта для бинарных портов инстансов кластера
first_http_port 18001 начальный номер порта для http-портов инстансов кластера
first_pg_port 15001 начальный номер порта для PostgreSQL-протокола инстансов кластера. Значение 0 выключает поддержку протокола PostgreSQL
pg_ssl false признак использования протокола SSL при подключении к Picodata
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_dir backups каталог для размещения резервных копий, скачанных с серверов кластера
backup_fetch true необходимость скачивания резервных копий с серверов; при значении false копии сохраняются только локально на серверах. Используется также и при восстановлении
restore_dir директория для восстановления кластера, в формате YYYYMMDDhhmmss. Если не указана, то будет использована последняя из существующих

Прочие

Имя Значение по умолчанию Описание
shredding false режим безопасного удаления рабочих файлов инстанса путем многократной перезаписи специальными битовыми последовательностями
purge true при выставлении этой переменной в false при удалении кластера будут оставлены файлы с данными, конфигурационные файлы и файлы журнала
fd_uniq_per_instance false позволяет разворачивать репликасет из нескольких реплик на одном сервере. Используйте только для локальной отладки!
debug false вывод отладочной информации
serial_host_restart 100 количество серверов для одновременного перезапуска
extra_vars словарь с дополнительными переменными окружения для всего кластера
sigkill false принудительно отправить сигнал SIGKILL во все процессы picodata (помогает остановить кластер, если он сломался по какой-либо причине)

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

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

В переменных 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 и так далее.

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

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

host_groups:
- STORAGES

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

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

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

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

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

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

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

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

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