PoC ready
diff --git a/postgresql/map.jinja b/postgresql/map.jinja
index c497f50..530c465 100644
--- a/postgresql/map.jinja
+++ b/postgresql/map.jinja
@@ -12,10 +12,10 @@
'gis': False,
},
'RedHat': {
- 'pkgs': ['postgresql'+version_numbers+'-server', 'postgresql'+version_numbers+'-contrib'],
+ 'pkgs': ['postgresql93-server', 'postgresql93-contrib'],
'service': 'postgresql-'+version,
'version': version,
- 'init_command': 'service postgresql initdb',
+ 'init_command': 'service postgresql-9.3 initdb',
'dir': {
'config': '/var/lib/pgsql/data'
},
diff --git a/postgresql/server.sls b/postgresql/server.sls
index 6973983..b0beed9 100644
--- a/postgresql/server.sls
+++ b/postgresql/server.sls
@@ -5,6 +5,8 @@
pkg.installed:
- names: {{ server.pkgs }}
+{%- if grains.os_family == "Debian" %}
+
init_postgresql_cluster:
cmd.run:
- name: {{ server.init_command }}
@@ -12,6 +14,11 @@
- cwd: /root
- require:
- pkg: postgresql_packages
+ - require_in:
+ - file: {{ server.dir.config }}/pg_hba.conf
+ - file: {{ server.dir.config }}/postgresql.conf
+
+{%- endif %}
{{ server.dir.config }}/pg_hba.conf:
file.managed:
@@ -20,8 +27,6 @@
- user: postgres
- group: postgres
- mode: 600
- - require:
- - cmd: init_postgresql_cluster
{{ server.dir.config }}/postgresql.conf:
file.managed:
@@ -32,8 +37,6 @@
- defaults:
postgresql_version: {{ server.version }}
- mode: 600
- - require:
- - cmd: init_postgresql_cluster
/root/.pgpass:
file.managed:
@@ -42,8 +45,6 @@
- user: root
- group: root
- mode: 600
- - require:
- - cmd: init_postgresql_cluster
postgresql_service:
service.running:
@@ -69,62 +70,7 @@
- require:
- pkg: postgresql_packages
-
-{%- for database in server.get('databases', []) %}
-
-{%- for user in database.users %}
-
-postgresql_user_{{ database.name }}_{{ user.name }}:
- postgres_user.present:
- - name: {{ user.name }}
- - user: postgres
- {% if user.get('createdb', False) %}
- - createdb: enabled
- {% endif %}
- - password: {{ user.password }}
- - require:
- - service: postgresql_service
-
-{%- endfor %}
-
-postgresql_database_{{ database.name }}:
- postgres_database.present:
- - name: {{ database.name }}
- - encoding: {{ database.encoding }}
- - user: postgres
- - template: template0
- - owner: {% for user in database.users %}{% if loop.first %}{{ user.name }}{% endif %}{% endfor %}
- - require:
- {%- for user in database.users %}
- - postgres_user: postgresql_user_{{ database.name }}_{{ user.name }}
- {%- endfor %}
-
-{% if database.initial_data is defined %}
-
-{%- set engine = database.initial_data.get("engine", "backupninja") %}
-
-/root/postgresql/scripts/restore_{{ database.name }}.sh:
- file.managed:
- - source: salt://postgresql/files/restore.sh
- - mode: 770
- - template: jinja
- - defaults:
- database_name: {{ database.name }}
- - require:
- - file: postgresql_dirs
- - postgres_database: postgresql_database_{{ database.name }}
-
-restore_postgresql_database_{{ database.name }}:
- cmd.run:
- - name: /root/postgresql/scripts/restore_{{ database.name }}.sh
- - unless: "[ -f /root/postgresql/flags/{{ database.name }}-installed ]"
- - cwd: /root
- - require:
- - file: /root/postgresql/scripts/restore_{{ database.name }}.sh
-
-{% endif %}
-
-{%- endfor %}
+{%- if grains.os_family == "Debian" %}
{%- for database_name, database in server.get('database', {}).iteritems() %}
@@ -179,7 +125,7 @@
{%- endfor %}
-{% if database.initial_data is defined %}
+{%- if database.initial_data is defined %}
{%- set engine = database.initial_data.get("engine", "backupninja") %}
@@ -202,10 +148,12 @@
- require:
- file: /root/postgresql/scripts/restore_{{ database_name }}.sh
-{% endif %}
+{%- endif %}
{%- endfor %}
+{%- endif %}
+
{% if server.initial_data is defined %}
{%- set engine = server.initial_data.get("engine", "barman") %}
@@ -228,5 +176,4 @@
{% endif %}
-
{%- endif %}