Перейти к основному содержимому

Список доступных конфигурационных параметров для автоматизированных сценариев установки и обновления

Сведения

Указанные параметры в данном разделе оформляется в рамках файлаconfig.yml в случае автоматизированной установки, либо обновления СУБД Pangolin.

Перечень параметров состоит из 19 секций. Каждая секция необходима для индивидуальной настройки разворачиваемого продукта:

  • 1. УСТАНОВКА. Параметры для настройки установки СУБД Pangolin.
  • 2. ОБНОВЛЕНИЕ. Параметры для обновления СУБД Pangolin.
  • 3. УСТАНОВКА И ОБНОВЛЕНИЕ. Блок секций с параметрами актуальная как для настройки установки, так и для обновления СУБД Pangolin.
  • 3.1. ПРАВИЛА HBA. Параметры для настройки соединения с СУБД.
  • 3.2. НАСТРОЙКИ БЕЗОПАСНОГО ПОДКЛЮЧЕНИЯ (SSL). Параметры для настройки SSL-аутентификации.
  • 3.3. НАСТРОЙКИ СЕРТИФИКАТА ХРАНИЛИЩА (VAULT). Параметры для настройки хранилища секретов.
  • 3.4. НАСТРОЙКИ ОКРУЖЕНИЯ. Параметры для настройки окружения.
  • 3.5. НАСТРОЙКИ КОНФИГУРАЦИИ КОМПОНЕНТОВ. Параметры для настройки конфигураций компонентов продукта Pangolin. Состоит из двух подсекций: НАСТРОЙКИ DBMS и НАСТРОЙКИ ETCD.
  • 3.6. ПАРОЛИ. Параметры для настройки паролей пользователей.
  • 3.7. ПАРАМЕТРЫ ДИАГНОСТИКИ И МОНИТОРИНГА. Параметры для настройки функциональностей диагностики и мониторинга.
  • 3.8. ПАРАМЕТРЫ ПАРОЛЬНОЙ ПОЛИТИКИ. Параметры для управления парольными политиками.
  • 3.9. ПАРАМЕТРЫ СГЕНЕРИРОВАННОГО ПАРОЛЯ. Параметры настройки генерации паролей (rotate_password).
  • 3.10. ПАРАМЕТРЫ МАСКИРОВАНИЯ ЗАПРОСОВ. Параметры активации функциональности маскирования запросов.
  • 3.11. ПЕРЕМЕННЫЕ ПРОВЕРКИ ДИСКА. Переменные проверки системы хранения данных.
  • 3.12. ПАРАМЕТРЫ PSQL. Параметр защиты информации утилиты psql.
  • 3.13. ПЕРЕМЕННЫЕ ГЛОБАЛЬНОЙ ИНДЕКСАЦИИ. Переменные для настройки механизма глобальных индексов.
  • 3.14. ТРАССИРОВКА СЕССИЙ. Переменные для настройки трассировки сессий.
  • 3.15. ПУТИ ДО СИСТЕМНЫХ ЮНИТОВ. Настройки пути до системных юнитов для защиты от привилегированного пользователя.
  • 4. НАСТРОЙКИ РЕЗЕРВНОГО КОПИРОВАНИЯ. Параметры для интеграции с системой резервного копирования.
  • 5. НАСТРОЙКИ PANGOLIN TUNER. Параметры для настройки утилиты Pangolin Tuner.
########################################################################################1. УСТАНОВКА ########################################################################################
min_space_pgdata: 0 # Минимальное дисковое пространство раздела 'pgdata' (в Гбайтах)
min_space_pgarclogs: 0 # Минимальное дисковое пространство раздела 'pgarclogs' (в Гбайтах)
min_space_pgerrorlogs: 0 # Минимальное дисковое пространство раздела 'pgerrorlogs' (в Гбайтах)
min_space_usr_dir: 2 # Минимальное дисковое пространство каталога 'usr' (в Гбайтах)
min_space_tmp: 1 # Минимальное дисковое пространство раздела 'tmp' (в Гбайтах)
ldap_tls: true # Условие для переключения режима между TLS и LDAP аутентификацией
clustername: "{{ '' | default('clustername', true) }}" # Устанавливает имя для сервера Pangolin
pg_user_group:
is_enable: false # Включает или выключает определение специфического параметра 'uid'/'gid' для пользователя/группы 'postgres'
group_guid: 26 # Определяет значение 'guid' для группы postgres
user_uid: 26 # Определяет значение 'guid' для пользователя postgres
kmadmin_user_group:
is_enable: false # Включает/выключает выделение заданных 'uid'/'gid' для пользователя/группы kmadmin_pg
group_gid: 126 # Специфическое значение 'gid' для группы kmadmin_pg
user_uid: 126 # Специфическое значение 'uid' для пользователя kmadmin_pg
pangolin_users_group:
is_enable: false # Включает/выключает выделение заданного 'gid' для группы pangolin_users
group_gid: 226 # Специфическое значение 'gid' для группы pangolin_users
locale: "{% if tuner_profile | d('oltp') == '1c' %}ru_RU.UTF-8{% else %}en_US.UTF-8{% endif %}" # Значение региона/времени 'locale'
used_fqdn_host: true # Параметр, отвечающий за использование DNS-имени в скриптах автоматизации
fast_checkpoint_before_backup: false # Определяет необходимость выполнения контрольной точки ('CHECKPOINT') в работе функции 'pg_backup_start', запущенной из 'manage_backup.bin'
wal_segsize: 16 # Размер сегмента WAL в мегабайтах. Допустимыми значениями являются степени двойки от 1 до 1024 включительно.

######################################################################################## 2. ОБНОВЛЕНИЕ ########################################################################################
is_inner_full_backup: "{% if action_type == 'update_major' %}true{% else %}false{% endif %}" # Включает/выключает локальную резервную копию
is_downtime_configure_module: true # Отвечает за активацию режима 'downtime' (минорное обновление роли конфигурации)
is_print_pg_upgrade_logs: false # Определяет необходимость вывода на экран результатов работы утилиты 'pg_upgrade'
local_backup_path: /pgarclogs # Путь локальной резервной копии
local_backup_coefficient: 1 # Пропорциональный размер локальной резервной копии (процент от размера 'dbms')
maximum_dbms_size_to_update: 100 # Максимальный размер 'dbms' для обновления (в Гбайтах)
false_error_filter_for_data_schema: [] # Список запросов, при выполнении которых ошибки будут игнорироваться во время обновления
false_error_filter_for_data_schema_default: ['CREATE ROLE postgres;', # Список запросов по умолчанию, при выполнении которых ошибки будут игнорироваться во время обновления
'CREATE POLICY cron_job_run_details_policy ON .*.job.* .*',
'CREATE POLICY cron_job_policy ON .*.job USING .*',
'CREATE POLICY allow_select ON .*.pathman_config FOR SELECT USING \(true\);',
'CREATE POLICY allow_select ON .*.pathman_config_params FOR SELECT USING \(true\);',
'CREATE POLICY deny_modification ON .*.pathman_config USING \(.*.check_security_policy\(partrel\)\);',
'CREATE POLICY deny_modification ON .*.pathman_config_params USING \(.*.check_security_policy\(partrel\)\);']

