Skip to content

Commit 7b13803

Browse files
Split conf/data directories, support
1 parent 81919a9 commit 7b13803

File tree

6 files changed

+45
-33
lines changed

6 files changed

+45
-33
lines changed

postgres/codenamemap.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
### Set parameters based on PostgreSQL version supplied with particular distro
22

33
{% import_yaml "postgres/repo.yaml" as repo %}
4+
{% import_yaml "postgres/defaults.yaml" as defaults %}
45

56
{# Generate lookup dictionary map for OS and derivative distributions
67
name: distro codename
@@ -10,25 +11,26 @@
1011

1112
{% macro debian_codename(name, version, codename=none) %}
1213

13-
{# use upstream version if configured #}
1414
{% if repo.use_upstream_repo == true %}
1515
{% set version = repo.version %}
1616
{% set fromrepo = repo.fromrepo|default(name ~ '-pgdg', true) %}
1717
{% else %}
1818
{% set fromrepo = name %}
1919
{% endif %}
20+
{% set conf_dir = '/etc/postgresql/' + version|string + '/main' %}
21+
{% set data_dir = '/var/lib/postgresql/' + version|string + '/main' %}
2022

2123
{{ codename|default(name, true) }}:
2224
# PostgreSQL packages are mostly downloaded from `main` repo component
25+
conf_dir: {{ conf_dir }}
26+
data_dir: {{ data_dir }}
2327
fromrepo: {{ fromrepo }}
2428
pkg_repo:
2529
name: 'deb http://apt.postgresql.org/pub/repos/apt {{ name }}-pgdg main {{ version }}'
2630
pkg: postgresql-{{ version }}
2731
pkg_client: postgresql-client-{{ version }}
28-
conf_dir: /etc/postgresql/{{ version }}/main
2932
prepare_cluster:
30-
command: pg_createcluster {{ version }} main
31-
test: test -f /var/lib/postgresql/{{ version }}/main/PG_VERSION && test -f /etc/postgresql/{{ version }}/main/postgresql.conf
33+
pgcommand: pg_createcluster {{ version }} main -d
3234
user: root
3335

3436
{% endmacro %}
@@ -38,15 +40,13 @@
3840

3941
{# use upstream version if configured #}
4042
{% if repo.use_upstream_repo == true %}
41-
{% set fromrepo = repo.fromrepo|default(name ~ '-pgdg', true) %}
4243
{% set version = repo.version %}
4344
{% else %}
4445
{% set fromrepo = name %}
4546
{% endif %}
4647

4748
{{ codename|default(name, true) }}:
4849
# PostgreSQL packages are mostly downloaded from `main` repo component
49-
fromrepo: {{ name }}
5050
pkg_repo:
5151
baseurl: 'https://download.postgresql.org/pub/repos/yum/{{ version }}/fedora/fedora-$releasever-$basearch'
5252

postgres/defaults.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,13 @@ postgres:
1515
group: postgres
1616

1717
prepare_cluster:
18-
command: initdb --pgdata=/var/lib/pgsql/data
19-
test: test -f /var/lib/pgsql/data/PG_VERSION
18+
pgcommand: initdb -D
19+
pgtestfile: PG_VERSION
2020
user: postgres
2121
env: []
2222

2323
conf_dir: /var/lib/pgsql/data
24+
data_dir: /var/lib/pgsql/data
2425
conf_dir_mode: '0700'
2526
postgresconf: ""
2627

postgres/dropped.sls

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,6 @@ postgresql-removed:
2727
2828
postgres-dir-absent:
2929
file.absent:
30-
- name: {{ postgres.conf_dir }}
30+
- names:
31+
- {{ postgres.conf_dir }}
32+
- {{ postgres.data_dir }}

postgres/osfamilymap.yaml

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@
44

55
Arch:
66
conf_dir: /var/lib/postgres/data
7-
prepare_cluster:
8-
command: initdb -D /var/lib/postgres/data
9-
test: test -f /var/lib/postgres/data/PG_VERSION
7+
data_dir: /var/lib/postgres/data
108
pkg_client: postgresql-libs
119
pkg_dev: postgresql
1210

@@ -26,6 +24,8 @@ FreeBSD:
2624
user: pgsql
2725

2826
OpenBSD:
27+
conf_dir: /var/postgresql/data
28+
data_dir: /var/postgresql/data
2929
user: _postgresql
3030

3131
RedHat:
@@ -44,13 +44,10 @@ RedHat:
4444
pkg_client: postgresql{{ release }}
4545
pkg_libs: postgresql{{ release }}-libs
4646
pkg_dev: postgresql{{ release }}-devel
47-
conf_dir: /var/lib/pgsql/{{ repo.version }}/data
47+
conf_dir: {{ data_dir }}
48+
data_dir: {{ data_dir }}
4849
service: postgresql-{{ repo.version }}
4950

50-
prepare_cluster:
51-
command: initdb --pgdata='{{ data_dir }}'
52-
test: test -f '{{ data_dir }}/PG_VERSION'
53-
5451
# Alternatives system
5552
linux:
5653
altpriority: 30
@@ -113,20 +110,17 @@ Suse:
113110
gpgautoimport: True
114111

115112
{% if repo.use_upstream_repo == true %}
116-
{% set lib_dir = '/var/lib/pgsql/' ~ repo.version ~ '/data' %}
113+
{% set data_dir = '/var/lib/pgsql/' ~ repo.version ~ '/data' %}
117114

118115
fromrepo: pgdg-sles-{{ release }}
119116
pkg: postgresql{{ release }}-server
120117
pkg_client: postgresql{{ release }}
121118
pkg_dev: postgresql{{ release }}-devel
122119
pkg_libs: postgresql{{ release }}-libs
123-
conf_dir: {{ lib_dir }}
120+
conf_dir: {{ data_dir }}
121+
data_dir: {{ data_dir }}
124122
service: postgresql-{{ repo.version }}
125123

126-
prepare_cluster:
127-
command: /usr/pgsql-{{ repo.version }}/bin/initdb --pgdata='{{ lib_dir }}'
128-
test: test -f '{{ lib_dir }}/PG_VERSION'
129-
130124
# Alternatives system
131125
linux:
132126
altpriority: 30
@@ -179,9 +173,8 @@ MacOS:
179173
user: {{ repo.user }}
180174
group: {{ repo.group }}
181175
conf_dir: /Users/{{ repo.user }}/Library/AppSupport/postgres_{{ repo.use_upstream_repo }}
176+
data_dir: /Users/{{ repo.user }}/Library/AppSupport/postgres_{{ repo.use_upstream_repo }}
182177
prepare_cluster:
183-
command: initdb -D /Users/{{ repo.user }}/Library/AppSupport/postgres_{{ repo.use_upstream_repo }}
184-
test: test -f /Users/{{ repo.user }}/Library/AppSupport/postgres_{{ repo.use_upstream_repo }}/PG_VERSION
185178
user: {{ repo.user }}
186179
group: {{ repo.group }}
187180
{%- endif %}

postgres/server/image.sls

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ include:
1212
1313
postgresql-start:
1414
cmd.run:
15-
- name: pg_ctl -D {{ postgres.conf_dir }} -l logfile start
15+
- name: pg_ctl -D {{ postgres.data_dir }} -l logfile start
1616
- runas: {{ postgres.user }}
1717
- unless:
18-
- ps -p $(head -n 1 {{ postgres.conf_dir }}/postmaster.pid) 2>/dev/null
18+
- ps -p $(head -n 1 {{ postgres.data_dir }}/postmaster.pid) 2>/dev/null
1919
- require:
2020
- file: postgresql-pg_hba
2121

postgres/server/init.sls

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,27 +61,43 @@ postgresql-{{ bin }}-altinstall:
6161
{%- endif %}
6262
6363
postgresql-cluster-prepared:
64+
file.directory:
65+
- name: {{ postgres.conf_dir }}
66+
- user: {{ postgres.user }}
67+
- group: {{ postgres.group }}
68+
- makedirs: True
69+
- recurse:
70+
- user
71+
- group
72+
- dir_mode: 755
6473
cmd.run:
74+
{%- if postgres.prepare_cluster.command is defined %}
75+
{# support for depreciated 'prepare_cluster.command' pillar #}
6576
- name: {{ postgres.prepare_cluster.command }}
77+
- unless: {{ postgres.prepare_cluster.test }}
78+
{%- else %}
79+
- name: {{ postgres.prepare_cluster.pgcommand }} {{ postgres.data_dir }}
80+
- unless: test -f {{ postgres.data_dir }}/{{ postgres.prepare_cluster.pgtestfile }}
81+
{%- endif %}
6682
- cwd: /
67-
- runas: {{ postgres.prepare_cluster.user }}
6883
- env: {{ postgres.prepare_cluster.env }}
69-
- unless:
70-
- {{ postgres.prepare_cluster.test }}
84+
- runas: {{ postgres.user }}
7185
- require:
7286
- pkg: postgresql-server
87+
- file: postgresql-cluster-prepared
7388
7489
postgresql-config-dir:
7590
file.directory:
76-
- name: {{ postgres.conf_dir }}
91+
- names:
92+
- {{ postgres.data_dir }}
93+
- {{ postgres.conf_dir }}
7794
- user: {{ postgres.user }}
7895
- group: {{ postgres.group }}
7996
- dir_mode: {{ postgres.conf_dir_mode }}
8097
- force: True
8198
- file_mode: 644
8299
- recurse:
83-
- user
84-
- group
100+
- mode
85101
- makedirs: True
86102
- require:
87103
- cmd: postgresql-cluster-prepared

0 commit comments

Comments
 (0)