mirror of
https://github.com/saltstack-formulas/postgres-formula.git
synced 2025-04-16 01:30:25 +00:00
Split conf/data directories, support
This commit is contained in:
parent
501b0b678a
commit
764863fc8e
6 changed files with 44 additions and 35 deletions
|
@ -10,25 +10,26 @@
|
|||
|
||||
{% macro debian_codename(name, version, codename=none) %}
|
||||
|
||||
{# use upstream version if configured #}
|
||||
{% if repo.use_upstream_repo == true %}
|
||||
{% set version = repo.version %}
|
||||
{% set fromrepo = repo.fromrepo|default(name ~ '-pgdg', true) %}
|
||||
{% else %}
|
||||
{% set fromrepo = name %}
|
||||
{% endif %}
|
||||
{% set conf_dir = '/etc/postgresql/' ~ version ~ '/main' %}
|
||||
{% set data_dir = '/var/lib/postgresql/' ~ version ~ '/main' %}
|
||||
|
||||
{{ codename|default(name, true) }}:
|
||||
# PostgreSQL packages are mostly downloaded from `main` repo component
|
||||
conf_dir: {{ conf_dir }}
|
||||
data_dir: {{ data_dir }}
|
||||
fromrepo: {{ fromrepo }}
|
||||
pkg_repo:
|
||||
name: 'deb http://apt.postgresql.org/pub/repos/apt/ {{ name }}-pgdg main'
|
||||
pkg: postgresql-{{ version }}
|
||||
pkg_client: postgresql-client-{{ version }}
|
||||
conf_dir: /etc/postgresql/{{ version }}/main
|
||||
prepare_cluster:
|
||||
command: pg_createcluster {{ version }} main
|
||||
test: test -f /var/lib/postgresql/{{ version }}/main/PG_VERSION && test -f /etc/postgresql/{{ version }}/main/postgresql.conf
|
||||
pgcommand: pg_createcluster {{ version }} main -d
|
||||
user: root
|
||||
|
||||
{% endmacro %}
|
||||
|
@ -38,15 +39,11 @@
|
|||
|
||||
{# use upstream version if configured #}
|
||||
{% if repo.use_upstream_repo == true %}
|
||||
{% set fromrepo = repo.fromrepo|default(name ~ '-pgdg', true) %}
|
||||
{% set version = repo.version %}
|
||||
{% else %}
|
||||
{% set fromrepo = name %}
|
||||
{% endif %}
|
||||
|
||||
{{ codename|default(name, true) }}:
|
||||
# PostgreSQL packages are mostly downloaded from `main` repo component
|
||||
fromrepo: {{ fromrepo }}
|
||||
pkg_repo:
|
||||
baseurl: 'https://download.postgresql.org/pub/repos/yum/{{ version }}/fedora/fedora-$releasever-$basearch'
|
||||
|
||||
|
|
|
@ -16,12 +16,13 @@ postgres:
|
|||
group: postgres
|
||||
|
||||
prepare_cluster:
|
||||
command: initdb --pgdata=/var/lib/pgsql/data
|
||||
test: test -f /var/lib/pgsql/data/PG_VERSION
|
||||
pgcommand: initdb -D
|
||||
pgtestfile: PG_VERSION
|
||||
user: postgres
|
||||
env: []
|
||||
|
||||
conf_dir: /var/lib/pgsql/data
|
||||
data_dir: /var/lib/pgsql/data
|
||||
conf_dir_mode: '0700'
|
||||
postgresconf: ""
|
||||
|
||||
|
|
|
@ -27,4 +27,6 @@ postgresql-removed:
|
|||
|
||||
postgres-dir-absent:
|
||||
file.absent:
|
||||
- name: {{ postgres.conf_dir }}
|
||||
- names:
|
||||
- {{ postgres.conf_dir }}
|
||||
- {{ postgres.data_dir }}
|
||||
|
|
|
@ -4,9 +4,7 @@
|
|||
|
||||
Arch:
|
||||
conf_dir: /var/lib/postgres/data
|
||||
prepare_cluster:
|
||||
command: initdb -D /var/lib/postgres/data
|
||||
test: test -f /var/lib/postgres/data/PG_VERSION
|
||||
data_dir: /var/lib/postgres/data
|
||||
pkg_client: postgresql-libs
|
||||
pkg_dev: postgresql
|
||||
|
||||
|
@ -26,6 +24,8 @@ FreeBSD:
|
|||
user: pgsql
|
||||
|
||||
OpenBSD:
|
||||
conf_dir: /var/postgresql/data
|
||||
data_dir: /var/postgresql/data
|
||||
user: _postgresql
|
||||
|
||||
RedHat:
|
||||
|
@ -44,13 +44,10 @@ RedHat:
|
|||
pkg_client: postgresql{{ release }}
|
||||
pkg_libs: postgresql{{ release }}-libs
|
||||
pkg_dev: postgresql{{ release }}-devel
|
||||
conf_dir: /var/lib/pgsql/{{ repo.version }}/data
|
||||
conf_dir: {{ data_dir }}
|
||||
data_dir: {{ data_dir }}
|
||||
service: postgresql-{{ repo.version }}
|
||||
|
||||
prepare_cluster:
|
||||
command: initdb --pgdata='{{ data_dir }}'
|
||||
test: test -f '{{ data_dir }}/PG_VERSION'
|
||||
|
||||
# Alternatives system
|
||||
linux:
|
||||
altpriority: 30
|
||||
|
@ -118,20 +115,17 @@ Suse:
|
|||
gpgautoimport: True
|
||||
|
||||
{% if repo.use_upstream_repo == true %}
|
||||
{% set lib_dir = '/var/lib/pgsql/' ~ repo.version ~ '/data' %}
|
||||
{% set data_dir = '/var/lib/pgsql/' ~ repo.version ~ '/data' %}
|
||||
|
||||
fromrepo: pgdg-sles-{{ release }}
|
||||
pkg: postgresql{{ release }}-server
|
||||
pkg_client: postgresql{{ release }}
|
||||
pkg_dev: postgresql{{ release }}-devel
|
||||
pkg_libs: postgresql{{ release }}-libs
|
||||
conf_dir: {{ lib_dir }}
|
||||
conf_dir: {{ data_dir }}
|
||||
data_dir: {{ data_dir }}
|
||||
service: postgresql-{{ repo.version }}
|
||||
|
||||
prepare_cluster:
|
||||
command: /usr/pgsql-{{ repo.version }}/bin/initdb --pgdata='{{ lib_dir }}'
|
||||
test: test -f '{{ lib_dir }}/PG_VERSION'
|
||||
|
||||
# Alternatives system
|
||||
linux:
|
||||
altpriority: 30
|
||||
|
@ -184,9 +178,8 @@ MacOS:
|
|||
user: {{ repo.user }}
|
||||
group: {{ repo.group }}
|
||||
conf_dir: /Users/{{ repo.user }}/Library/AppSupport/postgres_{{ repo.use_upstream_repo }}
|
||||
data_dir: /Users/{{ repo.user }}/Library/AppSupport/postgres_{{ repo.use_upstream_repo }}
|
||||
prepare_cluster:
|
||||
command: initdb -D /Users/{{ repo.user }}/Library/AppSupport/postgres_{{ repo.use_upstream_repo }}
|
||||
test: test -f /Users/{{ repo.user }}/Library/AppSupport/postgres_{{ repo.use_upstream_repo }}/PG_VERSION
|
||||
user: {{ repo.user }}
|
||||
group: {{ repo.group }}
|
||||
{%- endif %}
|
||||
|
|
|
@ -12,10 +12,10 @@ include:
|
|||
|
||||
postgresql-start:
|
||||
cmd.run:
|
||||
- name: pg_ctl -D {{ postgres.conf_dir }} -l logfile start
|
||||
- name: pg_ctl -D {{ postgres.data_dir }} -l logfile start
|
||||
- runas: {{ postgres.user }}
|
||||
- unless:
|
||||
- ps -p $(head -n 1 {{ postgres.conf_dir }}/postmaster.pid) 2>/dev/null
|
||||
- ps -p $(head -n 1 {{ postgres.data_dir }}/postmaster.pid) 2>/dev/null
|
||||
- require:
|
||||
- file: postgresql-pg_hba
|
||||
|
||||
|
|
|
@ -61,27 +61,43 @@ postgresql-{{ bin }}-altinstall:
|
|||
{%- endif %}
|
||||
|
||||
postgresql-cluster-prepared:
|
||||
file.directory:
|
||||
- name: {{ postgres.conf_dir }}
|
||||
- user: {{ postgres.user }}
|
||||
- group: {{ postgres.group }}
|
||||
- makedirs: True
|
||||
- recurse:
|
||||
- user
|
||||
- group
|
||||
- dir_mode: 755
|
||||
cmd.run:
|
||||
{%- if postgres.prepare_cluster.command is defined %}
|
||||
{# support for depreciated 'prepare_cluster.command' pillar #}
|
||||
- name: {{ postgres.prepare_cluster.command }}
|
||||
- unless: {{ postgres.prepare_cluster.test }}
|
||||
{%- else %}
|
||||
- name: {{ postgres.prepare_cluster.pgcommand }} {{ postgres.data_dir }}
|
||||
- unless: test -f {{ postgres.data_dir }}/{{ postgres.prepare_cluster.pgtestfile }}
|
||||
{%- endif %}
|
||||
- cwd: /
|
||||
- runas: {{ postgres.prepare_cluster.user }}
|
||||
- env: {{ postgres.prepare_cluster.env }}
|
||||
- unless:
|
||||
- {{ postgres.prepare_cluster.test }}
|
||||
- runas: {{ postgres.user }}
|
||||
- require:
|
||||
- pkg: postgresql-server
|
||||
- file: postgresql-cluster-prepared
|
||||
|
||||
postgresql-config-dir:
|
||||
file.directory:
|
||||
- name: {{ postgres.conf_dir }}
|
||||
- names:
|
||||
- {{ postgres.data_dir }}
|
||||
- {{ postgres.conf_dir }}
|
||||
- user: {{ postgres.user }}
|
||||
- group: {{ postgres.group }}
|
||||
- dir_mode: {{ postgres.conf_dir_mode }}
|
||||
- force: True
|
||||
- file_mode: 644
|
||||
- recurse:
|
||||
- user
|
||||
- group
|
||||
- mode
|
||||
- makedirs: True
|
||||
- require:
|
||||
- cmd: postgresql-cluster-prepared
|
||||
|
|
Loading…
Add table
Reference in a new issue