Skip to content

Commit 248cb85

Browse files
Split conf/data directories, support
1 parent 81919a9 commit 248cb85

File tree

6 files changed

+52
-25
lines changed

6 files changed

+52
-25
lines changed

postgres/codenamemap.yaml

Lines changed: 8 additions & 5 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,27 @@
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
34+
pgtestfile: PG_VERSION
3235
user: root
3336

3437
{% endmacro %}
@@ -46,7 +49,7 @@
4649

4750
{{ codename|default(name, true) }}:
4851
# PostgreSQL packages are mostly downloaded from `main` repo component
49-
fromrepo: {{ name }}
52+
fromrepo: {{ fromrepo }}
5053
pkg_repo:
5154
baseurl: 'https://download.postgresql.org/pub/repos/yum/{{ version }}/fedora/fedora-$releasever-$basearch'
5255

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 --pgdata=
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: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@
44

55
Arch:
66
conf_dir: /var/lib/postgres/data
7+
data_dir: /var/lib/postgres/data
78
prepare_cluster:
8-
command: initdb -D /var/lib/postgres/data
9-
test: test -f /var/lib/postgres/data/PG_VERSION
9+
pgcommand: initdb -D
10+
pgtestfile: PG_VERSION
1011
pkg_client: postgresql-libs
1112
pkg_dev: postgresql
1213

@@ -26,6 +27,8 @@ FreeBSD:
2627
user: pgsql
2728

2829
OpenBSD:
30+
conf_dir: /var/postgresql/data
31+
data_dir: /var/postgresql/data
2932
user: _postgresql
3033

3134
RedHat:
@@ -44,12 +47,13 @@ RedHat:
4447
pkg_client: postgresql{{ release }}
4548
pkg_libs: postgresql{{ release }}-libs
4649
pkg_dev: postgresql{{ release }}-devel
47-
conf_dir: /var/lib/pgsql/{{ repo.version }}/data
50+
conf_dir: {{ data_dir }}
51+
data_dir: {{ data_dir }}
4852
service: postgresql-{{ repo.version }}
4953

5054
prepare_cluster:
51-
command: initdb --pgdata='{{ data_dir }}'
52-
test: test -f '{{ data_dir }}/PG_VERSION'
55+
pgcommand: initdb --pgdata=
56+
pgtestfile: PG_VERSION
5357

5458
# Alternatives system
5559
linux:
@@ -113,19 +117,20 @@ Suse:
113117
gpgautoimport: True
114118

115119
{% if repo.use_upstream_repo == true %}
116-
{% set lib_dir = '/var/lib/pgsql/' ~ repo.version ~ '/data' %}
120+
{% set data_dir = '/var/lib/pgsql/' ~ repo.version ~ '/data' %}
117121

118122
fromrepo: pgdg-sles-{{ release }}
119123
pkg: postgresql{{ release }}-server
120124
pkg_client: postgresql{{ release }}
121125
pkg_dev: postgresql{{ release }}-devel
122126
pkg_libs: postgresql{{ release }}-libs
123-
conf_dir: {{ lib_dir }}
127+
conf_dir: {{ data_dir }}
128+
data_dir: {{ data_dir }}
124129
service: postgresql-{{ repo.version }}
125130

126131
prepare_cluster:
127-
command: /usr/pgsql-{{ repo.version }}/bin/initdb --pgdata='{{ lib_dir }}'
128-
test: test -f '{{ lib_dir }}/PG_VERSION'
132+
pgcommand: initdb --pgdata=
133+
pgtestfile: PG_VERSION
129134

130135
# Alternatives system
131136
linux:

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)