- 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 }}"