From 79b83fe414e0de43b13945d02735457114757092 Mon Sep 17 00:00:00 2001 From: Denys Havrysh Date: Fri, 13 Jan 2017 12:09:45 +0200 Subject: [PATCH] Make local backup of `pg_hba.conf` file before modification --- pillar.example | 12 ++++++------ postgres/defaults.yaml | 3 ++- postgres/server/init.sls | 22 ++++++++++++++++++---- 3 files changed, 26 insertions(+), 11 deletions(-) diff --git a/pillar.example b/pillar.example index 0d294cf..4e02719 100644 --- a/pillar.example +++ b/pillar.example @@ -19,12 +19,6 @@ postgres: postgresconf: | listen_addresses = '*' # listen on all interfaces - # Backup extension for postgresql.conf file, defaults to ``.bak``. - # Set to False to stop creation of backup on postgresql.conf changes. - {%- if 'status.time' in salt.keys() %} - postgresconf_backup: ".backup@{{ salt['status.time']('%y-%m-%d_%H:%M:%S') }}" - {%- endif %} - # Path to the `pg_hba.conf` file Jinja template on Salt Fileserver pg_hba.conf: salt://postgres/templates/pg_hba.conf.j2 @@ -48,6 +42,12 @@ postgres: - ['local', 'db1', 'localUser'] - ['host', 'db2', 'remoteUser', '192.168.33.0/24'] + # Backup extension for configuration files, defaults to ``.bak``. + # Set ``False`` to stop creation of backups when config files change. + {%- if 'status.time' in salt.keys() %} + config_backup: ".backup@{{ salt['status.time']('%y-%m-%d_%H:%M:%S') }}" + {%- endif %} + # PostgreSQL service name service: postgresql diff --git a/postgres/defaults.yaml b/postgres/defaults.yaml index d421aff..50f9acc 100644 --- a/postgres/defaults.yaml +++ b/postgres/defaults.yaml @@ -20,7 +20,6 @@ postgres: conf_dir: /var/lib/pgsql/data postgresconf: "" - postgresconf_backup: '.bak' pg_hba.conf: salt://postgres/templates/pg_hba.conf.j2 acls: @@ -31,6 +30,8 @@ postgres: # IPv6 local connections: - ['host', 'all', 'all', '::1/128', 'md5'] + config_backup: '.bak' + service: postgresql bake_image: False diff --git a/postgres/server/init.sls b/postgres/server/init.sls index 91fe11d..fc8b2c1 100644 --- a/postgres/server/init.sls +++ b/postgres/server/init.sls @@ -8,8 +8,6 @@ {%- do includes.append('postgres.upstream') %} {%- endif %} -{%- set pkgs = [postgres.pkg] + postgres.pkgs_extra %} - {%- if includes -%} include: @@ -17,6 +15,8 @@ include: {%- endif %} +{%- set pkgs = [postgres.pkg] + postgres.pkgs_extra %} + # Install, configure and start PostgreSQL server postgresql-server: @@ -82,7 +82,7 @@ postgresql-conf: {{ postgres.postgresconf|indent(8) }} - show_changes: True - append_if_not_found: True - - backup: {{ postgres.postgresconf_backup }} + - backup: {{ postgres.config_backup }} - require: - file: postgresql-config-dir - watch_in: @@ -90,9 +90,23 @@ postgresql-conf: {%- endif %} +{%- set pg_hba_path = salt['file.join'](postgres.conf_dir, 'pg_hba.conf') %} + +postgresql-pg_hba-backup: + file.copy: + - name: {{ pg_hba_path ~ postgres.config_backup }} + - source: {{ pg_hba_path }} + - force: True + - user: {{ postgres.user }} + - group: {{ postgres.group }} + - mode: 600 + - onlyif: test -f {{ pg_hba_path }} + - prereq: + - file: postgresql-pg_hba + postgresql-pg_hba: file.managed: - - name: {{ postgres.conf_dir }}/pg_hba.conf + - name: {{ pg_hba_path }} - user: {{ postgres.user }} - group: {{ postgres.group }} - mode: 600