Files
postgres-formula/postgres/init.sls
Brian Jackson 967fa6504b Switch to new style map.jinja
Move this formula to the new style map.jinja. Still need to sort out RedHat
handling, but it's not any worse than it was before (i.e. horribly broken)
2015-04-22 17:47:02 -05:00

115 lines
2.9 KiB
Plaintext

{% from "postgres/map.jinja" import postgres with context %}
{% if postgres.use_upstream_repo %}
include:
- postgres.upstream
{% endif %}
install-postgresql:
pkg.installed:
- name: {{ postgres.pkg }}
- refresh: {{ postgres.use_upstream_repo }}
{% 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 %}
{% if postgres.pkg_libpq_dev != False %}
install-postgres-libpq-dev:
pkg.installed:
- name: {{ postgres.pkg_libpq_dev }}
{% endif %}
{% if postgres.pkg_contrib != False %}
install-postgres-contrib:
pkg.installed:
- name: {{ postgres.pkg_contrib }}
{% endif %}
{% if postgres.postgresconf %}
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: |
{{ postgres.postgresconf|indent(8) }}
- show_changes: True
- append_if_not_found: True
- watch_in:
- service: postgresql
{% endif %}
pg_hba.conf:
file.managed:
- name: {{ postgres.conf_dir }}/pg_hba.conf
- source: {{ postgres['pg_hba.conf'] }}
- template: jinja
- user: postgres
- group: postgres
- mode: 644
- require:
- pkg: {{ postgres.pkg }}
- watch_in:
- service: postgresql
{% for name, user in postgres.users.items() %}
postgres-user-{{ name }}:
postgres_user.present:
- name: {{ name }}
- createdb: {{ user.get('createdb', False) }}
- password: {{ user.get('password', 'changethis') }}
- user: {{ user.get('runas', 'postgres') }}
- require:
- service: {{ postgres.service }}
{% endfor%}
{% for name, db in postgres.databases.items() %}
postgres-db-{{ name }}:
postgres_database.present:
- name: {{ name }}
- encoding: {{ db.get('encoding', 'UTF8') }}
- lc_ctype: {{ db.get('lc_ctype', 'en_US.UTF8') }}
- lc_collate: {{ db.get('lc_collate', 'en_US.UTF8') }}
- template: {{ db.get('template', 'template0') }}
{% if db.get('owner') %}
- owner: {{ db.get('owner') }}
{% endif %}
- user: {{ db.get('runas', 'postgres') }}
{% if db.get('user') %}
- require:
- postgres_user: postgres-user-{{ db.get('user') }}
{% endif %}
{% endfor%}