--- - name: check volume parent when: "'parent' in lvm_volume" assert: msg: "the volume parent must be a lvm thinpool" that: - (lvm_volume.parent.thinpool | default(false)) - name: install thin-provisioning-tools when: (lvm_volume.thinpool | default(false)) apt: name: thin-provisioning-tools state: present - name: create logical volume lvol: vg: "{{ lvm_volume.parent.vg | default(lvm_volume.vg) }}" lv: "{{ (lvm_volume.thinpool | default(false)) | ternary(omit, lvm_volume.lv) }}" size: "{{ lvm_volume.size }}" thinpool: "{{ (lvm_volume.thinpool | default(false)) | ternary(lvm_volume.lv, (lvm_volume.parent.lv | default(omit))) }}" - name: create and mount filesystem when: not (lvm_volume.thinpool | default(false)) block: - name: create filesystem filesystem: fstype: "{{ lvm_volume.fs }}" dev: "/dev/mapper/{{ lvm_volume.parent.vg | default(lvm_volume.vg) | replace('-', '--') }}-{{ lvm_volume.lv | replace('-', '--') }}" - name: mount filesytem mount: src: "/dev/mapper/{{ lvm_volume.parent.vg | default(lvm_volume.vg) | replace('-', '--') }}-{{ lvm_volume.lv | replace('-', '--') }}" path: "{{ lvm_volume.dest }}" fstype: "{{ lvm_volume.fs }}" state: mounted - name: set volume owner/group and mode file: state: directory path: "{{ lvm_volume.dest }}" mode: "{{ lvm_volume.mode | default(omit) }}" owner: "{{ lvm_volume.owner | default(omit) }}" group: "{{ lvm_volume.group | default(omit) }}" - name: export volume mountpoint set_fact: storage_volume_mountpoint: "{{ lvm_volume.dest }}"