Kaynağa Gözat

update mergerfs role

Blaine Story 1 gün önce
ebeveyn
işleme
8a2a6a0bd9

+ 11 - 0
roles/mergerfs/tasks/disks.yml

@@ -29,6 +29,7 @@
   when:
     - mergerfs_disks is defined
 
+
 - name: Ensure mergerfs array is mounted
   mount:
     name: "{{ item.path }}"
@@ -42,3 +43,13 @@
     label: "{{ item.path }}"
   when:
     - mergerfs_fstab is defined
+
+
+- name: Ensure mergerfs array has correct permissions
+  file:
+    path: "{{ item.path }}"
+    mode: "{{ item.mode | default('0770') }}"
+  with_items:
+    - "{{ mergerfs_fstab }}"
+  loop_control:
+    label: "{{ item.path }}"

+ 29 - 30
roles/mergerfs/tasks/installation_RedHat.yml

@@ -1,47 +1,46 @@
 ---
-- name: Install git
-  yum:
-    name: git-core
-    state: installed
-
-- name: Clone mergerfs repo
+- name: Check if mergerfs is installed
   shell:
-    cmd: git clone https://github.com/trapexit/mergerfs.git
-    chdir: /root
-    creates: /root/mergerfs
+    cmd: rpm -q mergerfs
+  register: mergerfs_check
+
 
 - name: Query latest mergerfs version
-  shell:
-    cmd: git tag | sort -V | tail -1
-    chdir: /root/mergerfs
-  register: mergerfs_version
-  changed_when: false
+  uri:
+    url: "https://api.github.com/repos/trapexit/mergerfs/releases/latest"
+    return_content: yes
+    headers:
+      Accept: "application/vnd.github.v3+json"
+  register: mergerfs_pkgs
+  when:
+    - '"mergerfs" not in mergerfs_check.stdout'
+
 
-- name: Set mergerfs RPM path
+- name: Create search string for finding correct package
   set_fact:
-    mergerfs_rpm: /root/mergerfs/rpmbuild/RPMS/x86_64/mergerfs-{{ mergerfs_version.stdout }}-1.{{ 'el' if ansible_distribution == 'CentOS' else 'fc' }}{{ ansible_distribution_major_version }}.{{ ansible_architecture }}.rpm
+    pkg_info: "{{ 'el' if ansible_distribution == 'CentOS' else 'fc' }}{{ansible_distribution_major_version }}.{{ ansible_architecture }}.rpm"
+  changed_when: false
+  when:
+    - '"mergerfs" not in mergerfs_check.stdout'
 
-- name: Download and build mergerfs
-  shell:
-    cmd: >
-         git checkout {{ mergerfs_version.stdout }} &&
-         buildtools/install-build-pkgs &&
-         make rpm
-    chdir: /root/mergerfs
-    creates: "{{ mergerfs_rpm }}"
 
-- name: Stat mergerfs build folder
-  find:
-    path: /root/mergerfs/rpmbuild/RPMS/x86_64
-  register: mergerfs_build_folder
+- name: Find correct package
+  set_fact:
+    mergerfs_pkg_url: "{{ item }}"
+  when:
+    - pkg_info in item
+  loop: "{{ mergerfs_pkgs.json.assets | map(attribute='browser_download_url') | list }}"
+  when:
+    - '"mergerfs" not in mergerfs_check.stdout'
+
 
 - name: Install mergerfs
   yum:
-    name: "{{ mergerfs_build_folder.files[0].path }}"
+    name: "{{ mergerfs_pkg_url }}"
     state: installed
     disable_gpg_check: yes
   when:
-    - mergerfs_build_folder.files[0].path is defined
+    - '"mergerfs" not in mergerfs_check.stdout'
 
          
 - name: Install mergerfs-tools prereqs