66 lines
2.0 KiB
YAML
66 lines
2.0 KiB
YAML
---
|
|
- block:
|
|
- name: Create network specs
|
|
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
|
|
set_fact:
|
|
__postgres_volumes_map: "{{ __postgres_volumes_raw.results | json_query('[].volume') | items2dict(key_name='Name', value_name='Mountpoint') }}"
|
|
|
|
- name: Deploy postgres env files
|
|
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
|
|
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
|
|
systemd:
|
|
name: "postgres.service"
|
|
state: started
|
|
daemon_reload: True
|
|
enabled: True
|
|
become: True
|
|
become_user: root
|