From 7b8e4f5a14489b42f525cb2c76ff1fee022d4609 Mon Sep 17 00:00:00 2001 From: Andrew Shu Date: Sat, 9 Nov 2024 21:43:40 -0800 Subject: [PATCH] ansible: fix postgresql in Docker * rm /etc/init.d/postgresql * enable both the meta unit service (postgresql.service) and the cluster service (postgresql@15-main.service) --- ansible/roles/postgresql/handlers/main.yml | 8 ++------ ansible/roles/postgresql/tasks/main.yml | 21 +++++++++++++++++++-- ansible/roles/postgresql/tasks/reload.yml | 10 ++++++++++ ansible/roles/postgresql/tasks/restart.yml | 10 ++++++++++ 4 files changed, 41 insertions(+), 8 deletions(-) create mode 100644 ansible/roles/postgresql/tasks/reload.yml create mode 100644 ansible/roles/postgresql/tasks/restart.yml diff --git a/ansible/roles/postgresql/handlers/main.yml b/ansible/roles/postgresql/handlers/main.yml index 4a6d976..8e6970d 100644 --- a/ansible/roles/postgresql/handlers/main.yml +++ b/ansible/roles/postgresql/handlers/main.yml @@ -1,10 +1,6 @@ --- - name: Restart postgresql - service: - name: postgresql - state: restarted + include_tasks: restart.yml - name: Reload postgresql - service: - name: postgresql - state: reloaded + include_tasks: reload.yml diff --git a/ansible/roles/postgresql/tasks/main.yml b/ansible/roles/postgresql/tasks/main.yml index 025083d..eb6b339 100644 --- a/ansible/roles/postgresql/tasks/main.yml +++ b/ansible/roles/postgresql/tasks/main.yml @@ -3,12 +3,29 @@ apt: name: postgresql-{{ postgresql_version }} -- name: Start and enable PostgreSQL service - service: +- name: Remove postgresql from init.d (may conflict with systemd service) + file: + path: /etc/init.d/postgresql + state: absent + when: is_docker + +- name: Update rc.d to reflect init.d removal + command: + cmd: update-rc.d postgresql remove + when: is_docker + +- name: Start and enable PostgreSQL meta unit service + systemd_service: name: postgresql state: started enabled: true +- name: Start and enable PostgreSQL cluster service + systemd_service: + name: postgresql@{{ postgresql_version }}-main + state: started + enabled: true + - name: Set configuration options in postgresql.conf lineinfile: path: /etc/postgresql/{{ postgresql_version }}/main/postgresql.conf diff --git a/ansible/roles/postgresql/tasks/reload.yml b/ansible/roles/postgresql/tasks/reload.yml new file mode 100644 index 0000000..69a5cbd --- /dev/null +++ b/ansible/roles/postgresql/tasks/reload.yml @@ -0,0 +1,10 @@ +--- +- name: Reload PostgreSQL meta unit service + systemd_service: + name: postgresql + state: reloaded + +- name: Reload PostgreSQL cluster service + systemd_service: + name: postgresql@{{ postgresql_version }}-main + state: reloaded diff --git a/ansible/roles/postgresql/tasks/restart.yml b/ansible/roles/postgresql/tasks/restart.yml new file mode 100644 index 0000000..4a1ea8d --- /dev/null +++ b/ansible/roles/postgresql/tasks/restart.yml @@ -0,0 +1,10 @@ +--- +- name: Restart PostgreSQL meta unit service + systemd_service: + name: postgresql + state: restarted + +- name: Restart PostgreSQL cluster service + systemd_service: + name: postgresql@{{ postgresql_version }}-main + state: restarted