feat: add GeeseFS installation and management tasks
Some checks failed
Ansible Lint Check / check-ansible (push) Failing after 14s
Nix Format Check / check-format (push) Successful in 53s
Python Lint Check / check-python (push) Failing after 11s

This commit is contained in:
2025-03-12 20:13:22 +01:00
parent 0128bb4adf
commit 0a7a727952
2 changed files with 51 additions and 3 deletions

View File

@@ -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

View File

@@ -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