installation_RedHat.yml 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. ---
  2. - name: Check if mergerfs is installed
  3. shell:
  4. cmd: rpm -q mergerfs
  5. register: mergerfs_check
  6. changed_when: false
  7. failed_when: false
  8. - name: Query latest mergerfs version
  9. uri:
  10. url: "https://api.github.com/repos/trapexit/mergerfs/releases/latest"
  11. return_content: yes
  12. headers:
  13. Accept: "application/vnd.github.v3+json"
  14. register: mergerfs_pkgs
  15. when:
  16. - '"is not installed" in mergerfs_check.stdout'
  17. - name: Create search string for finding correct package
  18. set_fact:
  19. pkg_info: "{{ 'el' if ansible_distribution == 'CentOS' else 'fc' }}{{ansible_distribution_major_version }}.{{ ansible_architecture }}.rpm"
  20. changed_when: false
  21. when:
  22. - '"is not installed" in mergerfs_check.stdout'
  23. - name: Find correct package
  24. set_fact:
  25. mergerfs_pkg_url: "{{ item }}"
  26. when:
  27. - '"is not installed" in mergerfs_check.stdout'
  28. - pkg_info in item
  29. loop: "{{ mergerfs_pkgs.json.assets | map(attribute='browser_download_url') | list }}"
  30. - name: Install mergerfs
  31. yum:
  32. name: "{{ mergerfs_pkg_url }}"
  33. state: installed
  34. disable_gpg_check: yes
  35. when:
  36. - '"is not installed" in mergerfs_check.stdout'
  37. - name: Install mergerfs-tools prereqs
  38. package:
  39. name:
  40. - python3
  41. - rsync
  42. state: present
  43. - name: Install mergerfs-tools
  44. copy:
  45. src: "{{ item }}"
  46. dest: /usr/local/bin/{{ item }}
  47. owner: root
  48. group: root
  49. mode: '0755'
  50. loop:
  51. - mergerfs.balance
  52. - mergerfs.consolidate
  53. - mergerfs.ctl
  54. - mergerfs.dedup
  55. - mergerfs.dup
  56. - mergerfs.fsck
  57. - mergerfs.mktrash