- name: backup stuff hosts: all vars: backup_directory: /var/backups/{{ ansible_date_time.date }} pre_tasks: - name: create backup directory become: true file: state: directory owner: root group: root mode: '0770' path: "{{ backup_directory }}" - name: "let {{ ansible_user_id }} write to backup directory" register: setfacl failed_when: - setfacl.rc != 140 - setfacl.rc != 0 changed_when: setfacl.rc != 140 become: true shell: | if { getfacl -tn {{ backup_directory }} | tr -d ' ' | grep -Fq 'user{{ansible_user_uid}}rwxrwx' ; }; then exit 140 fi setfacl -dRmu:{{ ansible_user_id }}:rwX {{ backup_directory }} setfacl -mu:{{ ansible_user_id }}:rwX {{ backup_directory }} - name: structure the backup directory file: state: directory path: "{{ backup_directory }}/{{ item }}" with_items: - disks - "system-{{ ansible_hostname }}/users" roles: - storefacts - disks tasks: - name: turn it into an archive community.general.archive: path: "{{ backup_directory }}" dest: "{{ backup_directory | dirname }}/{{ backup_directory | basename }}.tar" format: tar