not_support_type_installed_configuration: [] # Список неподдерживаемых (устаревших) типов установки
handle_update_errors: true # Проверка запуска восстановления кластера при возникновении ошибки обновления ('true' = откат, 'false' = пропуск ошибки)
is_compress_data_by_rsync: no # Флаг включения сжатия в 'rsync', когда сеть нестабильна или работает медленно (функция для обновления)
is_removed_old_pgdata: true # Если значение 'true' то старый каталог 'PGDATA' должен будет удален после обновления с переносом данных
rsync_checksum: true # Включает флаг 'checksum' при миграции данных на реплику через 'rsync'
old_structure_rsync: true # Если параметр true, то при миграции данных будет использоваться старый подход к переносу данных с помощью rsync
reindexdb_after_pgupgrade: true # Отвечает за запуск 'reindexdb' после миграции данных ('pg_upgade')
reindexdb_gin_after_pgupgrade: true # Регулирует запуск скрипта 'reindex_gin.sql', который будет перестраивать индексы GIN после миграции данных
remove_block_update_tmp_files: true # Удаление временных файлов при обновлении типа 'trigger_stop_update' и 'update_disallowed'
block_traffic_minor: # Включает блокировку трафика в процессе выполнения обновления исполняемых файлов на разных этапах:
configure: true # - на этапе конфигурации обновления
full: true # - на этапе инициализации обновления
revert_disable_block_traffic: false # Отключение блокировки трафика после неудачного восстановления
create_local_backup: false # Включение создания локальной резервной копии при обновлении системного каталога

minimum_requirements: # Минимальные системные требования
arbiter:
cpu: 1 # Минимальные системные требования для числа ядер процессора. Измеряется в ядрах CPU
ram: 1 # Минимальные системные требования для объема оперативной памяти RAM. Измеряется в Гбайтах
postgres_nodes:
cpu: 4 # Минимальные системные требования для числа ядер процессора. Измеряется в ядрах CPU
ram: 8 # Минимальные системные требования для объема оперативной памяти RAM. Измеряется в Гбайтах
full_shutdown: false # Полное отключение узлов на время обновления
allowed_fs: ["ext4"] # Список разрешенных файловых систем для каталогов с данными

pg_auth_config_user_checked: [] # Список пользователей для проверки 'pg_auth_config'

shared_buffer:
is_enabled: "{{ '' | d(false) }}" # Включение опциональной настройки размера 'shared_buffer' для тестовой базы процедуры разведки
scout_size_percent: 95 # Размер выделяемой памяти для 'shared_buffer' в тестовой базе по отношению к доступному объему RAM. Значение в процентах (%)
scout_minimum: "{% if ansible_memtotal_mb < 65536 %}4{% else %}8{% endif %}" # Объем минимально необходимого свободного пространства RAM для тестовой базы. Значение в Гбайтах
safety_extra_huge_pages: 10 # Дополнительные огромные страницы для безопасности при обновлении. Значение указывается в количестве огромных страниц

patroni_lag_checker:
max_lag: 100 # Максимальное значение задержки синхронизации репликации для выдачи ошибки обновления. Измеряется в Мбайтах
retry_check: 10 # Максимальное число попыток ожидания проверочного значения задержки синхронизации

skip_test: true # Пропуск ошибок при провале тестов после миграции данных утилитой 'pg_inplace_upgrade'
tbs_location_symlink: false # Разрешить обновление ТП, в 'pg_tablespace_location' которых содержатся разрешенные символические ссылки. Ссылки должны начинаться с: '/pgdata/XX', '/pgdata/data'
two_phases_update: true # Включение режима двухфазного обновления в утилите 'pg_upgrade'
two_phases_extensions: # Конфигурация порядка миграции расширений с учетом их зависимостей
- fuzzystrmatch
- postgis
- postgis_raster
- postgis_sfcgal
- postgis_topology
- postgis_tiger_geocoder
- address_standardizer
- address_standardizer_data_us
- pgrouting
- isn

ext_upd_ignore_errors: "" # Список расширений, ошибки в обновлении которых будут проигнорированы
ext_upd_timeout: 1000000 # Время ожидания пароля для обновления расширений (в секундах)
two_phases_update: true # Включение режима двухфазного обновления в утилите pg_upgrade
two_phases_extensions: []
######################################################################################## 3. УСТАНОВКА И ОБНОВЛЕНИЕ ########################################################################################
pangolin_port: 5433 # Порт для взаимодействия с Pangolin DBMS
pangolin_pooler_port: 6544 # Порт для взаимодействия с компонентом Pangolin Pooler
pangolin_manager_port: 8008 # Порт для взаимодействия с Pangolin Manager
pgbouncer_auth_port: 5544 # Порт для подключения Pangolin Pooler к Pangolin DBMS
etcd_inner_port: 2379 # Порт для взаимодействия с etcd (внутренний)
etcd_external_port: 2380 # Порт для взаимодействия с etcd (внешний)
patroni_dcs_port: 2481 # Порт для взаимодействия с DCS
pangolin_dcs_rest_api_port: 8009 # Порт для взаимодействия с REST API DCS

pangolin_pooler_log_dir: "/pangolinlogs/pangolin-pooler" # Путь до директории с логами компонента Pangolin Pooler
pangolin_manager_log_dir: "/pangolinlogs/pangolin-manager" # Путь до директории с логами компонента Pangolin Manager
pangolin_certs_rotate_log_dir: "/pangolinlogs/pangolin-certs-rotate" # Путь до директории с логами утилиты pangolin-certs-rotate
pangolin_dbms_log_dir: "/pangolinlogs/pangolin-dbms" # Путь до директории с логами компонента Pangolin DBMS
pangolin_auth_reencrypt_log_dir: "/pangolinlogs/pangolin-auth-reencrypt" # Путь до директории с логами утилиты pangolin-auth-reencrypt
etcd_log_dir: "/pangolinlogs/etcd" # Путь до директории с логами компонента etcd

enabled_sec_admin_extra_auth_methods: 'cert' # Разрешенные дополнительные методы аутентификации для администраторов безопасности
enabled_extra_auth_methods: 'cert' # Разрешенные дополнительные методы аутентификации для пользователей, не являющихся администраторами безопасности
auth_encrypt: true # Переключение настроек засекречивания механизма аутентификации
auth_reencrypt: true # Переключение настроек утилиты повторного засекречивания
is_compare_checksums: false # Активация проверки контрольной суммы всех баз данных, при обновлении с переносом данных
authentication_max_workers: 16 # Устанавливает количество рабочих процессов прокси-аутентификации.
add_extra_ld_path: "{{ '' | d(false) }}" # Добавляет дополнительный путь в переменную окружения 'LD_LIBRARY_PATH'
pangolin_license_path: '' # Путь к файлу лицензии в дистрибутиве
pangolin_license_extension: false # Создает расширение для мониторинга лицензии
external_etcd: false # Использовать внешний кластер etcd
pg_ctl_custom_timeout: '120' # Указывает максимальное время ожидания (в секундах) завершения команд 'pg_ctl start/stop/restart'

