You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.6 KiB

- 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.scrt file
ansible.builtin.copy:
dest: /etc/rsyncd.scrt
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: "*"