- name: Create backup directory
  file:
    state: directory
    path: /opt/backups

- name: Install borg
  include_role:
    name: install-borg

- name: Install prune script
  copy:
    src: 'prune-borg-backups.sh'
    dest: '/usr/local/bin/prune-borg-backups'
    owner: root
    group: root
    mode: '0755'

- name: Install backup volume monitor
  copy:
    src: 'backup-volume-monitor.sh'
    dest: '/usr/local/bin/backup-volume-monitor'
    owner: root
    group: root
    mode: '0755'

- name: Run backup volume monitor
  cron:
    name: backup-volume-monitor
    state: present
    job: '/usr/local/bin/backup-volume-monitor'
    minute: '0'
    hour: '0'

- name: Install backup verification
  copy:
    src: 'verify-borg-backups.sh'
    dest: '/usr/local/bin/verify-borg-backups'
    owner: root
    group: root
    mode: '0755'

- name: Run backup verification
  cron:
    name: verify-borg-backups
    state: present
    job: '/usr/local/bin/verify-borg-backups >> /var/log/verify-borg-backups.log 2>&1'
    minute: '0'
    hour: '0'
    weekday: '0'

- name: Rotate verification logs
  include_role:
    name: logrotate
  vars:
    logrotate_file_name: '/var/log/verify-borg-backups.log'

- name: Build all borg users from backup hosts
  set_fact:
    borg_users: '{{ borg_users }} + [ {{ hostvars[item]["borg_user"] }} ]'
  with_inventory_hostnames: 'borg-backup:!disabled'

- name: Create borg users
  include_tasks: user.yaml
  loop: '{{ borg_users }}'
  loop_control:
    loop_var: borg_user