pangolin_dcs_enable: false # Использовать встроенный DCS-сервис в Pangolin Manager
pangolin_dcs_params: # Параметры Pangolin DCS
data_dir: "{{ PGDATA.rstrip('data/') }}/raft_data" # Путь до директории для хранения журнала операций и текущих ключевых значений
journal_max_size: 10485760 # Максимальный размер журнала транзакций в байтах
journal_wait_timeout: 10 # Время, после которого журнал операций чтения/записи не считается успешным
memory_journal_size: 10000 # Максимальное число последних вхождений журнала, хранящихся в памяти
journal_force_read_wait: true # При включении в случае перезагрузки сервиса Pangolin- Manager журнал операций будет перечитываться
dump_dir: "{{ PGDATA.rstrip('data/') }}/raft_dump" # Путь до директории для хранения дампа, по умолчанию 'data_dir'
dump_interval: 300 # Время в секундах через которое создается дамп
dump_wait_timeout: 10 # Время, после которого дамп операций чтения/записи не считается успешным
logfile: "{{ pangolin_manager_log_dir }}/raft/raft.log" # Путь до файлов журнала
log_max_size: 20971520 # Максимальный размер в байтах для файла журнала Pangolin DCS
log_rotation_period: 1d # Интервал ротации файлов журнала Pangolin DCS, по умолчанию раз в день
heartbeat_interval: 1000 # Время в миллисекундах, в течение которых лидер кластера DCS cluster будет сообщать остальным узлам о своем состоянии
election_timeout: 5000 # Время в миллисекундах, по истечении которого при отсутствии информации о состоянии от лидера кластера инициируют процедуру переключения
verify_client: optional # Определяет проверку для запроса и верификации пользовательского сертификата DCS (возможные значения: 'none'/'optional'/'required')
verify_server: true # Определяет проверку для запроса и верификации серверного сертификата DCS
no_tls1_3: false # Параметр, позволяющий переключение с TLS v 1.3 на TLSv1.2 на серверах с установленным OpenSSL 1.1.0 и выше
retry_timeout: 10 # Тайм-аут для выполнения запроса к Pangolin DCS с использованием утилит 'pangolin-manager-ctl' и 'pangolin-dcs-ctl'
pangolin_dcs_rest_api: # Настройки конфигурации ролевой модели в кластере DCS
dcs_root: root # Имя привилегированного пользователя для Pangolin REST API
dcs_root_password: # Пароль привилегированного пользователя для Pangolin REST API
dcs_client_user: pangolindcs # Имя клиентского пользователя для Pangolin REST API
dcs_client_password: test123 # Пароль клиентского пользователя для Pangolin REST API
verify_client: optional # Определяет проверку для запроса и верификации пользовательского сертификата DCS (возможные значения: 'none'/'optional'/'required')
ciphers: DEFAULT:!SSLv1:!SSLv2:!SSLv3:!TLSv1:!TLSv1.1 # Типы шифрования DCS REST API
allowlist: "" # Список хостов с возможностью небезопасных запросов к DCS REST API

audit: # Настройки аудита событий безопасности
enabled: true # Включить аудит событий безопасности
directory: "{{ pangolin_manager_log_dir }}/audit" # Директория для файлов журнала аудита безопасности
filename: pangolin-manager # Базовое имя для файлов журнала аудита безопасности (без временного кода и расширения файла)
rotation_age: 1d # Лимит времени захвата файлов журнала. Новый файл журнала будет создан по превышении этого времени
rotation_size: 10M # Лимит размера файла журнала. Новый файл журнала будет создан при превышении этого размера

patroni_yml: # Параметры раздела etcd в 'patroni.yml'
etcd:
api_ver: "{{ '' | default('etcd', true) }}" # Выбирает версию API etcd. 'etcd3' для API v3 (версии etcd 3.3 и выше), либо 'etcd' для API v2
hosts: "{{ groups['all'] | map('extract', hostvars, used_fqdn_host | ternary('ansible_fqdn', ['ansible_default_ipv4', 'address'])) | list }}" # Список хостов etcd (например, '[ip, fqdn, .. ]' )
cacert: "{{ '' | default(pg_certs_pwd.etcd.root_ca, true) | d(false) }}" # Корневой сертификат для подключения SSL к etcd
cert: "{{ '' | default('/pg_ssl/patronietcd.crt', true) }}" # Клиентский сертификат для подключения SSL к etcd
key: "{{ '' | default('/pg_ssl/patronietcd.key', true) }}" # Клиентский ключ для подключения SSL к etcd
username: patronietcd # Имя пользователя для подключения к etcd
password: "{{ '' | default(patroni_etcd_pass, true) | d(false) }}" # Пароль для подключения к etcd
rest_api_ciphers: DEFAULT:!SSLv1:!SSLv2:!SSLv3:!TLSv1:!TLSv1.1 # Типы шифрования, допустимые для REST api утилиты patroni

copy_doc: true # Разрешает копирование документации
untrusted_plperl: true # Разрешить добавление ненадежных пакетов Perl в локальное хранилище
untrusted_plpython3: true # Разрешить добавление ненадежных пакетов Python в локальное хранилище
untrusted_pltcl: true # Разрешить добавление ненадежных пакетов Tcl в локальное хранилище
pangolin_ansible_cache: "/opt/pangolin_cache" # Временная директория для артефактов Ansible
pangolin_local_repos: "/opt/pangolin-local-repos/" # Полный путь до директории локального репозитория Pangolin DBMS
pangolin_ansible_logs: "/var/log/pangolin_ansible_logs" # Каталог для логов автоматизированных сценариев

kmadmin_pg:
bash_rules: # Лист правил для добавления в 'bashrc' для корректной работы kmadmin_pg
- export PGHOME={{ PGHOME }}
- export PGDATABASE=postgres
- export PGUSER=postgres
- export PGHOST={{ ansible_default_ipv4.address }}
- export PGPORT={{ ports.pg }}

enable_wal2json: false # Включает логическую репликацию с помощью 'wal2json' плагина
pangolin_block_update: true # Отвечает за блокировку обновления в случае если rpm\deb-пакет для восстановления не существует
swidtag:
path: "{{ link_pghome_array[0] }}/share" # Путь к SWIDTAG-файлу идентификации программного продукта
tune_pangolin_local_repo: false # Настройка локального репозитория

withcopywala: false # Установка агента pangolin-copywala вместо pangolin-backup-tools
copywala_app:
agent_id_file_path: "{{ copywala_files.config_dir }}/pbr.agent.id " # Путь к файлу с уникальным идентификатором приложения-агента
copywala_config_params:
backup_destination_uri: "local-fs://{{ PGBACKUP }}" # Путь назначения для хранения резервных копий (обязательный параметр при отсутствии 'restore_data_path')
restore_data_path: "local-fs://{{ PGDATA }}" # Путь для восстановления резервной копии (обязательный параметр при отсутствии 'backup_destination_uri')
wal_destination_uri: "local-fs://{{ PGBACKUP }}/wal" # Путь к каталогу архива WAL
restore_instance_name: NAME_UUID # Наименование экземпляра БД для восстановления
copywala_archive_settings:
upload_params:
part_payload_size: 32MB # Размер части передаваемых данных
checksum_algorithm: CRC32 # Выбор алгоритма вычисления контрольной суммы. Допустимые значения: DISABLED, CRC32, SHA256
compression_algorithm: S2 # Выбор алгоритма сжатия данных при создании РК. Допустимые значения: DISABLED, ZSTD, S2
copywala_backup_policy:
strategy: "pbr.policy.backup.strategy.full" # Выбор стратегии резервного копирования ('pbr.policy.backup.strategy.*', где * = full, archive или delta)
fast_checkpoint: false # Флаг для переключения типа контрольной точки, по умолчанию 'spread'. При включении запускает принудительное создание контрольной точки сразу при начале создания базовой РК
workers_no: 2 # Количество параллельных потоков, которые бэкап выполняет одновременно
progress_latency: 0.025 # Шаг в долях от размера бэкапа, на котором сообщается прогресс
read_direct_io: false # Режим чтения данных из файлов, исключая использование кеша ОС
verify_page_checksums: false # Активация проверки контрольных сумм страниц во время исполнения РК
copywala_log:
path: "{{ PGLOGS }}/pangolin-copywala/pangolin-copywala.log" # Путь до лог-файла
max_size: 100 # Максимальный размер лог-файла в мегабайтах
max_age: 90 # Максимальный возраст лог-файла в днях
max_backups: 10 # Максимальное количество резервных копий лог-файлов, которые будут храниться. Если установлено значение '0', то количество файлов не ограничено
use_local_time: true # Параметр определяет, в каком формате будут записываться метки времени в имена файлов при ротации. Если выбрано 'true', используется локальное системное время, при 'false' – UTС
compress_backups: false # Параметр определяет необходимость сжатия файлов. Если установить 'true', лог-файлы будут сжаты, если 'false', лог-файлы будут храниться без сжатия

