installation_RedHat.yml 1.5 KB

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