LINUX.ORG.RU
ФорумAdmin

Почему такая стандартная операция получается такой сложной?

 , , ,


0

1

Подозреваю что я делаю что-то не так

Входные данные: 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
★★★★★

Последнее исправление: futurama (всего исправлений: 2)

В целом lvextend может сам дёрнуть утилиту для расширения/уменьшения ФС, для этого ты и добавил ключик -r, так же не обязательно ссылаться на представления девайс мапера, ты можешь просто указать rootvg/lv_usr, или вообще по uuid обратится, но я так и не понял твой вопрос, что ты спросить то хотел?

sparks ★★★★
()
Ответ на: комментарий от sparks

просто указать rootvg/lv_usr

я их не знаю, так же как и UUID

но я так и не понял твой вопрос, что ты спросить то хотел?

как красиво ansible’м сделать ресайз, зная только mountpoint и желаемый размер конечно

futurama ★★★★★
() автор топика

Сделай шелл-скриптом и перестань парить себе мозг программированием на ансиболи.

AnDoR ★★★★★
()
Ответ на: комментарий от futurama

Сделай через shell:. Будет короче и понятнее, чем на голой ансиболи. А кроме того, ещё и быстрее работать будет.

AnDoR ★★★★★
()
Ответ на: комментарий от sparks

Нахера тогда ансибль, если опять писать скрипты?

из facts вытащить device=/dev/vg0/lvol1 выдернуть vg=vg0 lv=lvol1 и подставить в lvol:

придется писать свой модуль для ансибля что-ли?

futurama ★★★★★
() автор топика
Ответ на: комментарий от futurama

Ну а как ты хочешь получить инфу которой тебе не хватает? Есть вариант без скриптов, с заклинаниеями и жертвоприношениями, но там качество инфы страдает, вроде в связке с астрологией, более менее, но тоже вкусовщина

sparks ★★★★
()
Ответ на: комментарий от sparks

ожидал что для такого распространенного дествия есть что-то удобнее связки lvol: filesystem:

futurama ★★★★★
() автор топика
Ответ на: комментарий от futurama

Чтото мне подсказывает что ты уже и так всё проверил))) но выглядит норм

sparks ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.