####################################################### 3.1. ПРАВИЛА HBA ################################################################
# 'Pg_hba' настройки для пользователей 'as_admin'/'as_admin_read', 'all-sa-pam-group' и другие правила (недопустимо использование разделителя "\n")

ldap_server: '' # DNS имя сервера LDAP
ldap_bind_tuz_name: '' # Имя ТУЗ для LDAP
ldap_bind_tuz_password: '' # Пароль для ТУЗ для LDAP
# LDAP параметры для подключаемых модулей аутентификации
ldap_pam_parameters: 'ldapserver={{ ldap_server }} ldapport=<port> ldapprefix="cn=" ldapsuffix="<@ldapsuffix>"'

# LDAP параметры для Active Directory
ldap_users_parameters: 'ldapserver="{{ ldap_server }}" ldapport=<port> ldapbasedn="" ldapbinddn=""
ldapbindpasswd="{{ ldap_bind_tuz_password }}" ldapsearchfilter="(&(objectCategory=person)(objectClass=user)(cn=$username))"'

update_tuz_rules: [ 'host all cron, {{ user_for_backup }} 0.0.0.0/0 scram-sha-256', 'host all +as_TUZ 0.0.0.0/0 md5' ]
install_tuz_rules: ['host all +as_TUZ, {{ user_for_backup }} 0.0.0.0/0 scram-sha-256']

hba_rules: ['host all +all-sa-pam-group 0.0.0.0/0 ldap {{ ldap_pam_parameters }}',
'host all +as_admin, +as_admin_read 0.0.0.0/0 ldap {{ ldap_users_parameters }}',
'host all zabbix_oasubd 0.0.0.0/0 scram-sha-256',
'host all auditor 0.0.0.0/0 scram-sha-256',
'host all monitoring_php 0.0.0.0/0 scram-sha-256'] # Пример ['правило 1', 'правило 2']

######################################################################################## 3.2. НАСТРОЙКИ БЕЗОПАСНОГО ПОДКЛЮЧЕНИЯ (SSL) ########################################################################################
mtls_support: false # Включает режим SSL между компонентами кластера
pkcs12_plugin_enable: false # Включает поддержку PKCS12
pkcs12_use_ca_chain_from_container: false # Если значение 'false' то необходимо заполнить поля параметра 'root_ca_file' или 'root_ca_path'
pkcs12_encrypt_passphrase: true # Если значение 'true' то пароль в файле конфигурации будет засекречен
pkcs12_update_local_cert_files: false # Если значение 'true' то произойдет обновление локальных сертификатов с удаленного сервера

