From f96844c7c008c5f11a67dd7ff889bda65af98ceb Mon Sep 17 00:00:00 2001 From: Berry Langerak Date: Wed, 1 Oct 2014 16:55:01 +0200 Subject: [PATCH 1/3] 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'))) %} From aef555ad80ad34c54b761402922fd34200fcc1db Mon Sep 17 00:00:00 2001 From: Berry Langerak Date: Mon, 6 Oct 2014 10:14:34 +0200 Subject: [PATCH 2/3] Fixing issues with Centos (initdb, and service name). --- postgres/init.sls | 18 ++++++++++++++---- postgres/map.jinja | 16 ++++++++++++---- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/postgres/init.sls b/postgres/init.sls index 7c6c2a0..9c6dcb4 100644 --- a/postgres/init.sls +++ b/postgres/init.sls @@ -16,6 +16,17 @@ create-postgresql-cluster: 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 @@ -23,14 +34,13 @@ run-postgresql: - require: - pkg: {{ postgres.pkg }} +{% if postgres.pkg_dev != False %} install-postgres-dev-package: pkg.installed: - name: {{ postgres.pkg_dev }} +{% endif %} -libpq-dev: - pkg.installed - -python-dev: +{{ postgres.pkg_libpq_dev }}: pkg.installed {% if 'pg_hba.conf' in pillar.get('postgres', {}) %} diff --git a/postgres/map.jinja b/postgres/map.jinja index ce8ddb4..073a32e 100644 --- a/postgres/map.jinja +++ b/postgres/map.jinja @@ -2,24 +2,32 @@ 'Debian': { 'pkg': 'postgresql-9.1', 'pkg_dev': 'postgresql-server-dev-9.1', + 'pkg_libpq_dev': 'libpq-dev', 'python': 'python-pygresql', 'service': 'postgresql', 'conf_dir': '/etc/postgresql/9.1/main', 'create_cluster': False, + 'init_db': False, }, 'RedHat': { - 'pkg': 'postgresql', - 'pkg_dev': 'postgresql-server-dev-9.1', - 'python': 'postgresql-python', + 'pkg': 'postgresql-server', + 'pkg_dev': 'postgresql-devel', + 'pkg_libpq_dev': 'postgresql-libs', + 'python': 'python-psycopg2', 'service': 'postgresql', + 'conf_dir': '/var/lib/pgsql/data', 'create_cluster': False, + 'init_db': True, }, 'Arch': { 'pkg': 'postgresql', - 'pkg_dev': 'postgresql-server-dev-9.1', + 'pkg_dev': 'postgresql-devel', + 'pkg_libpq_dev': 'postgresql-libs', 'python': 'python-psycopg2', 'service': 'postgresql', + 'conf_dir': '/var/lib/pgsql/data/', 'create_cluster': False, + 'init_db': False, }, }, merge=salt['grains.filter_by']({ '14.04': { From 59e6f3e1fdd4a9070f926a6655f93877c1a26da3 Mon Sep 17 00:00:00 2001 From: Berry Langerak Date: Mon, 6 Oct 2014 10:38:12 +0200 Subject: [PATCH 3/3] Removing the static 9.3 from init.sls, moving it to a variable. --- postgres/init.sls | 2 +- postgres/map.jinja | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/postgres/init.sls b/postgres/init.sls index 9c6dcb4..944c30c 100644 --- a/postgres/init.sls +++ b/postgres/init.sls @@ -10,7 +10,7 @@ create-postgresql-cluster: cmd.run: - cwd: / - user: root - - name: pg_createcluster 9.3 main --start + - name: pg_createcluster {{ postgres.version }} main --start - unless: test -f {{ postgres.conf_dir }}/postgresql.conf - env: LC_ALL: C.UTF-8 diff --git a/postgres/map.jinja b/postgres/map.jinja index 073a32e..ec58d6a 100644 --- a/postgres/map.jinja +++ b/postgres/map.jinja @@ -8,6 +8,7 @@ 'conf_dir': '/etc/postgresql/9.1/main', 'create_cluster': False, 'init_db': False, + 'version': '9.1', }, 'RedHat': { 'pkg': 'postgresql-server', @@ -18,6 +19,7 @@ 'conf_dir': '/var/lib/pgsql/data', 'create_cluster': False, 'init_db': True, + 'version': '9.1', }, 'Arch': { 'pkg': 'postgresql', @@ -28,6 +30,7 @@ 'conf_dir': '/var/lib/pgsql/data/', 'create_cluster': False, 'init_db': False, + 'version': '9.1', }, }, merge=salt['grains.filter_by']({ '14.04': { @@ -36,5 +39,6 @@ 'conf_dir': '/etc/postgresql/9.3/main', 'service': 'postgresql', 'create_cluster': True, + 'version': '9.3', }, }, grain='lsb_distrib_release', merge=salt['pillar.get']('postgres:lookup'))) %}