--- # This playbook backups the odroid docker containers. - name: Backup odroid hosts: all become: false gather_facts: true tasks: - include_vars: vars/secret.yaml - include_vars: vars/variable.yaml - name: Check if directories exist stat: path: "{{ backup_dir }}/{{ item }}" register: dirs loop: - bookstack - kimai - semaphore - gitea - nextcloud - name: Create not existing directories file: path: "{{ backup_dir }}/{{ item.item }}" state: directory mode: 0755 group: chris owner: chris when: item.stat.exists == false with_items: "{{ dirs.results }}" loop_control: label: "{{ item.item }}" - name: Backup mysql databases shell: docker exec mysql8 mysqldump -u{{ mysql_user }} -p{{ mysql_password }} {{ item }} > {{ backup_dir }}/{{ item }}/{{ ansible_date_time.iso8601_basic_short }}.sql loop: - bookstack - kimai - semaphore - name: Compress mysql backup files shell: gzip {{ backup_dir }}/{{ item }}/{{ ansible_date_time.iso8601_basic_short }}.sql loop: - bookstack - kimai - semaphore - name: Backup postgres databases shell: docker exec psql14 pg_dump -U {{ postgres_user }} {{ item }} > {{ backup_dir }}/{{ item }}/{{ ansible_date_time.iso8601_basic_short }}.sql loop: - gitea - nextcloud - name: Compress postgres backup files shell: gzip {{ backup_dir }}/{{ item }}/{{ ansible_date_time.iso8601_basic_short }}.sql loop: - gitea - nextcloud