2021-02-03 10:39:11 -05:00
|
|
|
---
|
2021-05-10 19:11:24 -04:00
|
|
|
- name: Permissions for mongo
|
|
|
|
become: yes
|
|
|
|
file:
|
|
|
|
state: directory
|
|
|
|
mode: 0777
|
|
|
|
path: /var/log/mongodb
|
|
|
|
|
2021-05-19 23:01:12 -04:00
|
|
|
- name: Make docker network for newsblurnet
|
|
|
|
become: yes
|
|
|
|
docker_network:
|
|
|
|
name: newsblurnet
|
|
|
|
notify: restart docker
|
|
|
|
|
2021-02-03 10:39:11 -05:00
|
|
|
- name: Start db-mongo docker container
|
|
|
|
become: yes
|
|
|
|
docker_container:
|
2021-02-24 11:56:53 -05:00
|
|
|
name: mongo
|
2021-02-03 10:39:11 -05:00
|
|
|
image: mongo:3.6
|
|
|
|
state: started
|
2021-05-10 18:30:54 -04:00
|
|
|
container_default_behavior: no_defaults
|
2021-02-03 10:39:11 -05:00
|
|
|
restart_policy: unless-stopped
|
2021-05-19 17:26:47 -04:00
|
|
|
networks_cli_compatible: yes
|
2021-05-19 22:03:53 -04:00
|
|
|
network_mode: default
|
2021-05-19 17:26:47 -04:00
|
|
|
networks:
|
|
|
|
- name: newsblurnet
|
|
|
|
ports:
|
|
|
|
- "27017:27017"
|
2021-05-10 19:11:24 -04:00
|
|
|
command: --config /etc/mongod.conf
|
2021-02-03 10:39:11 -05:00
|
|
|
volumes:
|
2021-05-10 18:30:54 -04:00
|
|
|
- /mnt/{{ inventory_hostname | regex_replace('db-|-', '') }}:/data/db
|
|
|
|
- /srv/newsblur/ansible/roles/mongo/templates/mongo.conf:/etc/mongod.conf
|
2021-05-10 18:46:02 -04:00
|
|
|
- /var/log/mongodb/:/var/log/mongodb/
|
2021-06-19 12:02:29 -06:00
|
|
|
- /opt/mongo/newsblur/backup:/backup/'
|
2021-02-15 19:13:05 -05:00
|
|
|
|
|
|
|
- name: Register mongo in consul
|
2021-02-23 19:30:28 -05:00
|
|
|
tags: consul
|
2021-02-15 19:13:05 -05:00
|
|
|
become: yes
|
|
|
|
template:
|
|
|
|
src: consul_service.json
|
|
|
|
dest: /etc/consul.d/mongo.json
|
2021-05-10 18:08:04 -04:00
|
|
|
when: (inventory_hostname | regex_replace('[0-9]+', '')) in ['db-mongo', 'db-mongo-secondary'] or inventory_hostname.startswith('db2')
|
2021-02-24 11:56:53 -05:00
|
|
|
notify:
|
|
|
|
- reload consul
|
|
|
|
|
|
|
|
- name: Register mongo-analytics in consul
|
|
|
|
tags: consul
|
|
|
|
become: yes
|
|
|
|
template:
|
|
|
|
src: consul_service.analytics.json
|
|
|
|
dest: /etc/consul.d/mongo.json
|
2021-03-10 16:54:18 -05:00
|
|
|
when: (inventory_hostname | regex_replace('[0-9]+', '')) == 'db-mongo-analytics' or inventory_hostname.startswith('db3')
|
2021-02-15 19:13:05 -05:00
|
|
|
notify:
|
2021-02-23 18:37:56 -05:00
|
|
|
- reload consul
|
2021-06-07 15:44:59 -04:00
|
|
|
|
2021-06-18 14:57:29 -06:00
|
|
|
- name: Add sanity checkers cronjob for disk usage
|
2021-06-07 15:44:59 -04:00
|
|
|
become: yes
|
2021-06-18 14:57:29 -06:00
|
|
|
cron:
|
|
|
|
name: disk_usage_sanity_checker
|
2021-06-25 11:42:21 -06:00
|
|
|
user: root
|
|
|
|
cron_file: /etc/cron.hourly/disk_usage_sanity_checker
|
2021-06-18 14:57:29 -06:00
|
|
|
job: docker pull newsblur/newsblur_python3:latest;
|
|
|
|
docker run --rm
|
|
|
|
output=$(eval sudo df / | head -n 2 | tail -1);
|
|
|
|
-v /srv/newsblur:/srv/newsblur
|
2021-06-25 11:42:21 -06:00
|
|
|
--network=newsblurnet
|
|
|
|
--hostname {{ ansible_hostname }}
|
2021-06-18 14:57:29 -06:00
|
|
|
newsblur/newsblur_python3 /srv/newsblur/utils/monitor_disk_usage.py $output
|
|
|
|
tags:
|
|
|
|
- sanity-checker
|
2021-06-19 12:02:29 -06:00
|
|
|
|
|
|
|
- name: Add mongo backup
|
|
|
|
cron:
|
|
|
|
name: mongo backup
|
|
|
|
minute: "0"
|
|
|
|
hour: "4"
|
|
|
|
job:
|
|
|
|
collections=(
|
|
|
|
classifier_tag
|
|
|
|
classifier_author
|
|
|
|
classifier_feed
|
|
|
|
classifier_title
|
|
|
|
userstories
|
|
|
|
shared_stories
|
|
|
|
category
|
|
|
|
category_site
|
|
|
|
sent_emails
|
|
|
|
social_profile
|
|
|
|
social_subscription
|
|
|
|
social_services
|
|
|
|
statistics
|
|
|
|
user_search
|
|
|
|
feedback
|
|
|
|
)
|
|
|
|
for collection in collections; do
|
|
|
|
echo Dumping $collection
|
|
|
|
now=$(date '+%Y-%m-%d-%H-%M')
|
|
|
|
|
|
|
|
docker exec -it mongo mongodump --db newsblur --collection $collection -o /backup/backup_mongo_${now}
|
|
|
|
|
|
|
|
echo Compressing /opt/mongo/newsblur/backup/backup_mongo_${now}.tgz
|
|
|
|
tar -zcf /opt/mongo/newsblur/backup/backup_mongo_${now}.tgz /opt/mongo/newsblur/backup/backup_mongo_${now})
|
|
|
|
|
|
|
|
done;
|
|
|
|
|
|
|
|
echo Uploading backups to S3
|
|
|
|
docker run --rm
|
|
|
|
-v /srv/newsblur:/srv/newsblur
|
|
|
|
-v /opt/mongo/newsblur/backup/:/opt/mongo/newsblur/backup/
|
|
|
|
--network=newsblurnet
|
|
|
|
/srv/newsblur/utils/backups/backup_mongo.py
|