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) %}
|
{% macro debian_codename(name, version, codename=none) %}
|
||||||
|
|
||||||
{# use upstream version if configured #}
|
|
||||||
{% if repo.use_upstream_repo == true %}
|
{% if repo.use_upstream_repo == true %}
|
||||||
{% set version = repo.version %}
|
{% set version = repo.version %}
|
||||||
{% set fromrepo = repo.fromrepo|default(name ~ '-pgdg', true) %}
|
{% set fromrepo = repo.fromrepo|default(name ~ '-pgdg', true) %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% set fromrepo = name %}
|
{% set fromrepo = name %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% set conf_dir = '/etc/postgresql/' ~ version ~ '/main' %}
|
||||||
|
{% set data_dir = '/var/lib/postgresql/' ~ version ~ '/main' %}
|
||||||
|
|
||||||
{{ codename|default(name, true) }}:
|
{{ codename|default(name, true) }}:
|
||||||
# PostgreSQL packages are mostly downloaded from `main` repo component
|
# PostgreSQL packages are mostly downloaded from `main` repo component
|
||||||
|
conf_dir: {{ conf_dir }}
|
||||||
|
data_dir: {{ data_dir }}
|
||||||
fromrepo: {{ fromrepo }}
|
fromrepo: {{ fromrepo }}
|
||||||
pkg_repo:
|
pkg_repo:
|
||||||
name: 'deb http://apt.postgresql.org/pub/repos/apt/ {{ name }}-pgdg main'
|
name: 'deb http://apt.postgresql.org/pub/repos/apt/ {{ name }}-pgdg main'
|
||||||
pkg: postgresql-{{ version }}
|
pkg: postgresql-{{ version }}
|
||||||
pkg_client: postgresql-client-{{ version }}
|
pkg_client: postgresql-client-{{ version }}
|
||||||
conf_dir: /etc/postgresql/{{ version }}/main
|
|
||||||
prepare_cluster:
|
prepare_cluster:
|
||||||
command: pg_createcluster {{ version }} main
|
pgcommand: pg_createcluster {{ version }} main -d
|
||||||
test: test -f /var/lib/postgresql/{{ version }}/main/PG_VERSION && test -f /etc/postgresql/{{ version }}/main/postgresql.conf
|
|
||||||
user: root
|
user: root
|
||||||
|
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
@ -38,15 +39,11 @@
|
||||||
|
|
||||||
{# use upstream version if configured #}
|
{# use upstream version if configured #}
|
||||||
{% if repo.use_upstream_repo == true %}
|
{% if repo.use_upstream_repo == true %}
|
||||||
{% set fromrepo = repo.fromrepo|default(name ~ '-pgdg', true) %}
|
|
||||||
{% set version = repo.version %}
|
{% set version = repo.version %}
|
||||||
{% else %}
|
|
||||||
{% set fromrepo = name %}
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{{ codename|default(name, true) }}:
|
{{ codename|default(name, true) }}:
|
||||||
# PostgreSQL packages are mostly downloaded from `main` repo component
|
# PostgreSQL packages are mostly downloaded from `main` repo component
|
||||||
fromrepo: {{ fromrepo }}
|
|
||||||
pkg_repo:
|
pkg_repo:
|
||||||
baseurl: 'https://download.postgresql.org/pub/repos/yum/{{ version }}/fedora/fedora-$releasever-$basearch'
|
baseurl: 'https://download.postgresql.org/pub/repos/yum/{{ version }}/fedora/fedora-$releasever-$basearch'
|
||||||
|
|
||||||
|
|
|
@ -16,12 +16,13 @@ postgres:
|
||||||
group: postgres
|
group: postgres
|
||||||
|
|
||||||
prepare_cluster:
|
prepare_cluster:
|
||||||
command: initdb --pgdata=/var/lib/pgsql/data
|
pgcommand: initdb -D
|
||||||
test: test -f /var/lib/pgsql/data/PG_VERSION
|
pgtestfile: PG_VERSION
|
||||||
user: postgres
|
user: postgres
|
||||||
env: []
|
env: []
|
||||||
|
|
||||||
conf_dir: /var/lib/pgsql/data
|
conf_dir: /var/lib/pgsql/data
|
||||||
|
data_dir: /var/lib/pgsql/data
|
||||||
conf_dir_mode: '0700'
|
conf_dir_mode: '0700'
|
||||||
postgresconf: ""
|
postgresconf: ""
|
||||||
|
|
||||||
|
|
|
@ -27,4 +27,6 @@ postgresql-removed:
|
||||||
|
|
||||||
postgres-dir-absent:
|
postgres-dir-absent:
|
||||||
file.absent:
|
file.absent:
|
||||||
- name: {{ postgres.conf_dir }}
|
- names:
|
||||||
|
- {{ postgres.conf_dir }}
|
||||||
|
- {{ postgres.data_dir }}
|
||||||
|
|
|
@ -4,9 +4,7 @@
|
||||||
|
|
||||||
Arch:
|
Arch:
|
||||||
conf_dir: /var/lib/postgres/data
|
conf_dir: /var/lib/postgres/data
|
||||||
prepare_cluster:
|
data_dir: /var/lib/postgres/data
|
||||||
command: initdb -D /var/lib/postgres/data
|
|
||||||
test: test -f /var/lib/postgres/data/PG_VERSION
|
|
||||||
pkg_client: postgresql-libs
|
pkg_client: postgresql-libs
|
||||||
pkg_dev: postgresql
|
pkg_dev: postgresql
|
||||||
|
|
||||||
|
@ -26,6 +24,8 @@ FreeBSD:
|
||||||
user: pgsql
|
user: pgsql
|
||||||
|
|
||||||
OpenBSD:
|
OpenBSD:
|
||||||
|
conf_dir: /var/postgresql/data
|
||||||
|
data_dir: /var/postgresql/data
|
||||||
user: _postgresql
|
user: _postgresql
|
||||||
|
|
||||||
RedHat:
|
RedHat:
|
||||||
|
@ -44,13 +44,10 @@ RedHat:
|
||||||
pkg_client: postgresql{{ release }}
|
pkg_client: postgresql{{ release }}
|
||||||
pkg_libs: postgresql{{ release }}-libs
|
pkg_libs: postgresql{{ release }}-libs
|
||||||
pkg_dev: postgresql{{ release }}-devel
|
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 }}
|
service: postgresql-{{ repo.version }}
|
||||||
|
|
||||||
prepare_cluster:
|
|
||||||
command: initdb --pgdata='{{ data_dir }}'
|
|
||||||
test: test -f '{{ data_dir }}/PG_VERSION'
|
|
||||||
|
|
||||||
# Alternatives system
|
# Alternatives system
|
||||||
linux:
|
linux:
|
||||||
altpriority: 30
|
altpriority: 30
|
||||||
|
@ -118,20 +115,17 @@ Suse:
|
||||||
gpgautoimport: True
|
gpgautoimport: True
|
||||||
|
|
||||||
{% if repo.use_upstream_repo == 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 }}
|
fromrepo: pgdg-sles-{{ release }}
|
||||||
pkg: postgresql{{ release }}-server
|
pkg: postgresql{{ release }}-server
|
||||||
pkg_client: postgresql{{ release }}
|
pkg_client: postgresql{{ release }}
|
||||||
pkg_dev: postgresql{{ release }}-devel
|
pkg_dev: postgresql{{ release }}-devel
|
||||||
pkg_libs: postgresql{{ release }}-libs
|
pkg_libs: postgresql{{ release }}-libs
|
||||||
conf_dir: {{ lib_dir }}
|
conf_dir: {{ data_dir }}
|
||||||
|
data_dir: {{ data_dir }}
|
||||||
service: postgresql-{{ repo.version }}
|
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
|
# Alternatives system
|
||||||
linux:
|
linux:
|
||||||
altpriority: 30
|
altpriority: 30
|
||||||
|
@ -184,9 +178,8 @@ MacOS:
|
||||||
user: {{ repo.user }}
|
user: {{ repo.user }}
|
||||||
group: {{ repo.group }}
|
group: {{ repo.group }}
|
||||||
conf_dir: /Users/{{ repo.user }}/Library/AppSupport/postgres_{{ repo.use_upstream_repo }}
|
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:
|
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 }}
|
user: {{ repo.user }}
|
||||||
group: {{ repo.group }}
|
group: {{ repo.group }}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
|
@ -12,10 +12,10 @@ include:
|
||||||
|
|
||||||
postgresql-start:
|
postgresql-start:
|
||||||
cmd.run:
|
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 }}
|
- runas: {{ postgres.user }}
|
||||||
- unless:
|
- 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:
|
- require:
|
||||||
- file: postgresql-pg_hba
|
- file: postgresql-pg_hba
|
||||||
|
|
||||||
|
|
|
@ -61,27 +61,43 @@ postgresql-{{ bin }}-altinstall:
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
||||||
postgresql-cluster-prepared:
|
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:
|
cmd.run:
|
||||||
|
{%- if postgres.prepare_cluster.command is defined %}
|
||||||
|
{# support for depreciated 'prepare_cluster.command' pillar #}
|
||||||
- name: {{ postgres.prepare_cluster.command }}
|
- 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: /
|
- cwd: /
|
||||||
- runas: {{ postgres.prepare_cluster.user }}
|
|
||||||
- env: {{ postgres.prepare_cluster.env }}
|
- env: {{ postgres.prepare_cluster.env }}
|
||||||
- unless:
|
- runas: {{ postgres.user }}
|
||||||
- {{ postgres.prepare_cluster.test }}
|
|
||||||
- require:
|
- require:
|
||||||
- pkg: postgresql-server
|
- pkg: postgresql-server
|
||||||
|
- file: postgresql-cluster-prepared
|
||||||
|
|
||||||
postgresql-config-dir:
|
postgresql-config-dir:
|
||||||
file.directory:
|
file.directory:
|
||||||
- name: {{ postgres.conf_dir }}
|
- names:
|
||||||
|
- {{ postgres.data_dir }}
|
||||||
|
- {{ postgres.conf_dir }}
|
||||||
- user: {{ postgres.user }}
|
- user: {{ postgres.user }}
|
||||||
- group: {{ postgres.group }}
|
- group: {{ postgres.group }}
|
||||||
- dir_mode: {{ postgres.conf_dir_mode }}
|
- dir_mode: {{ postgres.conf_dir_mode }}
|
||||||
- force: True
|
- force: True
|
||||||
- file_mode: 644
|
- file_mode: 644
|
||||||
- recurse:
|
- recurse:
|
||||||
- user
|
- mode
|
||||||
- group
|
|
||||||
- makedirs: True
|
- makedirs: True
|
||||||
- require:
|
- require:
|
||||||
- cmd: postgresql-cluster-prepared
|
- cmd: postgresql-cluster-prepared
|
||||||
|
|
Loading…
Add table
Reference in a new issue