pg_certs_pwd:
root_ca_path: "{{ '' | default('/pg_ssl/root_dir', true) }}" # Путь к каталогу с сертификатами корневого центра сертификации для всех нод/компонентов
crl_path: "" # Путь к папке содержащей CRL файлы
pg:
crl_file: "" # Путь до CRL файла
root_ca_file: "{{ '' | default('/pg_ssl/root.crt', true) }}" # Корневой CA сертификат для всех нод/компонентов
server_cert: "{{ '' | default('/pg_ssl/server.crt', true) }}" # Основной сертификат сервера для каждой ноды
server_key: "{{ '' | default('/pg_ssl/server.key', true) }}" # Основной закрытый ключ сервера для каждой ноды
server_p12:
use_remote_pki: false # Если значение 'true' сертификат будет загружен/сгенерирован с помощью SecMan
p12_secman: # Атрибуты сертификата для его генерации/поиска в SecMan
name: "{{ '' | default(ansible_fqdn, true) }}"
common_name: "{{ '' | default(ansible_fqdn, true) }}"
email: "{{ '' | default('test@test.ru', true) }}"
alt_names: "{{ '' | default(ansible_fqdn, true) }}"
ip_sans: "{{ '' | default(ansible_default_ipv4.address, true) }}"
other_sans: "{{ '' | default('', true) }}"
exclude_cn_from_sans: "{{ '' | default(false, true) }}"
p12_path: "{{ '' | default('/pg_ssl/intermediate/server.p12', true) }}" # Путь к контейнеру PKCS12 для сертификата сервера
p12_pass: "{{ '' | default('test123', true) }}" # Пароль к контейнеру PKCS12 для сертификата сервера
p12_config_path: "{{ '' | default('/pg_ssl/intermediate/server.p12.cfg', true) }}" # Путь к файлу конфигурации с контейнером PKCS12 и засекреченным паролем к сертификату сервера
pgbouncer:
crl_file: "" # Путь до CRL файла
root_ca_file: "{{ '' | default('/pg_ssl/root.crt', true) }}" # Сертификат корневого центра сертификации для всех нод/компонентов
server_cert: "{{ '' | default('/pg_ssl/pgbouncer_server.crt', true) }}" # Основной сертификат сервера для каждой ноды
server_key: "{{ '' | default('/pg_ssl/pgbouncer_server.key', true) }}" # Основной закрытый ключ сервера для каждой ноды
server_p12:
use_remote_pki: false # Если значение 'true' сертификат будет загружен/сгенерирован с помощью SecMan
p12_secman: # Атрибуты сертификата для его генерации/поиска в SecMan
name: "{{ '' | default(ansible_fqdn, true) }}"
common_name: "{{ '' | default(ansible_fqdn, true) }}"
email: "{{ '' | default('test@test.ru', true) }}"
alt_names: "{{ '' | default(ansible_fqdn, true) }}"
ip_sans: "{{ '' | default(ansible_default_ipv4.address, true) }}"
other_sans: "{{ '' | default('', true) }}"
exclude_cn_from_sans: "{{ '' | default(false, true) }}"
p12_path: "{{ '' | default('/pg_ssl/intermediate/pgbouncer_server.p12', true) }}" # Путь к контейнеру PKCS12 для сертификата сервера
p12_pass: "{{ '' | default('test123', true) }}" # Пароль к контейнеру PKCS12 для сертификата сервера
p12_config_path: "{{ '' | default('/pg_ssl/intermediate/pgbouncer_server.p12.cfg', true) }}" # Путь к файлу конфигурации с контейнером PKCS12 и засекреченным паролем к сертификату сервера
client_cert: "{{ '' | default('/pg_ssl/pgbouncer.crt', true) }}" # Сертификат для подключения pgbouncer к PGSE
client_key: "{{ '' | default('/pg_ssl/pgbouncer.key', true) }}" # Пароль для подключения pgbouncert к PGSE
client_p12:
use_remote_pki: false # Если значение 'true' сертефикат будет загружен/сгенерирован с помощью SecMan
p12_secman: # Атрибуты сертификата для его генерации/поиска в SecMan
name: "{{ '' | default('pgbouncer', true) }}"
common_name: pgbouncer
email: "{{ '' | default('test@test.ru', true) }}"
alt_names: "{{ '' | default(ansible_fqdn, true) }}"
ip_sans: "{{ '' | default(ansible_default_ipv4.address, true) }}"
other_sans: "{{ '' | default('', true) }}"
exclude_cn_from_sans: "{{ '' | default(false, true) }}"
p12_path: "{{ '' | default('/pg_ssl/intermediate/pgbouncer.p12', true) }}" # Путь к контейнеру PKCS12 для сертификата пользователя pgbouncerer
p12_pass: "{{ '' | default('test123', true) }}" # Путь к контейнеру PKCS12 для сертификата пользователяpgbouncerer
p12_config_path: "{{ '' | default('/pg_ssl/intermediate/pgbouncer.p12.cfg', true) }}" # Путь к файлу конфигурации с контейнером PKCS12 и засекреченным паролем к сертификату пользователя pgbouncer
patroni:
crl_file: "" # Путь до CRL файла
root_ca_file: "{{ '' | default('/pg_ssl/root.crt', true) }}" # Сертификат корневого центра сертификации для всех нод/компонентов
server_cert: "{{ '' | default('/pg_ssl/patroni_server.crt', true) }}" # Основной сертификат сервера для каждой ноды
server_key: "{{ '' | default('/pg_ssl/patroni_server.key', true) }}" # Основной закрытый ключ сервера для каждой ноды
server_p12:
use_remote_pki: false # Если значение 'true' сертефикат будет загружен/сгенерирован с помощью SecMan
p12_secman: # Атрибуты сертификата для его генерации/поиска в SecMan
name: "{{ '' | default(ansible_fqdn, true) }}"
common_name: "{{ '' | default(ansible_fqdn, true) }}"
email: "{{ '' | default('test@test.ru', true) }}"
alt_names: "{{ '' | default(ansible_fqdn, true) }}"
ip_sans: "{{ '' | default(ansible_default_ipv4.address, true) }}"
other_sans: "{{ '' | default('', true) }}"
exclude_cn_from_sans: "{{ '' | default(false, true) }}"
p12_path: "{{ '' | default('/pg_ssl/intermediate/patroni_server.p12', true) }}" # Путь к контейнеру PKCS12 для сертификата сервер
p12_pass: "{{ '' | default('test123', true) }}" # Пароль к контейнеру PKCS12 для сертификата сервера
p12_config_path: "{{ '' | default('/pg_ssl/intermediate/patroni_server.p12.cfg', true) }}" # Путь к файлу конфигурации с контейнером PKCS12 и засекреченным паролем к сертификату сервера
client_cert: "{{ '' | default('/pg_ssl/patroni.crt', true) }}" # Сертификат пользователя patroni
client_key: "{{ '' | default('/pg_ssl/patroni.key', true) }}" # Закрытый ключ пользователя patroni
client_p12:
use_remote_pki: false # Если значение 'true' сертефикат будет загружен/сгенерирован с помощью SecMan
p12_secman: # Атрибуты сертификата для его генерации/поиска в SecMan
name: "{{ '' | default('patroni', true) }}"
common_name: patroni
email: "{{ '' | default('test@test.ru', true) }}"
alt_names: "{{ '' | default(ansible_fqdn, true) }}"
ip_sans: "{{ '' | default(ansible_default_ipv4.address, true) }}"
other_sans: "{{ '' | default('', true) }}"
exclude_cn_from_sans: "{{ '' | default(false, true) }}"
p12_path: "{{ '' | default('/pg_ssl/intermediate/patroni.p12', true) }}" # Путь к контейнеру PKCS12 для сертификата пользователя patroni
p12_pass: "{{ '' | default('test123', true) }}" # Пароль к контейнеру PKCS12 для сертификата пользователя patroni
p12_config_path: "{{ '' | default('/pg_ssl/intermediate/patroni.p12.cfg', true) }}" # Путь к файлу конфигурации с контейнером PKCS12 и засекреченным паролем к сертификату пользователя patroni
pangolin_dcs:
crl_file: "{{ '' | default('/pg_ssl/crl/intermediate.crl', true) }}" # Путь до CRL файла
root_ca_file: "{{ '' | default('/pg_ssl/root.crt', true) }}" # Корневые CA-сертификаты для всех компонентов/узлов
cert: "{{ '' | default('/pg_ssl/patroni_server.crt', true) }}" # Сертификат для Pangolin DCS
key: "{{ '' | default('/pg_ssl/patroni_server.key', true) }}" # Частный ключ для Pangolin DCS
p12:
use_remote_pki: false # Если включено, сертификаты будут подтянуты/сгенерированы с использованием хранилища SecMan
p12_secman: # Атрибуты сертификата для для их генерации/поиска в хранилище SecMan
name: "{{ '' | default(ansible_fqdn, true) }}"
common_name: "{{ '' | default(ansible_fqdn, true) }}"
email: "{{ '' | default('test@test.ru', true) }}"
alt_names: "{{ '' | default(ansible_fqdn, true) }}"
ip_sans: "{{ '' | default(ansible_default_ipv4.address, true) }}"
other_sans: "{{ '' | default('', true) }}"
exclude_cn_from_sans: "{{ '' | default(false, true) }}"
p12_path: "{{ '' | default('/pg_ssl/intermediate/patroni_server.p12', true) }}" # Путь до контейнера PKCS12 для сертификатов сервера
p12_pass: "{{ '' | default('test123', true) }}" # Пароль к контейнеру PKCS12 для сертификатов сервера
p12_config_path: "{{ '' | default('/pg_ssl/intermediate/patroni_server.p12.cfg', true) }}" # Путь к конфигурационному файлу контейнера PKCS12 и засекреченному паролю для сертификатов сервера
pangolin_dcs_rest_api:
crl_file: "{{ '' | default('/pg_ssl/crl/intermediate.crl', true) }}" # Путь до файла CRL
root_ca_file: "{{ '' | default('/pg_ssl/root.crt', true) }}" # Корневые CA-сертификаты для всех компонентов/узлов
cert: "{{ '' | default('/pg_ssl/patroni_server.crt', true) }}" # Сертификат для Pangolin REST API
key: "{{ '' | default('/pg_ssl/patroni_server.key', true) }}" # Частный ключ дляr Pangolin REST API
p12:
use_remote_pki: false # Если включено, сертификаты будут подтянуты/сгенерированы с использованием хранилища SecMan
p12_secman: # Атрибуты сертификата для для их генерации/поиска в хранилище SecMan
name: "{{ '' | default(ansible_fqdn, true) }}"
common_name: "{{ '' | default(ansible_fqdn, true) }}"
email: "{{ '' | default('test@test.ru', true) }}"
alt_names: "{{ '' | default(ansible_fqdn, true) }}"
ip_sans: "{{ '' | default(ansible_default_ipv4.address, true) }}"
other_sans: "{{ '' | default('', true) }}"
exclude_cn_from_sans: "{{ '' | default(false, true) }}"
p12_path: "{{ '' | default('/pg_ssl/intermediate/patroni_server.p12', true) }}" # Путь к контейнеру PKCS12 для серверного сертификата
p12_pass: "{{ '' | default('test123', true) }}" # Пароль к контейнеру PKCS12 для серверного сертификата
p12_config_path: "{{ '' | default('/pg_ssl/intermediate/patroni_server.p12.cfg', true) }}" # Путь к конфигурационному файлу контейнера PKCS12 и засекреченному паролю для сертификатов сервера
etcd:
server_cert: "{{ '' | default('/pg_ssl/etcd.crt', true) }}" # Сертефикат для etcd кластера
server_key: "{{ '' | default('/pg_ssl/etcd.key', true) }}" # Закрытый ключ для etcd кластера
root_ca: "{{ '' | default('/pg_ssl/root.crt', true) }}" # Сертификат корневого центра сертификации для etcd кластера
crl_file: "" # Путь к файлу CRL для etcd

