- name: Deploy rsync_backup script hosts: all become: yes vars: script_url: "https://code.3err0.ru/3err0/rsync/raw/branch/main/rsync_backup.sh" script_path: "/usr/local/bin/rsync_backup" exclude_url: "https://code.3err0.ru/3err0/rsync/raw/branch/main/etc/rsyncd.exclude" backup_user: "backup" dest_ip: "ip" files_source: "'/opt'" tasks: - name: Download script ansible.builtin.get_url: url: "{{ script_url }}" dest: "{{ script_path }}" mode: '0755' - name: Create rsyncd.pwd file ansible.builtin.copy: dest: /etc/rsyncd.pwd content: password mode: '0600' - name: Create rsyncd.exclude file ansible.builtin.get_url: url: "{{ exclude_url }}" dest: /etc/rsyncd.exclude mode: '0644' - name: Update user in script ansible.builtin.lineinfile: path: "{{ script_path }}" regexp: "^user='[^']*'" line: "user='{{ backup_user }}'" state: present - name: Update ip in script ansible.builtin.lineinfile: path: "{{ script_path }}" regexp: "^ip='[^']*'" line: "ip='{{ dest_ip }}'" state: present - name: Update source in script ansible.builtin.lineinfile: path: "{{ script_path }}" regexp: "^source='[^']*'" line: "source={{ files_source }}" state: present - name: Schedule script in cron for daily execution at 1 AM ansible.builtin.cron: name: "Backup with rsync" job: "{{ script_path }}" minute: "0" hour: "1" day: "*" month: "*" weekday: "*"