summaryrefslogtreecommitdiff
path: root/roles/storage/lvm/base
diff options
context:
space:
mode:
Diffstat (limited to 'roles/storage/lvm/base')
-rw-r--r--roles/storage/lvm/base/defaults/main.yml36
-rw-r--r--roles/storage/lvm/base/filter_plugins/lvm.py18
-rw-r--r--roles/storage/lvm/base/tasks/main.yml15
3 files changed, 47 insertions, 22 deletions
diff --git a/roles/storage/lvm/base/defaults/main.yml b/roles/storage/lvm/base/defaults/main.yml
index 36df4a51..f85e2c80 100644
--- a/roles/storage/lvm/base/defaults/main.yml
+++ b/roles/storage/lvm/base/defaults/main.yml
@@ -5,17 +5,15 @@ lvm_groups: {}
# foo:
# pvs:
# - /dev/sdb
-# - /dev/sdc1
+# - /dev/sdc
-lvm_volumes: {}
+lvm_devices: {}
-# lvm_volumes:
-# system/test:
+# lvm_devices:
+# system/dev-test:
# vg: "{{ host_name }}"
-# lv: test
+# lv: dev-test
# size: 1G
-# fs: ext4
-# dest: /srv/test
# foo/test: &_lvm_thinpool_foo_test_
# vg: foo
# lv: test
@@ -25,11 +23,29 @@ lvm_volumes: {}
# parent: *_lvm_thinpool_foo_test_
# lv: blub
# size: 3G
-# fs: ext4
-# dest: /srv/blub
# foo/hugo:
# parent: *_lvm_thinpool_foo_test_
# lv: hugo
# size: 2G
+
+lvm_volumes: {}
+
+# lvm_volumes:
+# system/vol-test:
+# vg: "{{ host_name }}"
+# lv: vol-test
+# size: 1G
+# fs: ext4
+# dest: /srv/test
+# foo/app1:
+# parent: *_lvm_thinpool_foo_test_
+# lv: app1
+# size: 3G
+# fs: ext4
+# dest: /srv/app1
+# foo/app2:
+# parent: *_lvm_thinpool_foo_test_
+# lv: app2
+# size: 2G
# fs: ext4
-# dest: /srv/hugo
+# dest: /srv/app2
diff --git a/roles/storage/lvm/base/filter_plugins/lvm.py b/roles/storage/lvm/base/filter_plugins/lvm.py
index 0f8b1e97..312741a6 100644
--- a/roles/storage/lvm/base/filter_plugins/lvm.py
+++ b/roles/storage/lvm/base/filter_plugins/lvm.py
@@ -6,25 +6,25 @@ from functools import partial
from ansible import errors
-def lvm_volume_list(data):
+def lvm_device_list(data):
try:
thinpools = []
- volumes = []
- for name, volume in data.items():
- entry = {'name': name, 'volume': volume}
- if 'thinpool' in volume and volume['thinpool'] == True:
+ devices = []
+ for name, device in data.items():
+ entry = {'name': name, 'device': device}
+ if 'thinpool' in device and device['thinpool'] == True:
thinpools.append(entry)
else:
- volumes.append(entry)
- return thinpools + volumes
+ devices.append(entry)
+ return thinpools + devices
except Exception as e:
- raise errors.AnsibleFilterError("lvm_volume_list(): %s" % str(e))
+ raise errors.AnsibleFilterError("lvm_device_list(): %s" % str(e))
class FilterModule(object):
filter_map = {
- 'lvm_volume_list': lvm_volume_list,
+ 'lvm_device_list': lvm_device_list,
}
def filters(self):
diff --git a/roles/storage/lvm/base/tasks/main.yml b/roles/storage/lvm/base/tasks/main.yml
index 75af733b..04d44ad0 100644
--- a/roles/storage/lvm/base/tasks/main.yml
+++ b/roles/storage/lvm/base/tasks/main.yml
@@ -11,11 +11,20 @@
pv_options: "{{ item.value.pv_options | default(omit) }}"
state: present
-- name: create lvm volumes
- loop: "{{ lvm_volumes | lvm_volume_list }}"
+- name: create lvm devices
+ loop: "{{ lvm_devices | lvm_device_list }}"
loop_control:
label: "{{ item.name }}"
vars:
- lvm_volume: "{{ item.volume }}"
+ lvm_device: "{{ item.device }}"
+ include_role:
+ name: storage/lvm/device
+
+- name: create lvm volumes
+ loop: "{{ lvm_volumes | dict2items }}"
+ loop_control:
+ label: "{{ item.key }}"
+ vars:
+ lvm_volume: "{{ item.value }}"
include_role:
name: storage/lvm/volume