NewsBlur/ansible/roles/postgres/tasks/main.yml

104 lines
3 KiB
YAML
Raw Normal View History

2021-02-03 10:43:08 -05:00
---
2021-12-17 17:34:54 -05:00
2021-12-17 17:11:49 -05:00
- name: Template postgresql-13.conf file
template:
2021-12-17 17:34:54 -05:00
src: /srv/newsblur/docker/postgres/postgresql-13.conf.j2
dest: /srv/newsblur/docker/postgres/postgres.conf
2021-12-17 17:11:49 -05:00
notify: reload postgres
register: updated_config
- name: Ensure postgres archive directory
become: yes
file:
path: /srv/newsblur/docker/volumes/postgres/archive
state: directory
mode: 0777
- name: Ensure postgres backup directory
become: yes
file:
path: /backup
state: directory
mode: 0777
2021-12-13 17:09:37 -05:00
- name: Start postgres docker containers
become: yes
2021-02-03 10:43:08 -05:00
docker_container:
name: postgres
2021-12-17 17:34:54 -05:00
image: postgres:13
2021-02-03 10:43:08 -05:00
state: started
2021-12-13 17:09:37 -05:00
container_default_behavior: no_defaults
command: postgres -c config_file=/etc/postgresql/postgresql.conf
2021-02-03 10:43:08 -05:00
env:
# POSTGRES_USER: "{{ postgres_user }}" # Don't auto-create newsblur, manually add it
2021-12-17 17:34:54 -05:00
POSTGRES_PASSWORD: "{{ postgres_password }}"
2021-12-13 17:09:37 -05:00
hostname: "{{ inventory_hostname }}"
networks_cli_compatible: yes
# network_mode: host
network_mode: default
networks:
- name: newsblurnet
aliases:
- postgres
2021-02-03 10:43:08 -05:00
ports:
2021-12-13 17:09:37 -05:00
- 5432:5432
2021-02-03 10:43:08 -05:00
volumes:
- /srv/newsblur/docker/volumes/postgres:/var/lib/postgresql
- /srv/newsblur/docker/postgres/postgres.conf:/etc/postgresql/postgresql.conf
2021-12-17 17:11:49 -05:00
- /srv/newsblur/docker/postgres/postgres_hba-13.conf:/etc/postgresql/pg_hba.conf
- /srv/newsblur/backups/:/var/lib/postgresql/backup/
2021-12-13 17:09:37 -05:00
restart_policy: unless-stopped
2021-06-07 15:44:59 -04:00
- name: Ensure newsblur role in postgres
shell: >
sleep 5;
docker exec postgres createuser -s newsblur -U postgres;
docker exec postgres createdb newsblur -U newsblur;
register: ensure_role
changed_when:
- "ensure_role.rc == 0"
failed_when:
- "'already exists' not in ensure_role.stderr"
- "ensure_role.rc != 0"
- name: Register postgres in consul
tags: consul
become: yes
template:
src: consul_service.json
dest: /etc/consul.d/postgres.json
notify:
- reload consul
- name: Add sanity checkers cronjob for disk usage
2021-06-07 15:44:59 -04:00
become: yes
cron:
name: disk_usage_sanity_checker
user: root
cron_file: /etc/cron.hourly/disk_usage_sanity_checker
job: >-
docker pull newsblur/newsblur_python3:latest;
docker run --rm -it
OUTPUT=$(eval sudo df / | head -n 2 | tail -1);
-v /srv/newsblur:/srv/newsblur
--network=newsblurnet
--hostname {{ ansible_hostname }}
newsblur/newsblur_python3 /srv/newsblur/utils/monitor_disk_usage.py $OUTPUT
2021-06-19 12:35:28 -06:00
- name: Add postgres backup
cron:
name: postgres backup
minute: "0"
hour: "4"
job: >-
NOW=$(eval date +%F-%H-%M);
BACKUP_FILE=backup_postgresql_${NOW}.sql;
sudo docker exec -it postgres
/usr/lib/postgresql/13/bin/pg_dump -U newsblur -h 127.0.0.1 -Fc newsblur > /backup/$BACKUP_FILE;
sudo docker run --rm -it
2021-06-19 13:01:38 -06:00
-v /srv/newsblur:/srv/newsblur
-v /backup/:/backup/
--network=newsblurnet
newsblur/newsblur_python3
2021-12-13 17:09:37 -05:00
python /srv/newsblur/utils/backups/backup_psql.py