diff --git a/config/ansible/tasks/servers/geesefs.yml b/config/ansible/tasks/servers/geesefs.yml new file mode 100644 index 0000000..561c526 --- /dev/null +++ b/config/ansible/tasks/servers/geesefs.yml @@ -0,0 +1,48 @@ +--- +- 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: 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) + +- 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) + +- name: Install GeeseFS to system path + ansible.builtin.copy: + src: "{{ temp_dir.path }}/geesefs" + dest: "{{ geesefs_install_path }}" + 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) + +- name: Clean up temporary directory + ansible.builtin.file: + path: "{{ temp_dir.path }}" + state: absent + when: temp_dir.path is defined diff --git a/config/ansible/tasks/servers/server.yml b/config/ansible/tasks/servers/server.yml index 5991191..e2ce810 100644 --- a/config/ansible/tasks/servers/server.yml +++ b/config/ansible/tasks/servers/server.yml @@ -10,7 +10,9 @@ - name: Include ZFS tasks ansible.builtin.include_tasks: zfs.yml - when: ansible_hostname == "mennos-server" or ansible_hostname == "dotfiles-test" or ansible_hostname == "mennos-cloud-server" + + - name: Include GeeseFS tasks + ansible.builtin.include_tasks: geesefs.yml - name: Check if datapool exists ansible.builtin.command: zpool list datapool @@ -18,7 +20,6 @@ ignore_errors: true become: true changed_when: false - when: ansible_hostname == "mennos-server" or ansible_hostname == "dotfiles-test" or ansible_hostname == "mennos-cloud-server" - name: Include services tasks ansible.builtin.include_tasks: services/services.yml @@ -35,7 +36,6 @@ - name: gitea enabled: false when: - - ansible_hostname == "mennos-server" or ansible_hostname == "dotfiles-test" or ansible_hostname == "mennos-cloud-server" - datapool_check is defined - datapool_check.rc is defined - datapool_check.rc == 0