2021-02-02 23:20:33 -05:00
|
|
|
---
|
2021-04-20 18:02:12 -04:00
|
|
|
- name: Copy common secrets
|
2021-02-25 11:34:35 -05:00
|
|
|
copy:
|
2021-04-20 18:02:12 -04:00
|
|
|
src: /srv/secrets-newsblur/settings/common_settings.py
|
2021-02-25 11:34:35 -05:00
|
|
|
dest: /srv/newsblur/newsblur_web/local_settings.py
|
|
|
|
register: app_changed
|
|
|
|
|
2021-04-20 18:02:12 -04:00
|
|
|
- name: Copy task env
|
|
|
|
copy:
|
|
|
|
src: /srv/secrets-newsblur/settings/task_env.py
|
|
|
|
dest: /srv/newsblur/newsblur_web/task_env.py
|
|
|
|
|
|
|
|
- name: Add SERVER_NAME to task env
|
2021-02-26 17:25:22 -05:00
|
|
|
lineinfile:
|
2021-04-20 18:02:12 -04:00
|
|
|
path: /srv/newsblur/newsblur_web/task_env.py
|
2021-02-26 17:25:22 -05:00
|
|
|
line: 'SERVER_NAME = "{{ inventory_hostname }}"'
|
|
|
|
|
2021-02-02 23:28:31 -05:00
|
|
|
- name: "Start docker containers"
|
2021-02-02 23:20:33 -05:00
|
|
|
become: yes
|
|
|
|
docker_container:
|
|
|
|
name: "{{ item.container_name }}"
|
|
|
|
image: newsblur/newsblur_python3
|
|
|
|
state: started
|
2021-02-25 11:34:35 -05:00
|
|
|
pull: yes
|
2021-02-25 18:50:20 -05:00
|
|
|
container_default_behavior: no_defaults
|
2021-02-02 23:20:33 -05:00
|
|
|
env:
|
2021-02-25 11:34:35 -05:00
|
|
|
DOCKERBUILD: ""
|
2021-04-06 16:16:50 -04:00
|
|
|
restart_policy: always
|
2021-02-25 18:50:20 -05:00
|
|
|
network_mode: host
|
2021-02-02 23:20:33 -05:00
|
|
|
command: "{{ item.command }}"
|
2021-04-22 11:36:44 -04:00
|
|
|
healthcheck:
|
|
|
|
# test: celery inspect ping -A newsblur_web -d celery@$HOSTNAME
|
|
|
|
test: bash -c "(($(date +%s) - $(stat /srv/newsblur/logs/newsblur.log -c %Y) < 120)) && exit 0 || exit 1"
|
|
|
|
interval: 60s
|
|
|
|
timeout: 10s
|
|
|
|
retries: 3
|
|
|
|
start_period: 30s
|
2021-02-02 23:20:33 -05:00
|
|
|
volumes:
|
2021-02-15 19:21:53 -05:00
|
|
|
- /srv/newsblur:/srv/newsblur
|
2021-02-25 18:50:20 -05:00
|
|
|
- /etc/hosts:/etc/hosts
|
2021-02-17 21:07:12 -05:00
|
|
|
when: "item.container_name in inventory_hostname"
|
|
|
|
with_items:
|
|
|
|
- container_name: task-celery
|
2021-03-17 20:13:58 -04:00
|
|
|
command: "celery worker -A newsblur_web --loglevel=INFO -Q new_feeds,push_feeds,update_feeds,search_indexer"
|
2021-02-17 21:07:12 -05:00
|
|
|
- container_name: task-work
|
2021-03-17 20:13:58 -04:00
|
|
|
command: "celery worker -A newsblur_web --loglevel=INFO -Q beat_feeds_task,work_queue,cron_queue"
|
2021-04-21 11:23:16 -04:00
|
|
|
tags:
|
|
|
|
- start
|
2021-02-15 19:21:53 -05:00
|
|
|
|
2021-04-22 11:36:44 -04:00
|
|
|
# - name: Restart docker to force docker container settings to hold
|
|
|
|
# become: yes
|
|
|
|
# service:
|
|
|
|
# name: docker
|
|
|
|
# state: restarted
|
|
|
|
# tags:
|
|
|
|
# - never
|
|
|
|
# - restart
|
|
|
|
|
|
|
|
- name: "Start autoheal container"
|
2021-04-14 13:06:57 -04:00
|
|
|
become: yes
|
2021-04-22 11:36:44 -04:00
|
|
|
docker_container:
|
|
|
|
name: autoheal
|
|
|
|
image: willfarrell/autoheal
|
|
|
|
state: started
|
|
|
|
pull: yes
|
|
|
|
container_default_behavior: no_defaults
|
|
|
|
env:
|
|
|
|
AUTOHEAL_CONTAINER_LABEL: all
|
|
|
|
restart_policy: always
|
|
|
|
volumes:
|
|
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
2021-04-14 13:06:57 -04:00
|
|
|
|
2021-02-15 19:21:53 -05:00
|
|
|
- name: Register celery_task in consul
|
2021-02-23 19:30:28 -05:00
|
|
|
tags: consul
|
2021-02-15 19:21:53 -05:00
|
|
|
become: yes
|
|
|
|
template:
|
|
|
|
src: consul_service.json
|
|
|
|
dest: /etc/consul.d/celery_task.json
|
|
|
|
notify:
|
|
|
|
- reload consul
|
2021-02-17 21:07:12 -05:00
|
|
|
when: "item.service_name in inventory_hostname"
|
|
|
|
with_items:
|
|
|
|
- service_name: task-celery
|
|
|
|
- service_name: task-work
|
2021-02-25 11:34:35 -05:00
|
|
|
|
2021-04-22 11:36:44 -04:00
|
|
|
- name: Setup logrotate
|
|
|
|
become: yes
|
|
|
|
copy: src=logrotate.conf dest=/etc/logrotate.d/newsblur mode=0755
|
|
|
|
|
2021-02-25 11:34:35 -05:00
|
|
|
- name: Reload celery
|
|
|
|
debug:
|
|
|
|
msg: Reloading celery
|
|
|
|
notify: "reload {{ item.container_name }}"
|
|
|
|
when: app_changed.changed and item.container_name in inventory_hostname
|
|
|
|
with_items:
|
|
|
|
- container_name: task-celery
|
|
|
|
- container_name: task-work
|
|
|
|
changed_when: app_changed.changed
|