Files
Ansible-Build/roles/postgres/tasks/postgres.yml
T

66 lines
2.0 KiB
YAML

---
- name: Include docker volume role
ansible.builtin.include_role:
name: docker_volume
vars:
docker_volume_name: "{{ postgres_volume_name }}"
when: postgres_volume_name is defined
- name: Ensure {{ role_name }} data dir exists
ansible.builtin.file:
path: "{{ postgres_data_dir }}"
state: directory
- name: Start {{ role_name }} container {{ postgres_hostname }}
community.docker.docker_container:
name: "{{ postgres_hostname }}"
labels:
description: "{{ postgres_description }}"
image: "{{ postgres_image }}"
restart_policy: unless-stopped
recreate: false
env:
POSTGRES_USER: "{{ postgres_user }}"
POSTGRES_PASSWORD: "{{ postgres_password }}"
POSTGRES_DB: "{{ postgres_config_map[0].db }}"
command: [postgres, -c, "max_connections={{ postgres_max_connections }}"]
volumes: "{{ postgres_volumes }}"
ports: "{{ postgres_ports }}"
networks:
- name: "{{ docker_network_name }}"
log_driver: "{{ docker_log_driver }}"
log_options:
max-size: "{{ docker_log_max_size }}"
max-file: "{{ docker_log_max_file }}"
tag: "{{ postgres_hostname }}|{{ role_name }}"
- name: Copy {{ role_name }} scripts
ansible.builtin.copy:
src: "{{ item }}"
dest: /usr/local/bin/{{ item }}
mode: +x
loop:
- docker-postgres-backup
- docker-postgres-create
- docker-postgres-restore
- docker-postgres-list
- docker-postgres-drop
- docker-postgres-patch
- docker-postgres-duplicate
- docker-postgres-size
- docker-postgres-shell
- docker-postgres-upgrade
- docker-postgres-rename
- name: Create {{ role_name }} databases
ansible.builtin.command: docker-postgres-create -c "{{ postgres_hostname }}" -d "{{ item.db }}"
loop: "{{ postgres_config_map }}"
when: postgres_config_map|length > 0
- name: Include docker {{ role_name }} backup from restic client role
ansible.builtin.include_role:
name: restic
vars:
restic_backup_set: "{{ postgres_backup_set }}"
when: postgres_backup_set is defined