diff --git a/pillar.example b/pillar.example index 48d0e078..766b004b 100644 --- a/pillar.example +++ b/pillar.example @@ -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 @@ -34,7 +38,7 @@ postgres: # POSTGRES # 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 diff --git a/postgres/server/init.sls b/postgres/server/init.sls index ace913d3..ddb736ca 100644 --- a/postgres/server/init.sls +++ b/postgres/server/init.sls @@ -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,30 @@ 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 + - module: postgresql-service-restart + +# Restart the service where reloading is not sufficient +# Currently only when changes are made to `postgresql.conf` +postgresql-service-restart: + module.wait: + - name: service.restart + - m_name: {{ postgres.service }} {%- endif %}