feat(postgresql): add ansible role for postgresql deployment
This commit is contained in:
47
roles/postgresql/tasks/initialize-docker.yml
Normal file
47
roles/postgresql/tasks/initialize-docker.yml
Normal file
@ -0,0 +1,47 @@
|
||||
---
|
||||
- name: Ensure container '{{ postgresql_container_name }}' is {{ postgresql_container_state }} to initialise the database
|
||||
community.docker.docker_container:
|
||||
name: "{{ postgresql_container_name }}"
|
||||
image: "{{ postgresql_container_image }}"
|
||||
env: >-2
|
||||
{{ postgresql_container_env | default({}, true)
|
||||
| combine({'POSTGRES_PASSWORD': postgresql_superuser_password}) }}
|
||||
user: "{{ postgresql_container_user | default(omit, true) }}"
|
||||
ports: "{{ postgresql_container_ports | default(omit, true) }}"
|
||||
labels: "{{ postgresql_container_labels | default(omit, true) }}"
|
||||
volumes: "{{ postgresql_container_initdb_volumes }}"
|
||||
recreate: "{{ postgresql_container_recreate | default(omit, true) }}"
|
||||
networks: "{{ postgresql_container_networks | default(omit, true) }}"
|
||||
etc_hosts: "{{ postgresql_container_etc_hosts | default(omit, true) }}"
|
||||
memory: "{{ postgresql_container_memory | default(omit, true) }}"
|
||||
memory_reservation: "{{ postgresql_container_memory_reservation | default(omit, true) }}"
|
||||
oom_killer: "{{ postgresql_container_oom_killer | default(omit, true) }}"
|
||||
oom_score_adj: "{{ postgresql_container_oom_score_adj | default(omit, true) }}"
|
||||
shm_size: "{{ postgresql_container_shm_size | default(omit, true) }}"
|
||||
ulimits: "{{ postgresql_container_ulimits | default(omit, true) }}"
|
||||
restart_policy: "{{ postgresql_container_restart_policy | default(omit, true) }}"
|
||||
state: "{{ postgresql_container_state }}"
|
||||
register: postgresql_container_info
|
||||
|
||||
- name: Wait for container startup
|
||||
block:
|
||||
- name: Wait for container startup (socket)
|
||||
ansible.builtin.wait_for:
|
||||
path: "{{ postgresql_config_unix_socket_directories | first }}/.s.PGSQL.{{ postgresql_config_port }}"
|
||||
when: "postgresql_config_connect_socket | bool"
|
||||
- name: Wait for container startup (port)
|
||||
ansible.builtin.wait_for:
|
||||
host: >-2
|
||||
{{ (pg_addresses == '*') | ternary(
|
||||
omit,
|
||||
postgresql_config_listen_addresses | first
|
||||
) }}
|
||||
port: "{{ postgresql_config_port }}"
|
||||
when: "not postgresql_config_connect_socket | bool"
|
||||
vars:
|
||||
pg_addresses: "{{ postgresql_config_listen_addresses | join(',') }}"
|
||||
|
||||
- name: Ensure init container '{{ postgresql_container_name }}' is removed
|
||||
community.docker.docker_container:
|
||||
name: "{{ postgresql_container_name }}"
|
||||
state: absent
|
Reference in New Issue
Block a user