pangolin_certs_rotate:
enable: true # Устанавливает сервис pangolin-certs-rotate (только процесс установки)
log:
directory: "{{ pangolin_certs_rotate_log_dir }}" # Путь к разделу с логами
filename: pangolin-certs-rotate-%Y-%m-%d_%H%M%S.log # Имя лога
level: info # Уровень логирования
destination: console,file # Метод логирования
certs:
enable_update: false # Включает/отключает автоматическое обновление серnbфикатов
poll_period_in_min: 60 # Срок действия сертификата (в минутах)
retry_interval_in_sec: 30 # Задержка-ожидание для перезапуска в случае ошибки (в секундах)
retry_attempts_num: 1 # Количество попыток после неудачного запуска
vault_connection_timeout: 10000 # Максимальное время в миллисекундах, отведенное на этап подключения к хранилищу сертификатов
vault_timeout: 10000 # Максимальное время в миллисекундах, отведенное на один запрос к хранилищу сертификатов (включая vault_connection_timeout)
watch: # Множество обновляемых сертификатов
- locations: # Конфигурационные файлы сертификатов
paths:
- "{%- if (pg_certs_pwd.pg.server_p12.use_remote_pki or pkcs12_update_local_cert_files) and inventory_hostname in groups['postgres_nodes'] -%}\
{{ pg_certs_pwd.pg.server_p12.p12_config_path }}\
{% endif %}"
on_update: # Команды для выполнения после обновления (как минимум одного из сертификатов)
- "{%- if 'patroni' in configuration_type | d('') -%}\
{% if not systemctl_unit_on_user | d(false) %}sudo systemctl{% else %}systemctl --user{% endif %} reload pangolin-manager\
{% else %}\
{% if not systemctl_unit_on_user | d(false) %}sudo systemctl{% else %}systemctl --user{% endif %} reload postgresql\
{% endif %}"
- "{%- if 'pgbouncer' in configuration_type | d('') and inventory_hostname in groups['postgres_nodes'] -%}\
{% if not systemctl_unit_on_user | d(false) %}sudo systemctl{% else %}systemctl --user{% endif %} reload pangolin-pooler\
{% endif %}"
- locations: # Конфигурационный файл сертификата
paths:
- "{%- if 'pgbouncer' in configuration_type | d('') and (pg_certs_pwd.pgbouncer.server_p12.use_remote_pki or pkcs12_update_local_cert_files) and inventory_hostname in groups['postgres_nodes'] -%}\
{{ pg_certs_pwd.pgbouncer.server_p12.p12_config_path }}\
{% endif %}"
on_update: # Команды для выполнения после обновления (как минимум одного из сертификатов)
- "{%- if 'patroni' in configuration_type | d('') -%}\
{% if not systemctl_unit_on_user | d(false) %}sudo systemctl{% else %}systemctl --user{% endif %} reload pangolin-manager\
{% else %}\
{% if not systemctl_unit_on_user | d(false) %}sudo systemctl{% else %}systemctl --user{% endif %} reload postgresql\
{% endif %}"
- "{%- if 'pgbouncer' in configuration_type | d('') and inventory_hostname in groups['postgres_nodes'] -%}\
{% if not systemctl_unit_on_user | d(false) %}sudo systemctl{% else %}systemctl --user{% endif %} reload pangolin-pooler\
{% endif %}"
- locations: # Конфигурационный файл сертификата
paths:
- "{%- if 'patroni' in configuration_type | d('') and (pg_certs_pwd.patroni.server_p12.use_remote_pki or pkcs12_update_local_cert_files) -%}\
{{ pg_certs_pwd.patroni.server_p12.p12_config_path }}\
{% endif %}"
on_update: # Команды для выполнения после обновления (как минимум одного из сертификатов)
- "{%- if 'patroni' in configuration_type | d('') -%}\
{% if not systemctl_unit_on_user | d(false) %}sudo systemctl{% else %}systemctl --user{% endif %} reload pangolin-manager\
{% endif %}"
- locations: # Конфигурационный файл сертификата
paths:
- "{%- if 'patroni' in configuration_type | d('') and (pg_certs_pwd.patroni.client_p12.use_remote_pki or pkcs12_update_local_cert_files) and inventory_hostname in groups['postgres_nodes'] -%}\
{{ pg_certs_pwd.patroni.client_p12.p12_config_path }}\
{% endif %}"
on_update: # Команды для выполнения после обновления (как минимум одного из сертификатов)
- "{%- if 'patroni' in configuration_type | d('') and inventory_hostname in groups['postgres_nodes'] -%}\
{% if not systemctl_unit_on_user | d(false) %}sudo systemctl{% else %}systemctl --user{% endif %} reload pangolin-manager\
{% endif %}"
- locations: # Конфигурационный файл сертификата
paths:
- "{%- if 'pgbouncer' in configuration_type | d('') and (pg_certs_pwd.pgbouncer.client_p12.use_remote_pki or pkcs12_update_local_cert_files) and inventory_hostname in groups['postgres_nodes'] -%}\
{{ pg_certs_pwd.pgbouncer.client_p12.p12_config_path }}\
{% endif %}"
on_update:
- "{%- if 'pgbouncer' in configuration_type | d('') and inventory_hostname in groups['postgres_nodes'] -%}\
{% if not systemctl_unit_on_user | d(false) %}sudo systemctl{% else %}systemctl --user{% endif %} reload pangolin-pooler\
{% endif %}"
- locations: # Конфигурационный файл сертификата
paths:
- "{%- if pangolin_dcs_enable -%}\
{{ pg_certs_pwd.pangolin_dcs.p12.p12_path }}\
{% endif %}"
on_update:
- "{%- if pangolin_dcs_enable -%}\
{% if not systemctl_unit_on_user | d(false) %}sudo systemctl{% else %}systemctl --user{% endif %} reload pangolin-manager\
{% endif %}"
- locations: # Конфигурационный файл сертификата
paths:
- "{%- if pangolin_dcs_enable -%}\
{{ pg_certs_pwd.pangolin_dcs_rest_api.p12.p12_path }}\
{% endif %}"
on_update:
- "{%- if pangolin_dcs_enable -%}\
{% if not systemctl_unit_on_user | d(false) %}sudo systemctl{% else %}systemctl --user{% endif %} reload pangolin-manager\
{% endif %}"
crl:
enable_update: false # Включение/выключение автоматического обновления файлов CRL
poll_period_in_min: 60 # Период проверки наличия обновленных файлов CRL
retry_interval_on_expire_in_sec: 30 # Интервал ожидания для повторной попытки загрузки CRL после даты публикации CRL или истечения срока действия
retry_interval_on_failure_in_sec: 30 # Интервал ожидания для повторной попытки загрузки CRL после неудачи
retry_attempts_num_on_failure: 1 # Количество попыток загрузки CRL по списку URI для данного пути к файлу CRL после неудачи
crl_file_perm: 0644 # Права, установленные на загруженные файлы CRL

pgbouncer_client_tls_sslmode: "{{ '' | default('prefer', true) }}" # Режим SSL для подключений со стороны пользователей (значения: 'prefer','require','verify-ca','verify-full')
etcd_ciphers_suits: "{{ '' | default('TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384', true) }}" # Список поддерживаемых TLS-алгоритмов шифрования между сервером/клиентом и узлами в etcd
allowlist_rest_api: "" # Список хостов с доступом к небезопасным запросам к REST API patroni

