playbooks/mongo backup.yml

36 lines
1.3 KiB
YAML

- name: Backup MongoDB Databases
hosts: all
become: yes
tasks:
- name: Backup MongoDB databases
command: >
docker exec {{ mongodb_container }} mongodump
--db {{ item }}
--username {{ mongodb_user }}
--password {{ mongodb_password }}
--authenticationDatabase admin
--out {{ mongo_backup_dir }}
with_items: "{{ db_names }}"
- name: Archive each directory separately
command: >
tar -czf "{{ backup_dir }}/{{server}}-{{mongodb_container}}-{{ item }}.tar.gz" -C "{{ backup_dir }}" "{{ item }}"
loop: "{{ db_names }}"
- name: Delete backed-up directories
file:
path: "{{ backup_dir }}/{{ item }}"
state: absent
loop: "{{ db_names }}"
- name: Get the current weekday
shell: date +%a
register: weekday
changed_when: false
- name: send them to s3
command: >
s3cmd put {{ backup_dir }}/{{server}}-{{mongodb_container}}-{{ item }}.tar.gz
{{ s3_folder }}/{{ weekday.stdout }}/{{server}}-{{mongodb_container}}-{{ item }}.tar.gz
with_items: "{{ db_names }}"
- name: Delete backed-up files
file:
path: "{{ backup_dir }}/{{server}}-{{mongodb_container}}-{{ item }}.tar.gz"
state: absent
loop: "{{ db_names }}"