From 4af2c65d8fd8fb7ea39300677bfce1f5de8ad606 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 1 Jul 2025 17:29:30 +0000 Subject: [PATCH] fix: os disk management --- roles/os_disks/README.md | 20 ++++++++++++++++++++ roles/os_disks/defaults/main.yml | 8 ++++++-- roles/os_disks/tasks/main.yml | 2 +- 3 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 roles/os_disks/README.md diff --git a/roles/os_disks/README.md b/roles/os_disks/README.md new file mode 100644 index 0000000..5c8857b --- /dev/null +++ b/roles/os_disks/README.md @@ -0,0 +1,20 @@ +# OS Disk + +Prepare LVM disks. Configuration example: + +``` +disks_vg: + - vg: data + state: present + devices_dev: + - /dev/vda +disks_lv: + - lv: var_lib_docker + vg: data + size: 20G + state: # present (mounted), absent (destroyed) + fstype: ext4 +``` + +Note: +- Provides a VM disk detection helper diff --git a/roles/os_disks/defaults/main.yml b/roles/os_disks/defaults/main.yml index 4fe4dbf..29340d8 100644 --- a/roles/os_disks/defaults/main.yml +++ b/roles/os_disks/defaults/main.yml @@ -1,4 +1,8 @@ --- -disks_vg: [] -disks_lv: [] +disks_vg__default: [] +disks_lv__default: [] + +disks_vg: "{{ vars | dict2items | selectattr('key', 'match', '^disks_vg__.*') | map(attribute='value') | list | flatten | unique }}" +disks_lv: "{{ vars | dict2items | selectattr('key', 'match', '^disks_lv__.*') | map(attribute='value') | list | flatten | unique }}" + diff --git a/roles/os_disks/tasks/main.yml b/roles/os_disks/tasks/main.yml index f5192cf..f597c09 100644 --- a/roles/os_disks/tasks/main.yml +++ b/roles/os_disks/tasks/main.yml @@ -67,7 +67,7 @@ state: "{{ state }}" loop: "{{ disks_lv }}" vars: - state: "{{ item.state | default('mounted') }}" + state: "{{ ( item.state == 'present' ) | ternary( 'mounted', item.state | default('mounted')) }}" fstype: "{{ item.fstype | default('ext4') }}" src: "/dev/{{ item.vg }}/{{ item.lv }}" path: "/{{ item.lv | replace('_', '/') }}"