xoxys.postgres/tasks/main.yml

63 lines
1.8 KiB
YAML

---
- name: Create network specs
ansible.builtin.template:
src: etc/containers/systemd/postgres.network.j2
dest: "/etc/containers/systemd/{{ postgres_network }}"
owner: root
group: root
mode: "0640"
when: postgres_network | splitext | last == ".network"
notify: __postgres_restart
- name: Create container volumes
containers.podman.podman_volume:
name: "{{ item.name }}"
options: "{{ item.options | default(omit) }}"
state: "{{ item.state | default('present') }}"
loop: "{{ postgres_volumes }}"
loop_control:
label: "{{ item.name }}"
when: item.type | default("volume") | lower == "volume"
register: __postgres_volumes_raw
- name: Register container volumes map
ansible.builtin.set_fact:
__postgres_volumes_map: "{{ __postgres_volumes_raw.results | json_query('[].volume') | items2dict(key_name='Name', value_name='Mountpoint') }}"
- name: Deploy postgres env files
ansible.builtin.template:
src: "etc/containers/systemd/{{ item }}.j2"
dest: "/etc/containers/systemd/{{ item }}"
owner: root
group: root
mode: "0640"
loop:
- postgres.env
- postgres.sys.env
notify: __postgres_restart
- name: Create container specs
ansible.builtin.template:
src: etc/containers/systemd/postgres.container.j2
dest: "/etc/containers/systemd/postgres.container"
owner: root
group: root
mode: "0640"
notify: __postgres_restart
- name: Deploy init-user-db
ansible.builtin.copy:
src: init-user-db.sh
dest: "{{ __postgres_volumes_map['postgres-initdb'] }}"
owner: "{{ postgres_uid }}"
group: "{{ postgres_gid }}"
mode: "0644"
when: "'postgres-initdb' in __postgres_volumes_map"
- name: Ensure service state
ansible.builtin.service:
name: "postgres.service"
state: started
daemon_reload: True
enabled: True