- 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