You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible-homelab/roles/sprat.mergerfs/tasks/install_from_github_release...

54 lines
1.7 KiB
YAML

# Note: we don't use the GitHub API to retrieve the latest version because
# it has rate limits which are hard to avoid in CI (we need a token, authenticate
# with the API, etc.). Instead, we browse the latest release url which redirects
# to the release page, where we can find the version number in the URL.
- become: false
delegate_to: localhost
run_once: true
block:
- name: Get latest release information from GitHub
uri:
url: '{{ mergerfs_github_releases_url }}/latest'
register: mergerfs_github_release_page
- name: Set latest mergerfs version fact
set_fact:
mergerfs_version: "{{ mergerfs_github_release_page['url'].split('/')[-1] }}"
when: mergerfs_version == "latest"
- name: Determine package download url
set_fact:
mergerfs_package_url: '{{ mergerfs_github_releases_url }}/download/{{ mergerfs_version
}}/{{ mergerfs_pkg_prefix }}{{ mergerfs_version }}{{ mergerfs_pkg_suffix }}'
- name: Install xz-utils package for .deb package installation
become: true
apt:
name: xz-utils
state: present
update_cache: true
when: ansible_pkg_mgr == 'apt'
- name: Install mergerfs package with apt
become: true
apt:
deb: '{{ mergerfs_package_url }}'
state: present
update_cache: true
when: ansible_pkg_mgr == 'apt'
- name: Install mergerfs package with yum
become: true
yum:
name: '{{ mergerfs_package_url }}'
state: present
disable_gpg_check: true # the package is not signed
when: ansible_pkg_mgr == 'yum'
- name: Install mergerfs package with dnf
become: true
dnf:
name: '{{ mergerfs_package_url }}'
state: present
disable_gpg_check: true # the package is not signed
when: ansible_pkg_mgr == 'dnf'