|
@@ -1,47 +1,46 @@
|
|
---
|
|
---
|
|
-- name: Install git
|
|
|
|
- yum:
|
|
|
|
- name: git-core
|
|
|
|
- state: installed
|
|
|
|
-
|
|
|
|
-- name: Clone mergerfs repo
|
|
|
|
|
|
+- name: Check if mergerfs is installed
|
|
shell:
|
|
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
|
|
- 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:
|
|
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
|
|
- name: Install mergerfs
|
|
yum:
|
|
yum:
|
|
- name: "{{ mergerfs_build_folder.files[0].path }}"
|
|
|
|
|
|
+ name: "{{ mergerfs_pkg_url }}"
|
|
state: installed
|
|
state: installed
|
|
disable_gpg_check: yes
|
|
disable_gpg_check: yes
|
|
when:
|
|
when:
|
|
- - mergerfs_build_folder.files[0].path is defined
|
|
|
|
|
|
+ - '"mergerfs" not in mergerfs_check.stdout'
|
|
|
|
|
|
|
|
|
|
- name: Install mergerfs-tools prereqs
|
|
- name: Install mergerfs-tools prereqs
|