ssl_min_protocol_version: 'TLSv1.2' # Минимальная версия протокола
ssl_tls13_ciphers: "" # Список шифров (разделение значений через двоеточия), разрешенных для подключений с использованием протокола TLS версии 1.3

######################################################################################## 3.3. НАСТРОЙКИ СЕРТИФИКАТА ХРАНИЛИЩА (VAULT) ########################################################################################
VAULT_HOST_CERT: "{{ '' }}"
VAULT_PROTOCOL_CERT: "{{ '' | default('2', true) }}"
VAULT_PORT_CERT: "{{ '' | default('8200', true) }}"
VAULT_PREFIX_CERT: "{{ '' | default('', true) }}"
VAULT_NAMESPACE_CERT: "{{ '' | default('', true) }}"
VAULT_AUTH_POINT_CERT: "{{ '' | default('', true) }}"
VAULT_LOGIN_CERT: "{{ '' | default('adminencryption', true) }}"
VAULT_PASSWORD_CERT: "{{ '' | default('autotest', true) }}"
VAULT_SUFFIX_CERT: "{{ '' | default('postgresql', true) }}"
VAULT_CLUSTER_ID_CERT: "{{ '' | default('qwerty', true) }}"
VAULT_CA_PATH_CERT: "{{ pg_certs_pwd.root_ca_path }}"
VAULT_CONFIG_CERT: "{{ pangolin_security_utilities_files.new_conf_path }}/enc_connection_settings_cert.cfg"
VAULT_CONFIG: "{{ pangolin_security_utilities_files.new_conf_path }}/enc_connection_settings.cfg"

######################################################################################## 3.4. НАСТРОЙКИ ОКРУЖЕНИЯ ########################################################################################

# linux_repos:
# - name: EPEL7
# file: mirror
# baseurl: {{URL_linux_repos}}
# enabled: true

######################################################################################## 3.5. НАСТРОЙКИ КОНФИГУРАЦИИ КОМПОНЕНТОВ ########################################################################################
### НАСТРОЙКИ DBMS ###
pg_synchronous_mode: true # Режим репликации (асинхронный или синхронный)
pg_synchronous_mode_strict: false # Переключение в асинхронный режим (строгая или нестрогая синхронная репликация)
log_prefix: '%t [%p]: [%l-1] app=%a,user=%u,db=%d,client=%h,type=%b ' # Строка, отвечающая за стиль и разметку вывода сообщений в начале каждой новой строки журнала
timezone: 'Europe/Moscow' # Установка часового пояса в СУБД

#### НАСТРОЙКИ ETCD ####
etcd_timeout: 5000 # Время, в течение которого ведомый узел будет работать без получения уведомления, прежде чем попытаться стать лидером самостоятельно (в милисекундах)
etcd_interval: 1000 # Значение частоты когда сервер-лидер уведомляет ведомые узлы, что он все еще лидирует (в милисекундах)
upd_change_dcs_timings: # Изменение времени DCS перед обновлением
enable: false
retry_timeout: 60
ttl: 135

pgbouncer_ndc_suspending_timeout: 0 # Интервал ожидания для автоматического переключения и остановки службы клиентского подключения (в секундах)

timescaledb_license: apache # Pangolin-timescaledb тип лицензии
timescaledb_update_ver: false # Обновление версии Pangolin-timescaledb до максимально доступной
extensions_update_ver: true # Произвести обновление версии сторонних расширений. Только для обновления исполняемых файлов
########################################################## 3.6. ПАРОЛИ #############################################################
# pgbouncerPas$superStronG9@34
pgbouncer_scram_password: SCRAM-SHA-256$4096:<hash>

postgres_linux_pass: <password>
kmadmin_pg_linux_pass: <password>
postgres_db_pass: <password>
patroni_password: <password>
pg_backup_user_passwd: <password>
patroni_yml_pass: <password>

######################################################################################## 3.7. ПАРАМЕТРЫ ДИАГНОСТИКИ И МОНИТОРИНГА ########################################################################################
pg_profile:
is_enable: true # Включение/выключение 'pg_profile'
topn: 20 # Количество общих объектов (запросов, отношений) для каждой отсортированной таблицы
max_sample_age: 7 # Скрок жизни образцов в днях
track_sample_timings: 'off' # Отслекживание точного времени сбора образцов
stats_periods: '0,30 * * * *' # Периоды времени для задач 'crone' с 'pg_profile'
db_install: postgres # База данных по умолчанию для установки

pg_stat_track_activities: 'on' # Включение мониторинга текущего выполняемого командой серверного процесса
pg_stat_track_counts: 'on' # Управление сбором статистики о доступе к таблицам и индексам
pg_stat_track_io_timing: 'on' # Включение мониторинга времени чтения и записи блоков
pg_stat_track_functions: 'none' # Включение отслеживания использования определенных пользователем функций
pg_stat_statements_track: 'top' # Функция для управления тем, какие запросы отслеживаются модулем
pg_stat_statements_max: '5000' # Максимальное число отслеживаемых модулем запросом (максимальное число строк в представлении 'pg_stat_statements')
pg_enable_monitor_object_modification_date: 'on' # Включение мониторинга создания объектов в БД
pg_object_modification_date_keep_interval: '1 week' # Параметр интервала изменения/удаления объекта

pg_stat_kcache_is_enable: true # Включение/выключение 'pg_stat_kcache'
pg_stat_kcache_linux_hz: -1 # Параметр 'CONGIX_HZ' в Linux (по умолчанию: '-1' для попытки определения его при запуске) (диапазон значения: [-1 - 2147483647])

relnblocks_enable: 'on' # Включение механизма подсчета
relnblocks_hash_max_size: '1000000' # Максимальное количество отношений (имеющих физические файлы на диске) в базе данных (диапазон значения: [500 - 1431650303])
relnblocks_hash_init_size: '1024' # Количество отношений (имеющих физические файлы на диске) в базе данных, для которых будет выделена кеш (диапазон значения: [500 - 1431650303])
relnblocks_hash_max_db: '1024' # Максимальное количество баз данных (имеющих физические файлы на диске) (диапазон значения: [4 - 1431650303])
relnblocks_hash_init_db: '20' # Ожидаемый предел количества записей в хеш-таблице для размеров отношений

performance_insights:
is_enable: false # Включение/выключение аналитики производительности
masking: 'partial' # Включение/выключение маскирования параметров запроса, параметров подключения и имени пользователя
sampling_enable: 'true' # Включение/выключение сбора данных
sampling_period: '5s' # Частота сбора данных
num_samples_in_ram: '12' # Время хранения данных об активности текущих сессий в памяти перед записью на диск
num_samples_in_files: '17280' # Время хранения данных об активности текущих сессий

