12345678910111213141516171819202122232425262728 |
- - name: install duplicity
- apt:
- name: duplicity
- state: present
- become: yes
- - name: generate commands
- set_fact:
- backup_command: |-
- duplicity --no-encryption --no-print-statistics --verbosity warning
- {%- for selector in item.selectors|default([]) %}
- {% if selector['option'] in ['exclude', 'include'] %}
- --{{selector['option']}} "{{selector['shell_pattern']}}"
- {%- endif %}
- {% endfor %}
- "{{item.source_path}}" "{{item.target_url}}"
- with_items: '{{duplicity_backups}}'
- register: duplicity_backup_commands
- - name: setup cron jobs
- blockinfile:
- dest: '/etc/crontab'
- marker: '# ANSIBLE DUPLICITY BACKUPS {mark}'
- block: |-
- {% for backup in duplicity_backup_commands.results %}
- {% for backup_job in backup.item.backup_cron_jobs %}
- {{backup_job.minute}} {{backup_job.hour}} * * * {{backup.item.local_user}} {{backup.ansible_facts.backup_command}}
- {% endfor %}
- {% endfor %}
- become: yes
|