postgres-formula/postgres/init.sls

93 lines
2.9 KiB
Text
Raw Normal View History

{% from "postgres/map.jinja" import postgres with context %}
install-postgresql:
pkg.installed:
- name: {{ postgres.pkg }}
{% if postgres.create_cluster != False %}
create-postgresql-cluster:
cmd.run:
- cwd: /
- user: root
- name: pg_createcluster {{ postgres.version }} main --start
- unless: test -f {{ postgres.conf_dir }}/postgresql.conf
- env:
LC_ALL: C.UTF-8
{% endif %}
{% if postgres.init_db != False %}
postgresql-initdb:
cmd.run:
- cwd: /
- user: root
- name: service postgresql initdb
- unless: test -f {{ postgres.conf_dir }}/postgresql.conf
- env:
LC_ALL: C.UTF-8
{% endif %}
run-postgresql:
service.running:
- enable: true
- name: {{ postgres.service }}
- require:
- pkg: {{ postgres.pkg }}
{% if postgres.pkg_dev != False %}
install-postgres-dev-package:
pkg.installed:
- name: {{ postgres.pkg_dev }}
{% endif %}
{{ postgres.pkg_libpq_dev }}:
2014-07-27 01:58:18 -04:00
pkg.installed
2013-07-16 10:23:53 -06:00
{% if 'pg_hba.conf' in pillar.get('postgres', {}) %}
pg_hba.conf:
file.managed:
- name: {{ postgres.conf_dir }}/pg_hba.conf
- source: {{ salt['pillar.get']('postgres:pg_hba.conf', 'salt://postgres/pg_hba.conf') }}
2014-05-15 15:31:42 -07:00
- 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 %}