Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use the the original PostgreSQL configuration file #41

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
5 changes: 3 additions & 2 deletions defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
# Recursively reset the owner/group of the postgres datadir?
postgresql_server_chown_datadir: false

postgres_config_file_contents: ''
######################################################################
# Internal role variables, do not modify
######################################################################
Expand All @@ -51,14 +52,14 @@
{{
(postgresql_package_version | length > 0) |
ternary('-' + postgresql_package_version, '')
}}
}}

Check failure on line 55 in defaults/main.yml

View workflow job for this annotation

GitHub Actions / Test (rockylinux9)

55:7 [trailing-spaces] trailing spaces

Check failure on line 55 in defaults/main.yml

View workflow job for this annotation

GitHub Actions / Test (rockylinux9)

yaml[trailing-spaces]

Trailing spaces

Check failure on line 55 in defaults/main.yml

View workflow job for this annotation

GitHub Actions / Test (ubuntu2204)

55:7 [trailing-spaces] trailing spaces

Check failure on line 55 in defaults/main.yml

View workflow job for this annotation

GitHub Actions / Test (ubuntu2204)

yaml[trailing-spaces]

Trailing spaces

# Attributes are parsed and used to set facts at tasks/debian.yml.
# Debian variation, following the same principles of postgresql_dist_redhat
postgresql_dist_debian:
bindir: /usr/lib/postgresql/{{ postgresql_version }}/bin
confdir: /etc/postgresql/{{ postgresql_version }}/main
conf_postgresql_src: postgresql-conf-10-ubuntu.j2
conf_postgresql_src: postgresql-conf.j2
datadir: /var/lib/postgresql/{{ postgresql_version }}/main
basename: postgresql-{{ postgresql_version }}
service: postgresql
13 changes: 11 additions & 2 deletions molecule/resources/tests/test_default.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,14 +48,23 @@ def test_server_listen(host):
assert listen_addresses == "listen_addresses = localhost"


def test_backup_config_exist(host):
version = get_version(host)
if host.system_info.distribution == 'rocky':
config_backup = '/var/lib/pgsql/{version}/data/postgresql.conf.org'
else:
config_backup = '/etc/postgresql/{version}/main/postgresql.conf.org'
with host.sudo():
backup_file = config_backup.format(version=version)
assert host.file(backup_file).is_file


def test_psql_version(host):
ver = get_version(host)
out = host.check_output('psql --version')
assert out.startswith('psql (PostgreSQL) {}.'.format(ver))


# Create

