--- - name: check device parent when: "'parent' in lvm_device" assert: msg: "the device parent must be a lvm thinpool" that: - (lvm_device.parent.thinpool | default(false)) - name: install thin-provisioning-tools when: (lvm_device.thinpool | default(false)) apt: name: thin-provisioning-tools state: present - name: create logical volume lvol: vg: "{{ lvm_device.parent.vg | default(lvm_device.vg) }}" lv: "{{ (lvm_device.thinpool | default(false)) | ternary(omit, lvm_device.lv) }}" size: "{{ lvm_device.size }}" thinpool: "{{ (lvm_device.thinpool | default(false)) | ternary(lvm_device.lv, (lvm_device.parent.lv | default(omit))) }}" - name: export device path when: not (lvm_device.thinpool | default(false)) set_fact: storage_device_path: "/dev/mapper/{{ lvm_device.parent.vg | default(lvm_device.vg) | replace('-', '--') }}-{{ lvm_device.lv | replace('-', '--') }}"