setup_debug_symbols:
pangolin_backup_tools: false # Установить backup-tools-debuginfo пакет, включает отладочные символы для исходного пакета pangolin-backup-tools
pangolin_dbms: false # Установить dbms-debuginfo пакет, включает отладочные символы для исходного пакета pangolin-dbms-client package
pangolin_dbms_client: false # Установить dbms-client-debuginfo пакет, включает отладочные символы для исходного пакета pangolin-dbms-client
pangolin_manager: false # Установить manager-debuginfo пакет, включает отладочные символы для исходного пакета pangolin-manager
pangolin_pooler: false # Установить pooler-debuginfo пакет, включает отладочные символы для исходного пакета pangolin-pooler
pangolin_certs_rotate: false # Установить certs-rotate-debuginfo пакет, включает отладочные символы для исходного пакета pangolin-certs-rotate
pangolin_security_utilities: false # Установить security-utilities-debuginfo пакет, включает отладочные символы для исходного пакета pangolin-security-utilities
pangolin_auth_password: false # Установить auth_password-debuginfo пакет, включает отладочные символы для исходного пакета pangolin-auth-password
pangolin_untrusted_pltcl: false # Установить untrusted-pltcl-debuginfo пакет, включает отладочные символы для исходного пакета untrusted-pltcl
pangolin_untrusted_plperl: false # Установить untrusted-plperl-debuginfo пакет, включает отладочные символы для исходного пакета untrusted-plperl
pangolin_untrusted_plpython3: false # Установить untrusted-plpython3-debuginfo пакет, включает отладочные символы для исходного пакета untrusted-plpython3

######################################################################################## 3.8. ПАРАМЕТРЫ ПАРОЛЬНОЙ ПОЛИТИКИ ########################################################################################
password_policy_params:
is_temp_tuz_password: true # Определяет тип пароля (временный, либо нет) для пользователя ТУЗ
transport_password_mark_automatic: false # Настраивает правила определения пароля в качестве транспортного
transport_password_life_time: '0' # Определяет интервал времени жизни транспортного пароля
deny_default: 'off' # Запрещает использование политики паролей из 'postgresql.conf' или по умолчанию
reuse_time: '365 days' # Интервал повторного использования пароля уникального
in_history: '4' # Максимальное число сохраненных старых паролей
max_age: '0' # Срок действия пароля, после которого пароль считается просроченым
min_age: '0' # Промежуток времени, который должен пойти для повторного изменения пароля
grace_login_limit: '0' # Максимальное количество аутентификаций, доступных объекту ролевой модели после истечения срока действия пароля
grace_login_time_limit: '3 days' # Время после истечения срока действия пароля, в течение которого он продолжает работать
expire_warning: '7 days' # Время до истечения срока действия пароля, в течение которого пользователю будет выдано предупреждение
lockout: 'on' # Включение правила блокировки учетной записи в результате достижения максимального количества попыток входа с неверным паролем
lockout_duration: '24 hours' # Время, в течение которого учетная запись заблокирована после достижения максимального количества попыток входа с неверным паролем
max_failure: '6' # Максимальное количество неправильных паролей, введенных подряд, после достижения которого срабатывает блокировка пароля
failure_count_interval: '0' # Время, по истечении которого количество неправильных вводов пароля сбрасывается до нуля
check_syntax: 'on' # Включение правила аудита синтаксиса пароля (если применимо)
min_length: '16' # Минимальная длина пароля
illegal_values: 'on' # Включение правила проверки пароля по списку часто используемых паролей ('crack.h')
alpha_numeric: '3' # Минимальное количество цифр в пароле
min_alpha_chars: '0' # Минимальное количество прописных букв в пароле
min_special_chars: '1' # Минимальное количество специальных символов в пароле
min_uppercase: '1' # Минимальное количество заглавных букв в пароле
min_lowercase: '0' # Минимальное количество строчных букв в пароле
max_rpt_chars: '0' # Максимальное количество повторяющихся символов
track_login: 'off' # Правило, требующее пользователю запоминать время последней аутентификации
max_inactivity: '0' # Время после последней аутентификации, после которого объект ролевой модели будет заблокирован
use_password_strength_estimator: 'on' # Определяет необходимость использования библиотеки, которая будет проверять сложность пароля, вместо встроенного аудита пароля
password_strength_estimator_score: '3' # Минимальный рейтинг сложности пароля, разрешенный в системе
deduplicate_ssl_no_ssl_fail_auth_attepmts: 'on' # Включение механизма удаления дубликатов для повторяющихся попыток подключения к psql
allow_hashed_password: 'on' # Разрешить установку пароля в виде хеша

grace_authid:
enable: 'off' # Включение функциональности периода пониженного контроля
period: '0' # Срок действия пароля периода пониженного контроля в днях\минутах\секундах
skip_error: 'off' # Запрос обновления пароля пользователя без ошибок, если пароль периода пониженного контроля не может быть сохранен

######################################################################################## 3.9 ПАРАМЕТРЫ СГЕНЕРИРОВАННОГО ПАРОЛЯ ########################################################################################
rotate_password:
enable: false # Включение/выключение функции генерации пароля 'rotate_password'
num_rounds: '20' # Количество попыток генерации, если включены проверки списка

######################################################################################## 3.10 ПАРАМЕТРЫ МАСКИРОВАНИЯ ЗАПРОСОВ ########################################################################################
masking_mode: false

######################################################################################## 3.11 ПЕРЕМЕННЫЕ ПРОВЕРКИ ДИСКА ########################################################################################
disk_check_parameter: # Используется только при установке кластера
enable: False # Опция мониторинга файловой системы
disk_check_timeout: 5 # Время ожидания в секундах - частота проверки
disk_operation_timeout: 3 # Время ожидания завершения процесса чтения/записи
disk_retry_count: 3 # Счетчик критических отказов для переключения
force_failover_timeout: 0 # Задержка для старта Pangolin
disk_check_tablespaces_count: 128 # Параметр для использования разделяемой памяти

######################################################################################## 3.12 ПАРАМЕТРЫ PSQL ########################################################################################
psql_save_history: 'off' # Правило, разрешающее сохранение истории psql readline в файл

######################################################################################## 3.13 ПЕРЕМЕННЫЕ ГЛОБАЛЬНОЙ ИНДЕКСАЦИИ ########################################################################################
autounite:
enable: False # Опция для автоматического слияния при глобальной индексации
naptime: 60 # Время ожидания в секундах - задержка в секундах между выполнениями автоматической индексации в одной и той же базе данных
parent_children_size_ratio: 0 # Отношение общего размера дочерних индексов к размеру глобального индекса предка, если превышено, то будет выполнено автоматическое слияние
max_children_count: 0 # Максимальное количество дочерних индексов глобального индекса, которое не приводит к автоматическому слиянию
pause_period: '' # Период времени, в течение которого автоматическая индексация не работает. Пример формата: 11-13

######################################################################################## 3.14 ТРАССИРОВКА СЕССИЙ ########################################################################################
session_tracing:
enable: False # Включение функциональности отслеживания сессий
file_limit: -1 # Максимальное количество файлов для отслеживания, выраженное в килобайтах
default_path: "{{ PGDATA }}/tracing/" # Путь для хранения файлов отслеживания по умолчанию
default_level: 0 # Уровень отслеживания по умолчанию для пользователей в 'session_tracing_roles'
roles: "" # Роли в базе данных для мониторинга сессий, перечисление ролей через запятые. Пример: user, user1

######################################################################################## 3.15 ПУТИ ДО СИСТЕМНЫХ ЮНИТОВ ########################################################################################
systemctl_unit_on_user: false # Расположение unit-файлов компонентов Pangolin в пользовательской директории postgres и kmadmin_pg

######################################################################################## 4. НАСТРОЙКИ РЕЗЕРВНОГО КОПИРОВАНИЯ (опционально) ########################################################################################
user_for_backup: backup_user # Имя УЗ для резервного копирования

######################################################################################## 5. НАСТРОЙКИ PANGOLIN TUNER ########################################################################################
tuner_config: "{{ ('patroni' in configuration_type) | ternary('/etc/pangolin-manager/postgres.yml', '/pgdata/data/data/postgresql.conf') }}" # Путь до конфигурационного файла для настройки с помощью утилиты Pangolin Tuner