From 75eaff06d180940220e613d55168b6e3cd7cb2d1 Mon Sep 17 00:00:00 2001 From: Menno van Leeuwen Date: Wed, 12 Mar 2025 20:16:34 +0100 Subject: [PATCH] fix: enhance GeeseFS installation checks and set installation conditions --- config/ansible/tasks/servers/geesefs.yml | 38 ++++++++++++++---------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/config/ansible/tasks/servers/geesefs.yml b/config/ansible/tasks/servers/geesefs.yml index 561c526..88f1d39 100644 --- a/config/ansible/tasks/servers/geesefs.yml +++ b/config/ansible/tasks/servers/geesefs.yml @@ -1,36 +1,42 @@ --- -- name: Check if GeeseFS is installed - ansible.builtin.command: which geesefs - register: geesefs_check - ignore_errors: true - changed_when: false - -- name: Check GeeseFS version if installed - ansible.builtin.command: geesefs --version - register: geesefs_version - ignore_errors: true - changed_when: false - when: geesefs_check.rc == 0 - - name: Set GeeseFS facts ansible.builtin.set_fact: geesefs_desired_version: "0.43.0" geesefs_download_url: "https://github.com/yandex-cloud/geesefs/releases/download/v{{ geesefs_desired_version }}/geesefs-linux-arm64" geesefs_install_path: "/usr/local/bin/geesefs" +- name: Check if GeeseFS is installed + ansible.builtin.command: which geesefs + register: geesefs_check + ignore_errors: true + changed_when: false + failed_when: false + +- name: Check GeeseFS version if installed + ansible.builtin.command: geesefs --version + register: geesefs_version + ignore_errors: true + changed_when: false + failed_when: false + when: geesefs_check.rc is defined and geesefs_check.rc == 0 + +- name: Set needs_installation fact + ansible.builtin.set_fact: + needs_installation: "{{ geesefs_check.rc is not defined or geesefs_check.rc != 0 or (geesefs_version.stdout is defined and 'geesefs version ' + geesefs_desired_version not in geesefs_version.stdout) }}" + - name: Create temporary directory for download ansible.builtin.tempfile: state: directory suffix: geesefs register: temp_dir - when: geesefs_check.rc != 0 or (geesefs_version.rc == 0 and "geesefs version " + geesefs_desired_version not in geesefs_version.stdout) + when: needs_installation | bool - name: Download GeeseFS ansible.builtin.get_url: url: "{{ geesefs_download_url }}" dest: "{{ temp_dir.path }}/geesefs" mode: '0755' - when: geesefs_check.rc != 0 or (geesefs_version.rc == 0 and "geesefs version " + geesefs_desired_version not in geesefs_version.stdout) + when: needs_installation | bool - name: Install GeeseFS to system path ansible.builtin.copy: @@ -39,7 +45,7 @@ mode: '0755' remote_src: true become: true - when: geesefs_check.rc != 0 or (geesefs_version.rc == 0 and "geesefs version " + geesefs_desired_version not in geesefs_version.stdout) + when: needs_installation | bool - name: Clean up temporary directory ansible.builtin.file: