151 lines
6.0 KiB
YAML
151 lines
6.0 KiB
YAML
---
|
|
- name: Data directory for Deb/Ubuntu
|
|
block:
|
|
- name: Check if the new postgresql data directory exists
|
|
stat: path={{ psql_data_dir }}
|
|
register: postgresql_data_dir
|
|
|
|
- name: Stop the postgresql service while reconfiguring the data directory
|
|
service: name=postgresql state=stopped
|
|
when: postgresql_data_dir.stat.isdir is not defined
|
|
|
|
- name: Create the postgresql data directory if it is not in the default place
|
|
file: dest={{ psql_data_dir }} owner=postgres group=postgres mode=700 recurse=yes state=directory
|
|
|
|
- name: Set the postgresql data dir if it is different from the default
|
|
become: True
|
|
become_user: postgres
|
|
action: configfile path={{ psql_conf_dir }}/postgresql.conf key=data_directory value="'{{ psql_data_dir }}'"
|
|
|
|
- name: Copy the postgresql data directory into the new place
|
|
shell: '[ "/var/lib/postgresql/{{ psql_version }}/main" != "{{ psql_data_dir }}" ] && cp -a /var/lib/postgresql/{{ psql_version }}/main/* {{ psql_data_dir }}'
|
|
args:
|
|
creates: '{{ psql_data_dir }}/main/base'
|
|
when: postgresql_data_dir.stat.isdir is not defined
|
|
|
|
- name: Start the postgresql service that will use the new data directory
|
|
service: name=postgresql state=started
|
|
when: postgresql_data_dir.stat.isdir is not defined
|
|
|
|
when:
|
|
- psql_use_alternate_data_dir
|
|
- ansible_distribution_file_variety == "Debian"
|
|
tags: [ 'postgresql', 'postgres', 'pg_conf' ]
|
|
|
|
- name: Configuration of Deb/Ubuntu systems
|
|
block:
|
|
- name: Set some postgresql configuration parameters that require a db restart
|
|
become: True
|
|
become_user: postgres
|
|
action: configfile path={{ psql_conf_dir }}/postgresql.conf key={{ item.name }} value="{{ item.value }}"
|
|
with_items: '{{ psql_conf_parameters }}'
|
|
when: item.set == 'True'
|
|
notify: Restart postgresql
|
|
tags: [ 'postgresql', 'postgres', 'pg_conf' ]
|
|
|
|
- name: Set the postgresql logging configuration parameters
|
|
become: True
|
|
become_user: postgres
|
|
action: configfile path={{ psql_conf_dir }}/postgresql.conf key={{ item.name }} value="{{ item.value }}"
|
|
with_items: '{{ psql_log_configuration }}'
|
|
when: item.set == 'True'
|
|
notify: Reload postgresql
|
|
tags: [ 'postgresql', 'postgres', 'pg_conf', 'pg_conf_log' ]
|
|
|
|
- name: Set the postgresql autovacuum configuration parameters
|
|
become: True
|
|
become_user: postgres
|
|
action: configfile path={{ psql_conf_dir }}/postgresql.conf key={{ item.name }} value="{{ item.value }}"
|
|
with_items: '{{ psql_autovacuum_configuration }}'
|
|
when: item.set == 'True'
|
|
notify: Reload postgresql
|
|
tags: [ 'postgresql', 'postgres', 'pg_conf', 'pg_conf_autovacuum' ]
|
|
|
|
when: ansible_distribution_file_variety == "Debian"
|
|
|
|
- name: Data directory for EL
|
|
block:
|
|
- name: Check if the new postgresql data directory exists
|
|
stat: path={{ psql_el_data_dir }}
|
|
register: postgresql_data_dir
|
|
|
|
- name: Stop the postgresql service while reconfiguring the data directory
|
|
service: name='postgresql-{{ psql_version }}' state=stopped
|
|
when: postgresql_data_dir.stat.isdir is not defined
|
|
|
|
- name: Create the postgresql data directory if it is not in the default place
|
|
file: dest={{ psql_el_data_dir }} owner=postgres group=postgres mode=700 recurse=yes state=directory
|
|
|
|
- name: Set the postgresql data dir if it is different from the default
|
|
become: True
|
|
become_user: postgres
|
|
action: configfile path={{ psql_el_conf_dir }}/postgresql.conf key=data_directory value="'{{ psql_el_data_dir }}'"
|
|
|
|
- name: Copy the postgresql data directory into the new place
|
|
shell: '[ "/var/lib/pgsql/{{ psql_version }}/data" != "{{ psql_el_data_dir }}" ] && cp -a /var/lib/pgsql/{{ psql_version }}/data/* {{ psql_el_data_dir }}'
|
|
args:
|
|
creates: '{{ psql_el_data_dir }}/base'
|
|
when: postgresql_data_dir.stat.isdir is not defined
|
|
|
|
- name: Fix the SELinux context for the new data directory
|
|
sefcontext:
|
|
target: '{{ psql_el_base_dir }}(/.*)?'
|
|
setype: postgresql_db_t
|
|
state: present
|
|
|
|
- name: Restore the SELinux context
|
|
command: restorecon -vR {{ psql_el_base_dir }}
|
|
|
|
- name: Start the postgresql service that will use the new data directory
|
|
service: name='postgresql-{{ psql_version }}' state=started
|
|
when: postgresql_data_dir.stat.isdir is not defined
|
|
|
|
when:
|
|
- psql_use_alternate_data_dir
|
|
- ansible_distribution_file_variety == "RedHat"
|
|
tags: [ 'postgresql', 'postgres', 'pg_conf' ]
|
|
|
|
- name: Configuration of EL systems
|
|
block:
|
|
|
|
- name: Create the postgresql log directory
|
|
file: dest={{ psql_log_dir }} state=directory owner=postgres group=postgres mode='0750'
|
|
|
|
- name: Fix the SELinux context for the postgresql log directory
|
|
sefcontext:
|
|
target: '{{ psql_log_dir }}(/.*)?'
|
|
setype: postgresql_db_t
|
|
state: present
|
|
|
|
- name: Fix the SELinux context for the postgresql log directory
|
|
command: restorecon -vR {{ psql_log_dir }}
|
|
|
|
- name: Set some postgresql configuration parameters that require a db restart
|
|
become: True
|
|
become_user: postgres
|
|
action: configfile path={{ psql_el_conf_dir }}/postgresql.conf key={{ item.name }} value="{{ item.value }}"
|
|
with_items: '{{ psql_conf_parameters }}'
|
|
when: item.set == 'True'
|
|
notify: Restart postgresql
|
|
tags: [ 'postgresql', 'postgres', 'pg_conf' ]
|
|
|
|
- name: Set the postgresql logging configuration parameters
|
|
become: True
|
|
become_user: postgres
|
|
action: configfile path={{ psql_el_conf_dir }}/postgresql.conf key={{ item.name }} value="{{ item.value }}"
|
|
with_items: '{{ psql_log_configuration }}'
|
|
when: item.set == 'True'
|
|
notify: Reload postgresql
|
|
tags: [ 'postgresql', 'postgres', 'pg_conf', 'pg_conf_log' ]
|
|
|
|
- name: Set the postgresql autovacuum configuration parameters
|
|
become: True
|
|
become_user: postgres
|
|
action: configfile path={{ psql_el_conf_dir }}/postgresql.conf key={{ item.name }} value="{{ item.value }}"
|
|
with_items: '{{ psql_autovacuum_configuration }}'
|
|
when: item.set == 'True'
|
|
notify: Reload postgresql
|
|
tags: [ 'postgresql', 'postgres', 'pg_conf', 'pg_conf_autovacuum' ]
|
|
|
|
when: ansible_distribution_file_variety == "RedHat"
|