Homelab-Infra/roles/storage_client/tasks/main.yml

53 lines
1.4 KiB
YAML

#storage_client/tasks/main.yml
- name: Install required packages
become: true
ansible.builtin.dnf:
name: "{{ item }}"
state: present
loop: "{{ base_storage_install_packages }}"
when: env == "prod"
- name: Install mergerfs repo package
become: true
ansible.builtin.dnf:
name: https://github.com/trapexit/mergerfs/releases/download/2.41.1/mergerfs-2.41.1-1.el10.x86_64.rpm
disable_gpg_check: true
state: present
when: env == "prod"
- name: Set storage mount directory list
ansible.builtin.set_fact:
dir_list: "{{ storage_drives + mergerfs }}"
when: env == "prod"
- name: Ensure storage mount directories exist
ansible.builtin.import_role:
name: container_runtime
tasks_from: directory
when: env == "prod"
- name: Mount filesystem by UUID
become: true
ansible.posix.mount:
path: "{{ item.path }}"
src: "UUID={{ item.uuid }}"
fstype: "{{ item.fstype }}"
opts: "{{ item.opts }}"
dump: "{{ item.dump }}"
passno: "{{ item.passno }}"
state: mounted
loop: "{{ storage_drives }}"
when: env == "prod"
- name: Mount mergerfs pool
become: true
ansible.posix.mount:
path: "{{ item.path }}"
src: "{{ item.src_path }}"
fstype: fuse.mergerfs
opts: "{{ item.opts }}"
dump: "{{ item.dump | default('0') }}"
passno: "{{ item.passno | default('0') }}"
state: mounted
loop: "{{ mergerfs }}"
when: env == "prod"