Skip to content

Commit 4910c86

Browse files
author
Greg Clough
committed
Allow all initdb options, checksums, waldir, etc
1 parent 2e0349a commit 4910c86

File tree

3 files changed

+34
-0
lines changed

3 files changed

+34
-0
lines changed

defaults/main.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
# Basic settings
44
postgresql_version: 9.6
55
postgresql_encoding: "UTF-8"
6+
postgresql_data_checksums: false
7+
postgresql_pwfile: ""
8+
69
postgresql_locale_parts:
710
- "en_US" # Locale
811
- "UTF-8" # Encoding
@@ -85,6 +88,7 @@ postgresql_ident_file: "{{ postgresql_conf_directory }}/pg_ident.conf"
8588
# Use data in another directory
8689
postgresql_varlib_directory_name: "postgresql"
8790
postgresql_data_directory: "/var/lib/{{ postgresql_varlib_directory_name }}/{{ postgresql_version }}/{{ postgresql_cluster_name }}"
91+
postgresql_wal_directory: ""
8892
postgresql_pid_directory: "/var/run/postgresql"
8993
# If external_pid_file is not explicitly set, on extra PID file is written
9094
postgresql_external_pid_file: "{{ postgresql_pid_directory }}/{{ postgresql_version }}-{{ postgresql_cluster_name }}.pid"

tasks/configure.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,26 @@
1616
mode: 0700
1717
register: pgdata_dir_exist
1818

19+
- name: PostgreSQL | Make sure the postgres WAL directory exists
20+
file:
21+
path: "{{ postgresql_wal_directory }}"
22+
owner: "{{ postgresql_service_user }}"
23+
group: "{{ postgresql_service_group }}"
24+
state: directory
25+
mode: 0700
26+
register: pgwal_dir_exist
27+
when: postgresql_wal_directory != ""
28+
29+
- name: PostgreSQL | Make sure the postgres log directory exists
30+
file:
31+
path: "{{ postgresql_log_directory }}"
32+
owner: "{{ postgresql_service_user }}"
33+
group: "{{ postgresql_service_group }}"
34+
state: directory
35+
mode: 0700
36+
register: pglog_dir_exist
37+
when: postgresql_log_directory != "pg_log"
38+
1939
- name: PostgreSQL | Ensure the locale for lc_collate and lc_ctype is generated | Debian
2040
become: yes
2141
locale_gen: name="{{ item }}" state=present
@@ -45,6 +65,11 @@
4565
pg_createcluster --start --locale {{ postgresql_locale }}
4666
-e {{ postgresql_encoding }} -d {{ postgresql_data_directory }}
4767
{{ postgresql_version }} {{ postgresql_cluster_name }}
68+
--
69+
{% if postgresql_data_checksums and postgresql_version | version_compare('9.3', '>=') %}--data-checksums{% endif %}
70+
{% if postgresql_pwfile != "" %}--pwfile={{ postgresql_pwfile }} {% endif %}
71+
{% if postgresql_wal_directory != "" and postgresql_version | version_compare('10', '<') %}--xlogdir={{ postgresql_wal_directory }} {% endif %}
72+
{% if postgresql_wal_directory != "" and postgresql_version | version_compare('10', '>=') %}--waldir={{ postgresql_wal_directory }} {% endif %}
4873
become: yes
4974
become_user: "{{ postgresql_service_user }}"
5075
when: ansible_os_family == "Debian" and postgresql_cluster_reset and pgdata_dir_exist.changed
@@ -59,6 +84,10 @@
5984
command: >
6085
{{ postgresql_bin_directory }}/initdb -D {{ postgresql_data_directory }}
6186
--locale={{ postgresql_locale }} --encoding={{ postgresql_encoding }}
87+
{% if postgresql_data_checksums and postgresql_version | version_compare('9.3', '>=') %}--data-checksums{% endif %}
88+
{% if postgresql_pwfile != "" %}--pwfile={{ postgresql_pwfile }} {% endif %}
89+
{% if postgresql_wal_directory != "" and postgresql_version | version_compare('10', '<') %}--xlogdir={{ postgresql_wal_directory }} {% endif %}
90+
{% if postgresql_wal_directory != "" and postgresql_version | version_compare('10', '>=') %}--waldir={{ postgresql_wal_directory }} {% endif %}
6291
become: yes
6392
become_user: "{{ postgresql_service_user }}"
6493
when: ansible_os_family == "RedHat" and

tests/docker/group_vars/postgresql.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22

33
postgresql_shared_buffers: "32MB"
4+
postgresql_data_checksums: true
45

56
postgresql_databases:
67
- name: foobar

0 commit comments

Comments
 (0)