---
- name: Enable snapraid copr repo
  shell:
    cmd: dnf copr enable pauken/SnapRAID centos-stream-{{ ansible_distribution_major_version }}-x86_64 -y
    creates: /etc/yum.repos.d/_copr:copr.fedorainfracloud.org:pauken:SnapRAID.repo
  when:
    - ansible_distribution == "CentOS"
    - ansible_distribution_release == "Stream"

- name: Install snapraid
  yum:
    name:
      - snapraid
      - smartmontools
    state: installed

- name: Create /var/snapraid folder
  file:
    path: /var/snapraid
    state: directory
    owner: root
    group: root
    mode: '0750'

- name: Configure snapraid
  template:
    src: snapraid.conf.j2
    dest: /etc/snapraid.conf
    owner: root
    group: root
    mode: '0644'

- name: Install auto disk check scripts
  template:
    src: "{{ item }}.j2"
    dest: /usr/local/bin/{{ item }}
    owner: root
    group: root
    mode: '0755'
  loop:
    - snapraid-diff-n-sync.sh
    - smarttest.sh

- name: Enable snapraid-diff-n-sync.sh cronjob
  cron:
    name: "snapraid diff and sync"
    minute: "{{ snapraid_sync_cron.minute | default('*') }}"
    hour: "{{ snapraid_sync_cron.hour | default('*') }}"
    dom: "{{ snapraid_sync_cron.dom | default('*') }}"
    month: "{{ snapraid_sync_cron.month | default('*') }}"
    dow: "{{ snapraid_sync_cron.dow | default('*') }}"
    job: /usr/local/bin/snapraid-diff-n-sync.sh
    state: present

- name: Set up S.M.A.R.T. tests on all disks
  cron:
    name: "SMART tests on all disks"
    minute: "{{ snapraid_smart_test_cron.minute | default('*') }}"
    hour: "{{ snapraid_smart_test_cron.hour | default('*') }}"
    dom: "{{ snapraid_smart_test_cron.dom | default('*') }}"
    month: "{{ snapraid_smart_test_cron.month | default('*') }}"
    weekday: "{{ snapraid_smart_test_cron.dow | default('*') }}"
    job: /usr/local/bin/smarttest.sh
    state: present