66 lines
2.0 KiB
YAML
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
|