# Patroni Configuration for {{ inventory_hostname }} # Generated by Ansible scope: {{ patroni_scope }} namespace: {{ patroni_namespace }} name: {{ inventory_hostname }} restapi: listen: 0.0.0.0:8008 connect_address: {{ ansible_host }}:8008 consul: host: {{ consul_host }}:8500 register_service: true bootstrap: dcs: ttl: 30 loop_wait: 10 retry_timeout: 10 maximum_lag_on_failover: 1048576 postgresql: use_pg_rewind: true use_slots: true parameters: # Performance max_connections: 200 shared_buffers: 256MB effective_cache_size: 768MB maintenance_work_mem: 64MB checkpoint_completion_target: 0.9 wal_buffers: 16MB default_statistics_target: 100 random_page_cost: 1.1 effective_io_concurrency: 200 work_mem: 2621kB huge_pages: off min_wal_size: 1GB max_wal_size: 4GB max_worker_processes: 4 max_parallel_workers_per_gather: 2 max_parallel_workers: 4 max_parallel_maintenance_workers: 2 # Replication wal_level: replica hot_standby: "on" max_wal_senders: 10 max_replication_slots: 10 hot_standby_feedback: "on" # Logging log_destination: 'stderr' logging_collector: 'on' log_directory: 'log' log_filename: 'postgresql-%Y-%m-%d_%H%M%S.log' log_rotation_age: '1d' log_rotation_size: '100MB' log_min_duration_statement: 1000 log_checkpoints: 'on' log_connections: 'on' log_disconnections: 'on' log_lock_waits: 'on' # Archive (for pgBackRest) archive_mode: "on" archive_command: 'pgbackrest --stanza={{ patroni_scope }} archive-push %p' initdb: - encoding: UTF8 - data-checksums pg_hba: - host replication replicator 0.0.0.0/0 scram-sha-256 - host all all 0.0.0.0/0 scram-sha-256 users: {{ postgres_user }}: password: {{ postgres_password }} options: - createrole - createdb replicator: password: {{ replicator_password | default('replicator_secret') }} options: - replication postgresql: listen: 0.0.0.0:5432 connect_address: {{ ansible_host }}:5432 data_dir: {{ postgres_data_dir }} bin_dir: /usr/lib/postgresql/{{ postgres_version }}/bin config_dir: {{ postgres_config_dir }} pgpass: /var/lib/postgresql/.pgpass authentication: replication: username: replicator password: {{ replicator_password | default('replicator_secret') }} superuser: username: postgres password: {{ postgres_superuser_password | default('postgres_secret') }} rewind: username: rewind password: {{ rewind_password | default('rewind_secret') }} parameters: unix_socket_directories: '/var/run/postgresql' pg_hba: - local all all peer - host all all 127.0.0.1/32 scram-sha-256 - host all all 0.0.0.0/0 scram-sha-256 - host replication replicator 0.0.0.0/0 scram-sha-256 tags: nofailover: false noloadbalance: false clonefrom: false nosync: false