Подозреваю что я делаю что-то не так
Входные данные: fs=/usr size_in_GB=8
(fs – это mountpoint, size_in_GB желаемый размер в ГБ)
По идее надо ресайзить LV модулем lvol, затем модулем filesystem ресайзить саму файловую систему
lvol:
lv: ??? неизвестен, надо выковыривать из facts ???
vg: ??? неизвестен, надо выковыривать из facts ???
дальше проще, но как быть с этими lv: и vg: ?
Получается проще из facts вытащить device=/dev/rootvg/lv_usr (как пример) и затем lvextend -L"{{sizeGB}}g" -r "{{device}}"
Но это как-то не по канону
Update: Сделал так пока
---
#
# usage: ansible-playbook linux_resize_fs.yaml -e 'fsmount=/usr fssize=5.5g'
#
- name: Resize fs on Linux
hosts: all
gather_facts: True
tasks:
- name: set vg and lv vars
# double split /dev/mapper/VG-LV
# 1. by '/' -- get VG-LV
# 2. by '-' -- get VG and LV
set_fact:
vg: "{{ item.device.split('/').3.split('-').0 }}"
lv: "{{ item.device.split('/').3.split('-').1 }}"
when: item.mount == fsmount
loop: "{{ ansible_mounts }}"
- name: Resize up and do not try to shrink if size is lower
lvol:
vg: "{{ vg }}"
lv: "{{ lv }}"
size: "{{ fssize }}"
shrink: no
resizefs: yes