--- - name: Create script for automatic borg backup ansible.builtin.file: dest: "{{ script_location }}" state: touch owner: "{{ borg_client_user }}" group: "{{ borg_client_user }}" modification_time: preserve access_time: preserve mode: "0711" become: true - name: Insert shebang into backup script ansible.builtin.lineinfile: path: "{{ script_location }}" line: "#!/bin/bash" insertbefore: BOF state: present become: true - name: Insert Backup job block into scripts ansible.builtin.blockinfile: path: "{{ script_location }}" marker: "## {mark} ANSIBLE MANAGED BLOCK for {{ borg_server_host_url }}/{{ borg_repo_name }}" block: | export BORG_PASSPHRASE={{ borg_passphrase | quote }} {% if borg_ssh_key_per_repo %} export BORG_RSH="ssh -i {{ borg_ssh_key_path }}" {% endif %} borg create -C {{ borg_compression }}{% if borg_create_additional_arguments %} {{ borg_create_additional_arguments }}{% endif %} \ {{ borg_server_user }}@{{ borg_server_host_url }}:{{ borg_server_user_home }}/{{ borg_repo_name }}::{{ borg_backup_name_format }} \ {{ borg_included_dirs | map('quote') | join(' ') }} \ {% for e in (borg_excluded_dirs | map('quote')) %} --exclude {{ e }} {% endfor %} become: true