48 lines
1.3 KiB
YAML
48 lines
1.3 KiB
YAML
- 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
|