installation.yml 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. ---
  2. - name: Enable snapraid copr repo (CentOS)
  3. shell:
  4. cmd: dnf copr enable pauken/SnapRAID centos-stream-{{ ansible_distribution_major_version }}-x86_64 -y
  5. creates: /etc/yum.repos.d/_copr:copr.fedorainfracloud.org:pauken:SnapRAID.repo
  6. when:
  7. - ansible_distribution == "CentOS"
  8. - ansible_distribution_release == "Stream"
  9. - name: Install xfsprogs (Debian)
  10. package:
  11. name: xfsprogs
  12. state: present
  13. when:
  14. - (snapraid_data_disks | selectattr('fs', '==', 'xfs') | list | length)|int > 0 or
  15. (snapraid_parity_disks | selectattr('fs', '==', 'xfs') | list | length)|int > 0
  16. - name: Install snapraid
  17. package:
  18. name:
  19. - snapraid
  20. - smartmontools
  21. state: present
  22. - name: Create /var/snapraid folder
  23. file:
  24. path: /var/snapraid
  25. state: directory
  26. owner: root
  27. group: root
  28. mode: '0750'
  29. - name: Configure snapraid
  30. template:
  31. src: snapraid.conf.j2
  32. dest: /etc/snapraid.conf
  33. owner: root
  34. group: root
  35. mode: '0644'
  36. - name: Install auto disk check scripts
  37. template:
  38. src: "{{ item }}.j2"
  39. dest: /usr/local/bin/{{ item }}
  40. owner: root
  41. group: root
  42. mode: '0755'
  43. loop:
  44. - snapraid-diff-n-sync.sh
  45. - smarttest.sh
  46. - name: Enable snapraid-diff-n-sync.sh cronjob
  47. cron:
  48. name: "snapraid diff and sync"
  49. minute: "{{ snapraid_sync_cron.minute | default('*') }}"
  50. hour: "{{ snapraid_sync_cron.hour | default('*') }}"
  51. dom: "{{ snapraid_sync_cron.dom | default('*') }}"
  52. month: "{{ snapraid_sync_cron.month | default('*') }}"
  53. dow: "{{ snapraid_sync_cron.dow | default('*') }}"
  54. job: /usr/local/bin/snapraid-diff-n-sync.sh
  55. state: present
  56. - name: Set up S.M.A.R.T. tests on all disks
  57. cron:
  58. name: "SMART tests on all disks"
  59. minute: "{{ snapraid_smart_test_cron.minute | default('*') }}"
  60. hour: "{{ snapraid_smart_test_cron.hour | default('*') }}"
  61. dom: "{{ snapraid_smart_test_cron.dom | default('*') }}"
  62. month: "{{ snapraid_smart_test_cron.month | default('*') }}"
  63. weekday: "{{ snapraid_smart_test_cron.dow | default('*') }}"
  64. job: /usr/local/bin/smarttest.sh
  65. state: present