From f96844c7c008c5f11a67dd7ff889bda65af98ceb Mon Sep 17 00:00:00 2001 From: Berry Langerak Date: Wed, 1 Oct 2014 16:55:01 +0200 Subject: [PATCH] Adding PostgreSQL 9.3 support for Ubuntu 14.04 - Added conditional support for PostgreSQL 9.3. - Added conf_dir and create_cluster variables to denote actions based on OS / release. --- postgres/init.sls | 30 ++++++++++++++++++++---------- postgres/map.jinja | 18 ++++++++++++++++-- 2 files changed, 36 insertions(+), 12 deletions(-) diff --git a/postgres/init.sls b/postgres/init.sls index 6ba093c..7c6c2a0 100644 --- a/postgres/init.sls +++ b/postgres/init.sls @@ -1,22 +1,32 @@ {% from "postgres/map.jinja" import postgres with context %} -postgresql: - pkg: - - installed +install-postgresql: + pkg.installed: - name: {{ postgres.pkg }} - service: - - running +{% if postgres.create_cluster != False %} +create-postgresql-cluster: + cmd.run: + - cwd: / + - user: root + - name: pg_createcluster 9.3 main --start + - 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 }} - -postgresql-server-dev-9.3: - pkg.installed - +install-postgres-dev-package: + pkg.installed: + - name: {{ postgres.pkg_dev }} + libpq-dev: pkg.installed @@ -26,7 +36,7 @@ python-dev: {% if 'pg_hba.conf' in pillar.get('postgres', {}) %} pg_hba.conf: file.managed: - - name: {{ postgres.pg_hba }} + - name: {{ postgres.conf_dir }}/pg_hba.conf - source: {{ salt['pillar.get']('postgres:pg_hba.conf', 'salt://postgres/pg_hba.conf') }} - template: jinja - user: postgres diff --git a/postgres/map.jinja b/postgres/map.jinja index 85d932c..ce8ddb4 100644 --- a/postgres/map.jinja +++ b/postgres/map.jinja @@ -1,18 +1,32 @@ {% set postgres = salt['grains.filter_by']({ 'Debian': { 'pkg': 'postgresql-9.1', + 'pkg_dev': 'postgresql-server-dev-9.1', 'python': 'python-pygresql', 'service': 'postgresql', - 'pg_hba': '/etc/postgresql/9.1/main/pg_hba.conf', + 'conf_dir': '/etc/postgresql/9.1/main', + 'create_cluster': False, }, 'RedHat': { 'pkg': 'postgresql', + 'pkg_dev': 'postgresql-server-dev-9.1', 'python': 'postgresql-python', 'service': 'postgresql', + 'create_cluster': False, }, 'Arch': { 'pkg': 'postgresql', + 'pkg_dev': 'postgresql-server-dev-9.1', 'python': 'python-psycopg2', 'service': 'postgresql', + 'create_cluster': False, }, -}, 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', + 'service': 'postgresql', + 'create_cluster': True, + }, +}, grain='lsb_distrib_release', merge=salt['pillar.get']('postgres:lookup'))) %}