feat: add GeeseFS installation and management tasks
This commit is contained in:
48
config/ansible/tasks/servers/geesefs.yml
Normal file
48
config/ansible/tasks/servers/geesefs.yml
Normal 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
|
@@ -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
|
||||
|
Reference in New Issue
Block a user