From c2446884965d62b338f094113b66abf7db7e07e1 Mon Sep 17 00:00:00 2001 From: Audrey Roy Date: Thu, 15 May 2014 14:44:39 -0700 Subject: [PATCH 1/5] Add pg_hba.conf, Ubuntu mapping, and example.. --- pillar.example | 3 +++ postgres/init.sls | 9 +++++++++ postgres/map.jinja | 6 ++++++ postgres/pg_hba.conf | 20 ++++++++++++++++++++ 4 files changed, 38 insertions(+) create mode 100644 postgres/pg_hba.conf diff --git a/pillar.example b/pillar.example index 331df2e..3187231 100644 --- a/pillar.example +++ b/pillar.example @@ -6,3 +6,6 @@ postgres: lookup: pkg: postgresql-9.3 + db: + name: mydb + user: mydb \ No newline at end of file diff --git a/postgres/init.sls b/postgres/init.sls index 7d2f9ca..931534f 100644 --- a/postgres/init.sls +++ b/postgres/init.sls @@ -11,3 +11,12 @@ postgresql: - require: - pkg: {{ postgres.pkg }} +pg_hba.conf: + file.managed: + - name: {{ postgres.pg_hba }} + - source: salt://postgres/pg_hba.conf + - user: postgres + - group: postgres + - mode: 644 + - require: + - pkg: {{ postgres.pkg }} \ No newline at end of file diff --git a/postgres/map.jinja b/postgres/map.jinja index a809e5d..e6578bc 100644 --- a/postgres/map.jinja +++ b/postgres/map.jinja @@ -14,4 +14,10 @@ 'python': 'python-psycopg2', 'service': 'postgresql', }, + 'Ubuntu': { + 'pkg': 'postgresql-9.3', + 'python': 'libpq-dev', + 'service': 'postgresql', + 'pg_hba': '/etc/postgresql/9.3/main/pg_hba.conf', + }, }, merge=salt['pillar.get']('postgres:lookup')) %} diff --git a/postgres/pg_hba.conf b/postgres/pg_hba.conf new file mode 100644 index 0000000..14d22f3 --- /dev/null +++ b/postgres/pg_hba.conf @@ -0,0 +1,20 @@ +# TYPE DATABASE USER ADDRESS METHOD + +local {{ pillar['postgres']['db']['name'] }} {{ pillar['postgres']['db']['user'] }} md5 + +# DO NOT DISABLE! +# If you change this first entry you will need to make sure that the +# database superuser can access the database using some other method. +# Noninteractive access to all databases is required during automatic +# maintenance (custom daily cronjobs, replication, and similar tasks). +# +# Database administrative login by Unix domain socket +local all postgres peer + + +# "local" is for Unix domain socket connections only +local all all trust +# IPv4 local connections: +host all all 127.0.0.1/32 trust +# IPv6 local connections: +host all all ::1/128 trust \ No newline at end of file From ac7e017eb575c5c5d1916b165c67563985bdb1a9 Mon Sep 17 00:00:00 2001 From: Audrey Roy Date: Thu, 15 May 2014 14:54:53 -0700 Subject: [PATCH 2/5] Ubuntu uses Debian mapping. --- postgres/map.jinja | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/postgres/map.jinja b/postgres/map.jinja index e6578bc..85d932c 100644 --- a/postgres/map.jinja +++ b/postgres/map.jinja @@ -3,6 +3,7 @@ 'pkg': 'postgresql-9.1', 'python': 'python-pygresql', 'service': 'postgresql', + 'pg_hba': '/etc/postgresql/9.1/main/pg_hba.conf', }, 'RedHat': { 'pkg': 'postgresql', @@ -14,10 +15,4 @@ 'python': 'python-psycopg2', 'service': 'postgresql', }, - 'Ubuntu': { - 'pkg': 'postgresql-9.3', - 'python': 'libpq-dev', - 'service': 'postgresql', - 'pg_hba': '/etc/postgresql/9.3/main/pg_hba.conf', - }, }, merge=salt['pillar.get']('postgres:lookup')) %} From 4a2a60f6bf525ce76e9ec3d2bba6e01f7773732d Mon Sep 17 00:00:00 2001 From: Audrey Roy Date: Thu, 15 May 2014 15:06:04 -0700 Subject: [PATCH 3/5] Add creation of user and db for the app. --- postgres/init.sls | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/postgres/init.sls b/postgres/init.sls index 931534f..e0d1c46 100644 --- a/postgres/init.sls +++ b/postgres/init.sls @@ -19,4 +19,25 @@ pg_hba.conf: - group: postgres - mode: 644 - require: - - pkg: {{ postgres.pkg }} \ No newline at end of file + - pkg: {{ postgres.pkg }} + +postgres-app-user: + postgres_user.present: + - name: {{ pillar['postgres']['db']['user'] }} + - createdb: {{ pillar['postgres']['db']['createdb'] }} + - password: {{ pillar['postgres']['db']['password'] }} + - runas: postgres + - require: + - service: {{ postgres.service }} + +postgres-app-db: + postgres_database.present: + - name: {{ pillar['postgres']['db']['name'] }} + - encoding: UTF8 + - lc_ctype: en_US.UTF8 + - lc_collate: en_US.UTF8 + - template: template0 + - owner: {{ pillar['postgres']['db']['user'] }} + - runas: postgres + - require: + - postgres_user: postgres-app-user From be6689a77035df82c3c5281244dd2da606995bcb Mon Sep 17 00:00:00 2001 From: Audrey Roy Date: Thu, 15 May 2014 15:09:21 -0700 Subject: [PATCH 4/5] Add watch state, to watch pg_hba.conf. --- postgres/init.sls | 2 ++ 1 file changed, 2 insertions(+) diff --git a/postgres/init.sls b/postgres/init.sls index e0d1c46..6bb6936 100644 --- a/postgres/init.sls +++ b/postgres/init.sls @@ -8,6 +8,8 @@ postgresql: - running - enable: true - name: {{ postgres.service }} + - watch: + - file: {{ postgres.pg_hba }} - require: - pkg: {{ postgres.pkg }} From 0657d2fbdecbba3f468c7aae896f4b0d2f03817c Mon Sep 17 00:00:00 2001 From: Audrey Roy Date: Thu, 15 May 2014 15:31:42 -0700 Subject: [PATCH 5/5] pg_hba.conf is Jinja-templated. --- postgres/init.sls | 1 + 1 file changed, 1 insertion(+) diff --git a/postgres/init.sls b/postgres/init.sls index 6bb6936..100f79a 100644 --- a/postgres/init.sls +++ b/postgres/init.sls @@ -17,6 +17,7 @@ pg_hba.conf: file.managed: - name: {{ postgres.pg_hba }} - source: salt://postgres/pg_hba.conf + - template: jinja - user: postgres - group: postgres - mode: 644