--- - name: Install packages ansible.builtin.package: name: rclone state: installed - name: Create config directory ansible.builtin.file: path: /etc/rclone state: directory mode: "0755" owner: root group: "{{ ansible_wheel }}" - name: Create host config ansible.builtin.template: dest: "/etc/rclone/{{ rclone_service }}.conf" src: rclone.conf.j2 mode: "0640" owner: root group: "{{ rclone_service }}" - name: Create ssh keys ansible.builtin.command: argv: - ssh-keygen - -t - ed25519 - -C - "{{ rclone_service }}@{{ inventory_hostname }}" - -N - "" - -f - "/etc/rclone/ssh_{{ rclone_service }}_ed25519_key" creates: "/etc/rclone/ssh_{{ rclone_service }}_ed25519_key" - name: Fix ssh key permissions ansible.builtin.file: path: "{{ item }}" owner: root group: "{{ rclone_service }}" mode: "0640" with_items: - "/etc/rclone/ssh_{{ rclone_service }}_ed25519_key" - "/etc/rclone/ssh_{{ rclone_service }}_ed25519_key.pub" - name: Fetch ssh public key ansible.builtin.fetch: src: "/etc/rclone/ssh_{{ rclone_service }}_ed25519_key.pub" dest: "../files/ssh/{{ rclone_service }}.pub" flat: true - name: Create base log directory ansible.builtin.file: path: /var/log/rclone state: directory mode: "0755" owner: root group: "{{ ansible_wheel }}" - name: Create log directory ansible.builtin.file: path: "/var/log/rclone/{{ rclone_service }}" state: directory mode: "0750" owner: "{{ rclone_service }}" group: "{{ rclone_service }}" - name: Create data directories ansible.builtin.file: path: "/srv/{{ rclone_service }}/{{ item }}" state: directory mode: "0770" owner: root group: "{{ rclone_service }}" with_items: "{{ groups[rclone_hostgroup | default(rclone_service)] }}" - name: Copy rclone sync script ansible.builtin.copy: dest: /usr/local/bin/rclone-sync src: rclone-sync.sh mode: "0755" owner: root group: "{{ ansible_wheel }}" - name: Redirect cron job mail ansible.builtin.cron: name: MAILTO env: true user: "{{ rclone_service }}" value: root - name: Add rclone sync cron job ansible.builtin.cron: name: rclone-sync user: "{{ rclone_service }}" hour: "3" minute: "00" job: /usr/local/bin/rclone-sync