ansible/roles/rsync_backup/tasks/main.yml

67 lines
1.5 KiB
YAML

---
- 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'] }}"