--- - name: Add dependencies ansible.builtin.include_role: name: "{{ item }}" with_items: - backup_base - ssh_known_hosts - name: Copy backup script ansible.builtin.copy: dest: /usr/local/sbin/backup-daily src: backup-daily.sh mode: "0755" owner: root group: "{{ ansible_wheel }}" - name: Create config directory ansible.builtin.file: path: /etc/rsync-backup state: directory mode: "0755" owner: root group: "{{ ansible_wheel }}" - name: Create logdir ansible.builtin.file: path: /var/log/rsync-backup state: directory mode: "0700" owner: root group: "{{ ansible_wheel }}" - name: Create ssh keys ansible.builtin.command: argv: - ssh-keygen - -t - ed25519 - -C - "root@{{ inventory_hostname }}" - -N - "" - -f - /etc/rsync-backup/id_ed25519 creates: /etc/rsync-backup/id_ed25519 - name: Fetch ssh public key ansible.builtin.fetch: src: /etc/rsync-backup/id_ed25519.pub dest: ../files/ssh/rsync-backup.pub flat: true - name: Install cron job ansible.builtin.cron: name: daily rsync backup job: /usr/local/sbin/backup-daily -a -p -r hour: "00" minute: "30" - name: Create client configs ansible.builtin.include_tasks: file: client.yml vars: rsync_backup_client: "{{ item }}" rsync_backup_dirs: >- {{ hostvars[item]['rsync_backup_dirs'] | default(['/export']) }} with_items: "{{ groups['rsyncbackup'] }}"