--- - name: Set restic_url set_fact: restic_url_r: 'https://github.com/restic/restic/releases/download/' arch: ansible_architecture restic_platform: '{{ _platform_map[arch] | default(arch) }}' restic_system: '{{ ansible_system | lower }}' restic_url_v: 'v{{ restic_version }}/restic_{{ restic_version }}_' restic_file: '{{ restic_system }}_{{ restic_platform }}.bz2' restic_url: '{{ restic_url_r }}{{ restic_url_v }}{{ restic_file }}' when: restic_url == '' - name: Download client binary get_url: url: '{{ restic_url }}' dest: '{{ restic_download_path }}/restic.bz2' force: true register: get_url_restic # TODO: This needs to become independent of the shell module to actually work # on every system. We could use a distribution specific aproach, but this would # conflict with the current structure in tasks/distribution/ - name: Decompress the binary shell: "bzip2 -dc {{ get_url_restic.dest }} > {{ restic_bin_bath }}" args: creates: '{{ restic_download_path }}/bin/restic-{{ restic_version }}' - name: Ensure permissions are correct file: path: '{{ restic_download_path }}/bin/restic-{{ restic_version }}' mode: '0755' owner: '{{ restic_dir_owner }}' group: '{{ restic_dir_group }}' - name: Create symbolic link to the correct version file: src: '{{ restic_download_path }}/bin/restic-{{ restic_version }}' path: '{{ restic_install_path }}/restic' state: link force: true