{% 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 %}