From ed0eb14ce8dfb3d4922a37eace74eb16e2608f49 Mon Sep 17 00:00:00 2001 From: Charlie Mordant Date: Sun, 7 Jun 2020 17:17:48 +0200 Subject: [PATCH] xfs resize --- tasks/create_fs.yml | 62 ++++++++++++++++++++++---------------------- tasks/create_lv.yml | 20 +++++++------- tasks/create_vg.yml | 16 ++++++++---- tasks/manage_lvm.yml | 9 ------- 4 files changed, 51 insertions(+), 56 deletions(-) diff --git a/tasks/create_fs.yml b/tasks/create_fs.yml index 7d95b60..0e842f9 100644 --- a/tasks/create_fs.yml +++ b/tasks/create_fs.yml @@ -1,4 +1,21 @@ --- + +# unable to resize xfs: looks like we've to reference the mountpoint instead of the device +- name: create_fs | check already converted + # at least xfs is executed twice if the partition has changed in the meantime + # then it tries to recreate the fs on the mounted fs which indeed fails... + shell: "xfs_info {{ lv.mntp }} | grep -c 'ftype=1'" + become: yes + register: mountedxfs + ignore_errors: true + changed_when: false + when: + - lv is defined and lv != 'None' + - lv.filesystem is defined + - lv.filesystem == "xfs" + - lv.create is defined + - lv.create|bool + - name: create_fs | unmounting filesystem(s) mount: path: "{{ lv.mntp }}" @@ -6,9 +23,6 @@ fstype: "{{ lv.filesystem | default(omit) }}" state: absent become: true - loop: "{{ vg.lvnames }}" - loop_control: - loop_var: lv when: - lv is defined - lv != 'None' @@ -21,9 +35,6 @@ fstype: "{{ lv.filesystem }}" dev: "/dev/{{ vg.vgname }}/{{ lv.lvname }}" resizefs: yes - loop: "{{ vg.lvnames }}" - loop_control: - loop_var: lv become: true when: - vg.create is defined @@ -36,32 +47,10 @@ - lv.filesystem != 'None' - lv.filesystem != 'xfs' -# unable to resize xfs: looks like we've to reference the mountpoint instead of the device -- name: create_fs | check already converted - # at least xfs is executed twice if the partition has changed in the meantime - # then it tries to recreate the fs on the mounted fs which indeed fails... - shell: "xfs_info {{ lv.mntp }} | grep -c 'ftype=1'" - become: yes - loop: "{{ vg.lvnames }}" - loop_control: - loop_var: lv - register: mountedxfs - ignore_errors: true - changed_when: false - when: - - lv is defined and lv != 'None' - - lv.filesystem is defined - - lv.filesystem == "xfs" - - lv.create is defined - - lv.create|bool - - name: create_fs | creating new xfs filesystem on new LVM logical volume(s) filesystem: fstype: "{{ lv.filesystem }}" dev: "/dev/{{ vg.vgname }}/{{ lv.lvname }}" - loop: "{{ vg.lvnames }}" - loop_control: - loop_var: lv become: true when: - mountedxfs is failed @@ -82,9 +71,6 @@ state: mounted opts: "{{ lv.mopts | default('defaults') }}" become: true - loop: "{{ vg.lvnames }}" - loop_control: - loop_var: lv when: - vg.create is defined - vg.create|bool @@ -94,3 +80,17 @@ - lv.create|bool - lv.mount is defined - lv.mount|bool + +- name: create_fs | resizing xfs filesystem on new LVM logical volume(s) + command: "xfs_growfs {{ lv.mntp }}" + become: true + when: + - vg.create is defined + - vg.create|bool + - lv is defined + - lv != 'None' + - lv.create is defined + - lv.create|bool + - lv.filesystem is defined + - lv.filesystem == 'xfs' + - lvchanged.changed diff --git a/tasks/create_lv.yml b/tasks/create_lv.yml index ec5a518..ee2e7ca 100644 --- a/tasks/create_lv.yml +++ b/tasks/create_lv.yml @@ -1,17 +1,10 @@ --- + - name: create_lv | Display Volume Group debug: var: vg verbosity: 2 -- name: create_lv | debug lvm - loop: "{{ vg.lvnames | default([]) }}" - debug: - var: lv - verbosity: 1 - loop_control: - loop_var: lv - - name: create_lv | creating new LVM logical volume(s) lvol: vg: "{{ vg.vgname }}" @@ -20,10 +13,8 @@ shrink: false opts: "{{ lv.opts | default('') }}" state: present - loop: "{{ vg.lvnames | default([]) }}" - loop_control: - loop_var: lv become: true + register: lvchanged when: - vg.create is defined - vg.create|bool @@ -31,3 +22,10 @@ - lv != 'None' - lv.create is defined - lv.create|bool + +- name: create_lv | debug changed attribute + debug: + var: lvchanged + +- name: create_lv | configuring FS + include_tasks: create_fs.yml diff --git a/tasks/create_vg.yml b/tasks/create_vg.yml index 231da78..fb2722d 100644 --- a/tasks/create_vg.yml +++ b/tasks/create_vg.yml @@ -1,11 +1,17 @@ --- - name: create_vg | creating new LVM volume group(s) lvg: - vg: "{{ item.vgname }}" - pvs: "{{ item.disks | join(',') }}" + vg: "{{ vg.vgname }}" + pvs: "{{ vg.disks | join(',') }}" state: present become: true - loop: "{{ lvm_groups }}" when: - - item.create is defined - - item.create|bool + - vg.create is defined + - vg.create|bool + +- name: manage_lvm | loop over logical volume group(s) to create logical volumes + include_tasks: create_lv.yml + loop: "{{ vg.lvnames | default([]) }}" + loop_control: + loop_var: lv + diff --git a/tasks/manage_lvm.yml b/tasks/manage_lvm.yml index 3fa82dc..04b6d26 100644 --- a/tasks/manage_lvm.yml +++ b/tasks/manage_lvm.yml @@ -1,15 +1,6 @@ --- - name: manage_lvm | manage physical volume group creation include_tasks: create_vg.yml - -- name: manage_lvm | loop over logical volume group(s) to create logical volumes - include_tasks: create_lv.yml - loop: "{{ lvm_groups }}" - loop_control: - loop_var: vg - -- name: manage_lvm | loop over logical volume group(s) to create filesystems - include_tasks: create_fs.yml loop: "{{ lvm_groups }}" loop_control: loop_var: vg