--- # Get latest Rclone version via downloads.rclone.org/version.txt - name: Check latest stable rclone version uri: url: https://downloads.rclone.org/version.txt return_content: true delegate_to: localhost run_once: true register: rclone_version - name: "{{ rclone_version.content }}" set_fact: rclone_version: "{{ rclone_version.content | replace('rclone v', '', 1) | trim }}" run_once: true - name: Set architecture alias set_fact: architecture_alias: "amd64" # noqa: var-naming[no-role-prefix] when: ansible_architecture == "x86_64" - name: Set architecture alias set_fact: architecture_alias: "arm64" # noqa: var-naming[no-role-prefix] when: ansible_architecture == "aarch64" - name: "Download rclone from rclone.org (v{{ rclone_version }})" get_url: url: "https://downloads.rclone.org/v{{ rclone_version }}/\ rclone-v{{ rclone_version }}-linux-{{ architecture_alias }}.deb" dest: "/var/tmp/rclone.deb" mode: "0644" register: rclone_download_deb until: rclone_download_deb is succeeded retries: 3 delay: 5 - name: Install rclone apt: deb: "/var/tmp/rclone.deb" - name: Symlink rclone binary to use mount helper file: src: "/usr/bin/rclone" dest: "/sbin/mount.rclone" state: link - name: Create rclone config directory file: path: "{{ rclone_config_dir }}" state: directory mode: "0700" - name: Create rclone group group: name: "{{ rclone_system_group }}" state: present system: true register: rclone_created_group when: rclone_system_group != "root" - name: Create rclone user user: name: "{{ rclone_system_user }}" group: "{{ rclone_system_group }}" groups: "{{ rclone_system_group }}" append: true shell: /usr/sbin/nologin system: true create_home: false home: / register: rclone_created_user - name: Add user to rclone group user: name: "{{ main_user }}" groups: "{{ rclone_system_group }}" append: true - name: Create rclone cache/log directory file: path: "{{ item }}" mode: "0750" state: directory loop: - "{{ rclone_cache_dir }}" - "{{ rclone_log_dir }}" - name: Copy rclone logrotate file template: src: logrotate.rclone.j2 dest: /etc/logrotate.d/rclone mode: "0644" - name: Copy service account files copy: src: "{{ item }}" dest: "{{ rclone_config_dir }}/{{ item }}" mode: "0600" loop: - TD_DTSV_service_account.json - name: Copy config password script copy: src: set-rclone-password dest: ~/set-rclone-password mode: "0644"