def createdb(host, db, should_pass, password, name):
try:
host.check_output(
Expand Down
4 changes: 2 additions & 2 deletions molecule/resources/tests/test_extra_options.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ def test_server_log_file_name(host):
# Check previous day too in case this is run at midnight
version = get_version(host)
if host.system_info.distribution == 'rocky':
logdir = '/var/lib/pgsql/{version}/data/pg_log'
logdir = '/var/lib/pgsql/{version}/data/log'
else:
logdir = '/var/lib/postgresql/{version}/main/pg_log'
logdir = '/var/lib/postgresql/{version}/main/log'
date1 = datetime.today()
date0 = date1 - timedelta(days=1)
logdir = logdir.format(version=version)
Expand Down
55 changes: 50 additions & 5 deletions tasks/initialise.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,27 +22,72 @@
PGSETUP_INITDB_OPTIONS: >-
--encoding=UTF8 --locale=en_US.UTF-8 --auth-host=md5

- name: postgres | postgresql config file
template:
- name: postgres | check that the postgresql.conf.org file exists
ansible.builtin.stat:
path: "{{ postgresql_dist_confdir }}/postgresql.conf.org"
register: org_file

- name: postgres | remove the custom configurations from the file, if any
command: sed -i '/# Add settings for extensions here/q' "{{ postgresql_dist_confdir }}/postgresql.conf"

Check failure on line 31 in tasks/initialise.yml

View workflow job for this annotation

GitHub Actions / Test (rockylinux9)

31:81 [line-length] line too long (109 > 80 characters)

Check failure on line 31 in tasks/initialise.yml

View workflow job for this annotation

GitHub Actions / Test (ubuntu2204)

31:81 [line-length] line too long (109 > 80 characters)
when:
- not org_file.stat.exists

- name: postgres | remove the Ansible managed line, if any
ansible.builtin.lineinfile:
path: "{{ postgresql_dist_confdir }}/postgresql.conf"

Check failure on line 37 in tasks/initialise.yml

View workflow job for this annotation

GitHub Actions / Test (rockylinux9)

37:11 [indentation] wrong indentation: expected 8 but found 10

Check failure on line 37 in tasks/initialise.yml

View workflow job for this annotation

GitHub Actions / Test (ubuntu2204)

37:11 [indentation] wrong indentation: expected 8 but found 10
regexp: "#Ansible managed"
state: absent
when:
- not org_file.stat.exists

- name: postgres | copy a postgresql.conf to postgresql.conf.org
become_user: "{{ postgresql_become_user }}"
ansible.builtin.copy:
src: "{{ postgresql_dist_confdir }}/postgresql.conf"
dest: "{{ postgresql_dist_confdir }}/postgresql.conf.org"
remote_src: yes

Check warning on line 48 in tasks/initialise.yml

View workflow job for this annotation

GitHub Actions / Test (rockylinux9)

48:21 [truthy] truthy value should be one of [false, true]

Check warning on line 48 in tasks/initialise.yml

View workflow job for this annotation

GitHub Actions / Test (ubuntu2204)

48:21 [truthy] truthy value should be one of [false, true]
check_mode: false
when:
- not org_file.stat.exists

# read the default postgresql configuration file
- name: postgres | get the postgres conf file contents
become_user: "{{ postgresql_become_user }}"
ansible.builtin.slurp:
src: "{{ postgresql_dist_confdir }}/postgresql.conf.org"
register: postgres_config_file_contents_o

- set_fact: postgres_config_file_contents={{ postgres_config_file_contents_o }}

Check failure on line 60 in tasks/initialise.yml

View workflow job for this annotation

GitHub Actions / Test (rockylinux9)

60:81 [line-length] line too long (83 > 80 characters)

Check failure on line 60 in tasks/initialise.yml

View workflow job for this annotation

GitHub Actions / Test (ubuntu2204)

60:81 [line-length] line too long (83 > 80 characters)

- name: postgres | copy postgresql config file
become_user: "{{ postgresql_become_user }}"
ansible.builtin.template:
dest: >-
{{ postgresql_dist_confdir }}/postgresql.conf
src: "{{ postgresql_dist_conf_postgresql_src }}"
mode: 0644
owner: "{{ postgresql_become_user }}"
notify:
- restart postgresql

become_user: "{{ postgresql_become_user }}"
sbesson marked this conversation as resolved.
Show resolved Hide resolved
- name: postgres | Remove the org config file if it runs in a check mode and the org file does not exist in the host

Check failure on line 73 in tasks/initialise.yml

View workflow job for this annotation

GitHub Actions / Test (rockylinux9)

73:81 [line-length] line too long (120 > 80 characters)

Check failure on line 73 in tasks/initialise.yml

View workflow job for this annotation

GitHub Actions / Test (ubuntu2204)

73:81 [line-length] line too long (120 > 80 characters)
ansible.builtin.file:
path: "{{ postgresql_dist_confdir }}/postgresql.conf.org"
state: absent
check_mode: false
when:
- not org_file.stat.exists
- ansible_check_mode

- name: postgres | configure client authorisation
become_user: "{{ postgresql_become_user }}"
template:
dest: "{{ postgresql_dist_confdir }}/pg_hba.conf"
src: pg_hba-conf.j2
mode: 0640
notify:
- restart postgresql

become_user: "{{ postgresql_become_user }}"

- name: postgres | start service
service:
enabled: true
Expand Down
Loading
Loading