mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-09-18 21:50:56 +00:00
100 lines
2.8 KiB
YAML
100 lines
2.8 KiB
YAML
---
|
|
|
|
- name: Template postgresql-13.conf file
|
|
template:
|
|
src: /srv/newsblur/docker/postgres/postgresql-13.conf.j2
|
|
dest: /srv/newsblur/docker/postgres/postgres.conf
|
|
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: /srv/newsblur/backups
|
|
state: directory
|
|
mode: 0777
|
|
|
|
- name: Start postgres docker containers
|
|
become: yes
|
|
docker_container:
|
|
name: postgres
|
|
image: postgres:13
|
|
state: started
|
|
container_default_behavior: no_defaults
|
|
command: postgres -c config_file=/etc/postgresql/postgresql.conf
|
|
env:
|
|
# POSTGRES_USER: "{{ postgres_user }}" # Don't auto-create newsblur, manually add it
|
|
POSTGRES_PASSWORD: "{{ postgres_password }}"
|
|
hostname: "{{ inventory_hostname }}"
|
|
networks_cli_compatible: yes
|
|
# network_mode: host
|
|
network_mode: default
|
|
networks:
|
|
- name: newsblurnet
|
|
aliases:
|
|
- postgres
|
|
ports:
|
|
- 5432:5432
|
|
volumes:
|
|
- /srv/newsblur/docker/volumes/postgres:/var/lib/postgresql
|
|
- /srv/newsblur/docker/postgres/postgres.conf:/etc/postgresql/postgresql.conf
|
|
- /srv/newsblur/docker/postgres/postgres_hba-13.conf:/etc/postgresql/pg_hba.conf
|
|
- /srv/newsblur/backups/:/var/lib/postgresql/backup/
|
|
restart_policy: unless-stopped
|
|
|
|
- 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: Copy common secrets
|
|
copy:
|
|
src: /srv/secrets-newsblur/settings/common_settings.py
|
|
dest: /srv/newsblur/newsblur_web/local_settings.py
|
|
register: app_changed
|
|
|
|
- name: Add sanity checkers cronjob for disk usage
|
|
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
|
|
|
|
- name: Add postgres backup
|
|
cron:
|
|
name: postgres backup
|
|
minute: "0"
|
|
hour: "4"
|
|
job: /srv/newsblur/docker/postgres/backup_postgres.sh
|
|
|