Skip to content

Commit 764863f

Browse files
Split conf/data directories, support
1 parent 501b0b6 commit 764863f

File tree

6 files changed

+44
-35
lines changed

6 files changed

+44
-35
lines changed

postgres/codenamemap.yaml

+5-8
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,26 @@
1010

1111
{% macro debian_codename(name, version, codename=none) %}
1212

13-
{# use upstream version if configured #}
1413
{% if repo.use_upstream_repo == true %}
1514
{% set version = repo.version %}
1615
{% set fromrepo = repo.fromrepo|default(name ~ '-pgdg', true) %}
1716
{% else %}
1817
{% set fromrepo = name %}
1918
{% endif %}
19+
{% set conf_dir = '/etc/postgresql/' ~ version ~ '/main' %}
20+
{% set data_dir = '/var/lib/postgresql/' ~ version ~ '/main' %}
2021

2122
{{ codename|default(name, true) }}:
2223
# PostgreSQL packages are mostly downloaded from `main` repo component
24+
conf_dir: {{ conf_dir }}
25+
data_dir: {{ data_dir }}
2326
fromrepo: {{ fromrepo }}
2427
pkg_repo:
2528
name: 'deb http://apt.postgresql.org/pub/repos/apt/ {{ name }}-pgdg main'
2629
pkg: postgresql-{{ version }}
2730
pkg_client: postgresql-client-{{ version }}
28-
conf_dir: /etc/postgresql/{{ version }}/main
2931
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
32+
pgcommand: pg_createcluster {{ version }} main -d
3233
user: root
3334

3435
{% endmacro %}
@@ -38,15 +39,11 @@
3839

3940
{# use upstream version if configured #}
4041
{% if repo.use_upstream_repo == true %}
41-
{% set fromrepo = repo.fromrepo|default(name ~ '-pgdg', true) %}
4242
{% set version = repo.version %}
43-
{% else %}
44-
{% set fromrepo = name %}
4543
{% endif %}
4644

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

postgres/defaults.yaml

+3-2
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,13 @@ postgres:
1616
group: postgres
1717

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

2424
conf_dir: /var/lib/pgsql/data
25+
data_dir: /var/lib/pgsql/data
2526
conf_dir_mode: '0700'
2627
postgresconf: ""
2728

postgres/dropped.sls

+3-1
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

+9-16
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
@@ -118,20 +115,17 @@ Suse:
118115
gpgautoimport: True
119116

120117
{% if repo.use_upstream_repo == true %}
121-
{% set lib_dir = '/var/lib/pgsql/' ~ repo.version ~ '/data' %}
118+
{% set data_dir = '/var/lib/pgsql/' ~ repo.version ~ '/data' %}
122119

123120
fromrepo: pgdg-sles-{{ release }}
124121
pkg: postgresql{{ release }}-server
125122
pkg_client: postgresql{{ release }}
126123
pkg_dev: postgresql{{ release }}-devel
127124
pkg_libs: postgresql{{ release }}-libs
128-
conf_dir: {{ lib_dir }}
125+
conf_dir: {{ data_dir }}
126+
data_dir: {{ data_dir }}
129127
service: postgresql-{{ repo.version }}
130128

131-
prepare_cluster:
132-
command: /usr/pgsql-{{ repo.version }}/bin/initdb --pgdata='{{ lib_dir }}'
133-
test: test -f '{{ lib_dir }}/PG_VERSION'
134-
135129
# Alternatives system
136130
linux:
137131
altpriority: 30
@@ -184,9 +178,8 @@ MacOS:
184178
user: {{ repo.user }}
185179
group: {{ repo.group }}
186180
conf_dir: /Users/{{ repo.user }}/Library/AppSupport/postgres_{{ repo.use_upstream_repo }}
181+
data_dir: /Users/{{ repo.user }}/Library/AppSupport/postgres_{{ repo.use_upstream_repo }}
187182
prepare_cluster:
188-
command: initdb -D /Users/{{ repo.user }}/Library/AppSupport/postgres_{{ repo.use_upstream_repo }}
189-
test: test -f /Users/{{ repo.user }}/Library/AppSupport/postgres_{{ repo.use_upstream_repo }}/PG_VERSION
190183
user: {{ repo.user }}
191184
group: {{ repo.group }}
192185
{%- endif %}

postgres/server/image.sls

+2-2
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

+22-6
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)