Use top-level postgres.port and existing states to set port

This commit is contained in:
Imran Iqbal 2018-06-12 08:38:51 +01:00
parent 0d9a5ba239
commit e1a19ed78f
4 changed files with 28 additions and 32 deletions

View file

@ -1,3 +1,7 @@
# Port to use for the cluster -- can be used to provide a non-standard port
# NOTE: If already set in the minion config, that value takes priority
postgres.port: '5432'
postgres:
# UPSTREAM REPO
# Set True to configure upstream postgresql.org repository for YUM/APT/ZYPP
@ -32,13 +36,9 @@ postgres:
hard: 64000
# POSTGRES
# Non-standard port to use for the cluster
# Only set if port `5432` is not appropriate
port: 5433
# Append the lines under this item to your postgresql.conf file.
# Pay attention to indent exactly with 4 spaces for all lines.
postgresconf: |
postgresconf: |-
listen_addresses = '*' # listen on all interfaces
# Path to the `pg_hba.conf` file Jinja template on Salt Fileserver

View file

@ -3,7 +3,6 @@
postgres:
use_upstream_repo: True
version: '9.5'
default_port: 5432
pkg: postgresql
pkgs_extra: []
pkg_client: postgresql-client

View file

@ -23,7 +23,6 @@
{{ state }}-{{ name }}:
{{ state }}.{{ ensure|default('present') }}:
{{- format_kwargs(kwarg) }}
- db_port: {{ postgres.port|default(postgres.default_port) }}
- onchanges:
- test: postgres-reload-modules

View file

@ -86,7 +86,19 @@ postgresql-config-dir:
- require:
- cmd: postgresql-cluster-prepared
{%- if postgres.postgresconf %}
{%- set db_port = salt['config.option']('postgres.port') %}
{%- if db_port %}
postgresql-conf-comment-port:
file.comment:
- name: {{ postgres.conf_dir }}/postgresql.conf
- regex: ^port\s*=.+
- require:
- file: postgresql-config-dir
{%- endif %}
{%- if postgres.postgresconf or db_port %}
postgresql-conf:
file.blockreplace:
@ -94,15 +106,23 @@ postgresql-conf:
- marker_start: "# Managed by SaltStack: listen_addresses: please do not edit"
- marker_end: "# Managed by SaltStack: end of salt managed zone --"
- content: |
{%- if postgres.postgresconf %}
{{ postgres.postgresconf|indent(8) }}
{%- endif %}
{%- if db_port %}
port = {{ db_port }}
{%- endif %}
- show_changes: True
- append_if_not_found: True
{#- Detect empty values (none, '') in the config_backup #}
- backup: {{ postgres.config_backup|default(false, true) }}
- require:
- file: postgresql-config-dir
{%- if db_port %}
- file: postgresql-conf-comment-port
{%- endif %}
- watch_in:
- service: postgresql-running
- service: postgresql-running
{%- endif %}
@ -184,7 +204,7 @@ postgresql-running:
service.running:
- name: {{ postgres.service }}
- enable: True
{% if grains.os not in ('MacOS',) %}
{% if grains.os not in ('MacOS',) and not db_port %}
- reload: True
{% endif %}
- watch:
@ -192,25 +212,3 @@ postgresql-running:
- file: postgresql-pg_ident
{%- endif %}
{%- if postgres.port|default(false) %}
postgresql-port:
file.replace:
- name: {{ postgres.conf_dir }}/postgresql.conf
- pattern: ^#*\s*(port)\s*=\s*\d{4,5}(\s*).*$
- repl: >-
\1 = {{ postgres.port }}\2# Managed by SaltStack: please do not edit
- flags: 8 # ['MULTILINE']
- show_changes: True
- append_if_not_found: True
- backup: {{ postgres.config_backup|default(false, true) }}
- require:
- file: postgresql-config-dir
- watch_in:
- service: postgresql-port
service.running:
- name: {{ postgres.service }}
{%- endif %}