diff --git a/ansible/roles/infra/handlers/main.yaml b/ansible/roles/infra/handlers/main.yaml index ec14d7f..f2ca407 100644 --- a/ansible/roles/infra/handlers/main.yaml +++ b/ansible/roles/infra/handlers/main.yaml @@ -12,7 +12,7 @@ - name: Reload postgresql ansible.builtin.command: /usr/bin/podman exec -u postgres postgresql sh -c "pg_ctl reload" - when: not (is_postgresql_init_run | default(false)) + when: is_postgresql_init.stat.exists changed_when: false listen: "notification_reload_postgresql" ignore_errors: true # noqa: ignore-errors @@ -24,7 +24,7 @@ enabled: true daemon_reload: true scope: "user" - when: not (is_postgresql_init_run | default(false)) + when: is_postgresql_init.stat.exists changed_when: false listen: "notification_restart_postgresql" ignore_errors: true # noqa: ignore-errors diff --git a/ansible/roles/infra/tasks/services/set_postgresql.yaml b/ansible/roles/infra/tasks/services/set_postgresql.yaml index 52e928a..09dae46 100644 --- a/ansible/roles/infra/tasks/services/set_postgresql.yaml +++ b/ansible/roles/infra/tasks/services/set_postgresql.yaml @@ -88,15 +88,13 @@ no_log: true - name: Check data directory empty - ansible.builtin.find: - paths: "{{ node['home_path'] }}/containers/postgresql/data/" - hidden: true - file_type: "any" + ansible.builtin.stat: + path: "{{ node['home_path'] }}/containers/postgresql/data/.init" become: true - register: "is_data_dir_empty" + register: "is_postgresql_init" - name: Prepare initiating DB - when: is_data_dir_empty.matched == 0 + when: not is_postgresql_init.stat.exists become: true block: # `init/pg_cluster.sql` should be fetched from postgresql's backup directory before running initiating @@ -118,9 +116,14 @@ loop: "{{ connected_services }}" loop_control: index_var: index_num - - name: Set is_postgresql_init_run - ansible.builtin.set_fact: - is_postgresql_init_run: true + + - name: Create .init file + ansible.builtin.file: + path: "{{ node['home_path'] }}/containers/postgresql/data/.init" + state: "touch" + mode: "0644" + owner: "{{ ansible_user }}" + group: "svadmins" - name: Deploy container file ansible.builtin.template: