Added the ability to add custom configuration to the postgresql.conf configuration file.

This commit is contained in:
Berry Langerak 2014-10-06 11:34:43 +02:00
parent 1c1417e1b8
commit c9aeea4c66
3 changed files with 30 additions and 1 deletions

View file

@ -34,3 +34,8 @@ postgres:
template: 'template0' template: 'template0'
lc_ctype: 'C.UTF-8' lc_ctype: 'C.UTF-8'
lc_collate: 'C.UTF-8' lc_collate: 'C.UTF-8'
# This section will append your configuration to postgresql.conf.
postgresconf: |
listen_addresses = 'localhost,*'

View file

@ -23,6 +23,19 @@ libpq-dev:
python-dev: python-dev:
pkg.installed pkg.installed
{% if 'postgresconf' in pillar.get('postgres', {}) %}
postgresql-conf:
file.blockreplace:
- name: {{ postgres.conf_dir }}/postgresql.conf
- marker_start: "# Managed by SaltStack: listen_addresses: please do not edit"
- marker_end: "# Managed by SaltStack: end of salt managed zone --"
- content: {{ salt['pillar.get']('postgres:postgresconf') }}
- show_changes: True
- append_if_not_found: True
- watch_in:
- service: postgresql
{% endif %}
{% if 'pg_hba.conf' in pillar.get('postgres', {}) %} {% if 'pg_hba.conf' in pillar.get('postgres', {}) %}
pg_hba.conf: pg_hba.conf:
file.managed: file.managed:
@ -38,6 +51,7 @@ pg_hba.conf:
- service: postgresql - service: postgresql
{% endif %} {% endif %}
{% if 'users' in pillar.get('postgres', {}) %} {% if 'users' in pillar.get('postgres', {}) %}
{% for name, user in salt['pillar.get']('postgres:users').items() %} {% for name, user in salt['pillar.get']('postgres:users').items() %}
postgres-user-{{ name }}: postgres-user-{{ name }}:
@ -70,3 +84,4 @@ postgres-db-{{ name }}:
{% endif %} {% endif %}
{% endfor%} {% endfor%}
{% endif %} {% endif %}

View file

@ -4,15 +4,24 @@
'python': 'python-pygresql', 'python': 'python-pygresql',
'service': 'postgresql', 'service': 'postgresql',
'pg_hba': '/etc/postgresql/9.1/main/pg_hba.conf', 'pg_hba': '/etc/postgresql/9.1/main/pg_hba.conf',
'conf_dir': '/etc/postgresql/9.1/main',
}, },
'RedHat': { 'RedHat': {
'pkg': 'postgresql', 'pkg': 'postgresql',
'python': 'postgresql-python', 'python': 'postgresql-python',
'service': 'postgresql', 'service': 'postgresql',
'conf_dir': '/var/lib/pgsql/data',
}, },
'Arch': { 'Arch': {
'pkg': 'postgresql', 'pkg': 'postgresql',
'python': 'python-psycopg2', 'python': 'python-psycopg2',
'service': 'postgresql', 'service': 'postgresql',
'conf_dir': '/var/lib/pgsql/data',
}, },
}, merge=salt['pillar.get']('postgres:lookup')) %} }, merge=salt['grains.filter_by']({
'14.04': {
'pkg': 'postgresql',
'pkg_dev': 'postgresql-server-dev-9.3',
'conf_dir': '/etc/postgresql/9.3/main',
},
}, grain='lsb_distrib_release', merge=salt['pillar.get']('postgres:lookup'))) %}