added: overriding postgresql configuration
This commit is contained in:
parent
53648b4a22
commit
f293d06c78
4 changed files with 73 additions and 11 deletions
|
@ -1,6 +1,8 @@
|
||||||
---
|
---
|
||||||
- name: Combining Pleroma config details
|
- name: Combining Pleroma config details
|
||||||
set_fact: pleroma="{{ pleroma_defaults | combine(pleroma, recursive=true) }}"
|
set_fact: pleroma="{{ pleroma_defaults | combine(pleroma, recursive=true) }}"
|
||||||
|
tags:
|
||||||
|
- always
|
||||||
|
|
||||||
- name: Installing and configuring PostgreSQL.
|
- name: Installing and configuring PostgreSQL.
|
||||||
include_tasks:
|
include_tasks:
|
||||||
|
|
|
@ -11,25 +11,52 @@
|
||||||
- setup
|
- setup
|
||||||
creates: /var/lib/postgresql/11/data/postgresql.conf
|
creates: /var/lib/postgresql/11/data/postgresql.conf
|
||||||
|
|
||||||
# -----------------------------------
|
- name: Postgres -- Ensuring that the additional directories exist.
|
||||||
# TODO: Take a look at the postgres
|
file:
|
||||||
# configuration file before going
|
name: "{{ item }}"
|
||||||
# into production.
|
state: directory
|
||||||
# -----------------------------------
|
mode: '0700'
|
||||||
- name: Postgres -- Ensure that pg_hba.conf is configured.
|
owner: postgres
|
||||||
|
group: postgres
|
||||||
|
loop:
|
||||||
|
- "{{ pleroma_postgres_log_dir }}"
|
||||||
|
- "{{ pleroma_postgres_confd }}"
|
||||||
|
|
||||||
|
- name: Postgres -- Ensuring that PostgreSQL is configured.
|
||||||
template:
|
template:
|
||||||
src: etc_postgresql_pg_hba.conf.j2
|
src: "{{ item.src }}"
|
||||||
dest: /etc/postgresql/pg_hba.conf
|
dest: "{{ item.dest }}"
|
||||||
owner: postgres
|
owner: postgres
|
||||||
group: postgres
|
group: postgres
|
||||||
mode: '0400'
|
mode: '0400'
|
||||||
notify: restart postgres
|
loop:
|
||||||
|
- { src: etc_postgresql_pg_hba.conf.j2, dest: "{{ pleroma_postgres_base_conf }}/pg_hba.conf" }
|
||||||
|
- { src: etc_postgresql_confd_postgresql_override.conf, dest: "{{ pleroma_postgres_confd }}/postgresql_override.conf" }
|
||||||
|
|
||||||
- name: Postgres -- Ensure that PostgreSQL is enabled and started.
|
- name: Postgres -- Ensuring that the symlink to the override config is present.
|
||||||
|
file:
|
||||||
|
group: postgres
|
||||||
|
mode: '0700'
|
||||||
|
owner: postgres
|
||||||
|
path: "{{ pleroma_postgres_confd_symlink }}"
|
||||||
|
src: "{{ pleroma_postgres_confd }}"
|
||||||
|
state: link
|
||||||
|
|
||||||
|
- name: Postgres -- Ensuring that the override config is included in the main config.
|
||||||
|
lineinfile:
|
||||||
|
group: postgres
|
||||||
|
line: "include = '{{ pleroma_postgres_confd_symlink }}/postgresql_override.conf'"
|
||||||
|
mode: '0400'
|
||||||
|
owner: postgres
|
||||||
|
path: "{{ pleroma_postgres_base_conf }}/postgresql.conf"
|
||||||
|
regexp: ^.*include\s=\s'.*'.*$
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Postgres -- Ensuring that PostgreSQL is enabled and started.
|
||||||
service:
|
service:
|
||||||
name: postgresql
|
name: postgresql
|
||||||
enabled: yes
|
enabled: yes
|
||||||
state: started
|
state: restarted
|
||||||
|
|
||||||
- name: Postgres -- Ensuring that Postgres is available before continuing.
|
- name: Postgres -- Ensuring that Postgres is available before continuing.
|
||||||
wait_for:
|
wait_for:
|
||||||
|
@ -44,6 +71,7 @@
|
||||||
postgresql_user:
|
postgresql_user:
|
||||||
db: postgres
|
db: postgres
|
||||||
encrypted: yes
|
encrypted: yes
|
||||||
|
login_unix_socket: "{{ pleroma_postgres_unix_socket_dir }}"
|
||||||
name: "{{ pleroma.config.db.user }}"
|
name: "{{ pleroma.config.db.user }}"
|
||||||
password: "{{ pleroma.config.db.password }}"
|
password: "{{ pleroma.config.db.password }}"
|
||||||
state: present
|
state: present
|
||||||
|
@ -55,6 +83,7 @@
|
||||||
postgresql_db:
|
postgresql_db:
|
||||||
conn_limit: "20"
|
conn_limit: "20"
|
||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
|
login_unix_socket: "{{ pleroma_postgres_unix_socket_dir }}"
|
||||||
name: "{{ pleroma.config.db.name }}"
|
name: "{{ pleroma.config.db.name }}"
|
||||||
owner: "{{ pleroma.config.db.user }}"
|
owner: "{{ pleroma.config.db.user }}"
|
||||||
state: present
|
state: present
|
||||||
|
@ -66,6 +95,7 @@
|
||||||
postgresql_ext:
|
postgresql_ext:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
db: "{{ pleroma.config.db.name }}"
|
db: "{{ pleroma.config.db.name }}"
|
||||||
|
login_unix_socket: "{{ pleroma_postgres_unix_socket_dir }}"
|
||||||
state: present
|
state: present
|
||||||
loop:
|
loop:
|
||||||
- citext
|
- citext
|
||||||
|
|
24
templates/etc_postgresql_confd_postgresql_override.conf
Normal file
24
templates/etc_postgresql_confd_postgresql_override.conf
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# CONNECTIONS AND AUTHENTICATION
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
listen_addresses = 'localhost'
|
||||||
|
port = 5432
|
||||||
|
unix_socket_directories = '{{ pleroma_postgres_unix_socket_dir }}'
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# REPORTING AND LOGGING
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
log_destination = 'stderr'
|
||||||
|
logging_collector = on
|
||||||
|
log_directory = '{{ pleroma_postgres_log_dir }}'
|
||||||
|
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
|
||||||
|
log_file_mode = 0600
|
||||||
|
log_truncate_on_rotation = off
|
||||||
|
log_rotation_age = 1d
|
||||||
|
log_rotation_size = 5MB
|
||||||
|
log_min_messages = info
|
||||||
|
log_min_error_statement = error
|
||||||
|
log_min_duration_statement = 1000
|
||||||
|
log_timezone = 'UTC'
|
|
@ -3,3 +3,9 @@ pleroma_ssl_folder: /etc/ssl/pleroma
|
||||||
pleroma_ssl_privateKeyPath: "{{ pleroma_ssl_folder }}/pleroma.key"
|
pleroma_ssl_privateKeyPath: "{{ pleroma_ssl_folder }}/pleroma.key"
|
||||||
pleroma_ssl_csrPath: "{{ pleroma_ssl_folder }}/pleroma.csr"
|
pleroma_ssl_csrPath: "{{ pleroma_ssl_folder }}/pleroma.csr"
|
||||||
pleroma_ssl_selfSignedCertPath: "{{ pleroma_ssl_folder }}/pleroma.crt"
|
pleroma_ssl_selfSignedCertPath: "{{ pleroma_ssl_folder }}/pleroma.crt"
|
||||||
|
|
||||||
|
pleroma_postgres_log_dir: /var/log/postgresql
|
||||||
|
pleroma_postgres_base_conf: /etc/postgresql
|
||||||
|
pleroma_postgres_confd: "{{ pleroma_postgres_base_conf }}/conf.d"
|
||||||
|
pleroma_postgres_confd_symlink: /var/lib/postgresql/11/data/pg_conf.d
|
||||||
|
pleroma_postgres_unix_socket_dir: /var/run/postgresql
|
||||||
|
|
Reference in a new issue