summaryrefslogtreecommitdiff
path: root/roles/storage/lvm/device/tasks/main.yml
diff options
context:
space:
mode:
Diffstat (limited to 'roles/storage/lvm/device/tasks/main.yml')
-rw-r--r--roles/storage/lvm/device/tasks/main.yml25
1 files changed, 25 insertions, 0 deletions
diff --git a/roles/storage/lvm/device/tasks/main.yml b/roles/storage/lvm/device/tasks/main.yml
new file mode 100644
index 00000000..bac06b3d
--- /dev/null
+++ b/roles/storage/lvm/device/tasks/main.yml
@@ -0,0 +1,25 @@
+---
+- 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('-', '--') }}"