mirror of
https://github.com/saltstack-formulas/postgres-formula.git
synced 2025-04-16 01:30:25 +00:00
72 lines
2.2 KiB
Text
72 lines
2.2 KiB
Text
{% from "postgres/map.jinja" import postgres with context %}
|
|
|
|
postgresql:
|
|
|
|
pkg:
|
|
- installed
|
|
- name: {{ postgres.pkg }}
|
|
|
|
service:
|
|
- running
|
|
- enable: true
|
|
- name: {{ postgres.service }}
|
|
- require:
|
|
- pkg: {{ postgres.pkg }}
|
|
|
|
|
|
postgresql-server-dev-9.3:
|
|
pkg.installed
|
|
|
|
libpq-dev:
|
|
pkg.installed
|
|
|
|
python-dev:
|
|
pkg.installed
|
|
|
|
{% if 'pg_hba.conf' in pillar.get('postgres', {}) %}
|
|
pg_hba.conf:
|
|
file.managed:
|
|
- name: {{ postgres.pg_hba }}
|
|
- source: {{ salt['pillar.get']('postgres:pg_hba.conf', 'salt://postgres/pg_hba.conf') }}
|
|
- template: jinja
|
|
- user: postgres
|
|
- group: postgres
|
|
- mode: 644
|
|
- require:
|
|
- pkg: {{ postgres.pkg }}
|
|
- watch_in:
|
|
- service: postgresql
|
|
{% endif %}
|
|
|
|
{% if 'users' in pillar.get('postgres', {}) %}
|
|
{% for name, user in salt['pillar.get']('postgres:users').items() %}
|
|
postgres-user-{{ name }}:
|
|
postgres_user.present:
|
|
- name: {{ name }}
|
|
- createdb: {{ salt['pillar.get']('postgres:users:' + name + ':createdb', False) }}
|
|
- password: {{ salt['pillar.get']('postgres:users:' + name + ':password', 'changethis') }}
|
|
- runas: postgres
|
|
- require:
|
|
- service: {{ postgres.service }}
|
|
{% endfor%}
|
|
{% endif %}
|
|
|
|
{% if 'databases' in pillar.get('postgres', {}) %}
|
|
{% for name, db in salt['pillar.get']('postgres:databases').items() %}
|
|
postgres-db-{{ name }}:
|
|
postgres_database.present:
|
|
- name: {{ name }}
|
|
- encoding: {{ salt['pillar.get']('postgres:databases:'+ name +':encoding', 'UTF8') }}
|
|
- lc_ctype: {{ salt['pillar.get']('postgres:databases:'+ name +':lc_ctype', 'en_US.UTF8') }}
|
|
- lc_collate: {{ salt['pillar.get']('postgres:databases:'+ name +':lc_collate', 'en_US.UTF8') }}
|
|
- template: {{ salt['pillar.get']('postgres:databases:'+ name +':template', 'template0') }}
|
|
{% if salt['pillar.get']('postgres:databases:'+ name +':owner') %}
|
|
- owner: {{ salt['pillar.get']('postgres:databases:'+ name +':owner') }}
|
|
{% endif %}
|
|
- runas: {{ salt['pillar.get']('postgres:databases:'+ name +':runas', 'postgres') }}
|
|
{% if salt['pillar.get']('postgres:databases:'+ name +':user') %}
|
|
- require:
|
|
- postgres_user: postgres-user-{{ salt['pillar.get']('postgres:databases:'+ name +':user') }}
|
|
{% endif %}
|
|
{% endfor%}
|
|
{% endif %}
|