add db.postgres role

This commit is contained in:
Alexander Buntakov 2020-03-11 20:03:21 +03:00
parent e947038cd7
commit df4df2e67f
5 changed files with 107 additions and 1 deletions

View File

@ -0,0 +1,31 @@
db__postgres_image_name: "dhub.touchin.ru/common/postgresql-walg"
db__postgres_image_tag: "10_0.2.9"
db__postgres_data_directory: "/var/lib/postgresql/data/pgdata"
db__postgres_image: "{{ db__postgres_image_name }}:{{ db__postgres_image_tag }}"
db__postgres_command_default:
- "./entrypoint.sh"
- "postgres"
db__postgres_port: "5432"
# db__postgres_port: "127.0.0.1:5432:5432"
# db__postgres_database_name: my-db
# db__postgres_username: postgres
# db__postgres_password: secret
# db__postgres_server_name: postgres
# db__postgres_container_name: postgres
# db__postgres_backup_enabled: false
# db__postgres_postgres_mode: "backup"
# db__postgres_s3_region: "eu-central-1"
# db__postgres_s3_access_key: "KEY"
# db__postgres_s3_secret_key: "SECRET"
# db__postgres_s3_prefix: "s3://bucket-name/path/to/subfolder"
# db__postgres_delete_retain: 15
# db__postgres_base_backup_in: "30 2 * * *"
# db__postgres_recovery_enabled: false
# db__postgres_archive_timeout: 600
# db__postgres_checkpoint_timeout: 600

View File

@ -0,0 +1,39 @@
---
- name: DB.POSTGRES | Prepare deployment
include_role:
name: docker.deployment.prepare
public: "yes"
vars:
deployment_name: "{{ db__postgres_deployment_name }}"
tags:
- postgres
- name: DB.POSTGRES | Merge commandline agruments
set_fact:
db__postgres_command: "{{ db__postgres_command_default + db__postgres_command_custom }}"
tags:
- postgres
- name: DB.POSTGRES | Copy templates
template:
src: "templates/{{ item }}.j2"
dest: "{{ docker_deployment__deploy_path }}/{{ item }}"
with_items:
- docker-compose.yml
- backup.env
become_user: "{{ docker_deployment__deploy_user_name }}"
become: yes
tags:
- files
- postgres
- name: DB.POSTGRES | Run deployment
docker_service:
project_src: "{{ docker_deployment__deploy_path }}"
restarted: "yes"
become: yes
become_user: "{{ docker_deployment__deploy_user_name }}"
tags:
- run
- postgres

View File

@ -0,0 +1,9 @@
{% if db__postgres_backup_enabled == true %}
POSTGRES_MODE={{ db__postgres_postgres_mode }}
AWS_REGION={{ db__postgres_s3_region }}
AWS_ACCESS_KEY_ID={{ db__postgres_s3_access_key }}
AWS_SECRET_ACCESS_KEY={{ db__postgres_s3_secret_key }}
WALE_S3_PREFIX={{ db__postgres_s3_prefix }}
WALG_DELETE_RETAIN={{ db__postgres_delete_retain }}
WALG_BASE_BACKUP_IN={{ db__postgres_base_backup_in }}
{% endif %}

View File

@ -0,0 +1,27 @@
version: "3.7"
services:
{{ db__postgres_server_name }}:
container_name: "{{ db__postgres_container_name }}"
image: "{{ db__postgres_image }}"
restart: unless-stopped
volumes:
- "{{ docker_deployment__volume_path }}:/var/lib/postgresql/data"
command: {{ db__postgres_command_default }}
env_file:
- backup.env
environment:
- PGDATA={{ db__postgres_data_directory }}
- POSTGRES_DB={{ db__postgres_database_name }}
- POSTGRES_USER={{ db__postgres_username }}
- POSTGRES_PASSWORD={{ db__postgres_password }}
labels:
"traefik.enable": "false"
networks:
- "{{ docker__traefik_network }}"
ports:
- "{{ db__postgres_port }}"
networks:
{{ docker__traefik_network }}:
external: true

View File

@ -11,7 +11,7 @@
- name: DOCKER.NEXUS | Copy templates
template:
src: templates/{{ item }}.j2
src: "templates/{{ item }}.j2"
dest: "{{ docker_deployment__deploy_path }}/{{ item }}"
with_items:
- docker-compose.yml