Список доступных конфигурационных параметров для автоматизированных сценариев установки и обновления
Сведения
Указанные параметры в данном разделе оформляется в рамках файла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