aboutsummaryrefslogtreecommitdiffstats
path: root/roles/zfs/tasks/create_zpool.yml
diff options
context:
space:
mode:
Diffstat (limited to 'roles/zfs/tasks/create_zpool.yml')
-rw-r--r--roles/zfs/tasks/create_zpool.yml20
1 files changed, 20 insertions, 0 deletions
diff --git a/roles/zfs/tasks/create_zpool.yml b/roles/zfs/tasks/create_zpool.yml
new file mode 100644
index 0000000..a99eb75
--- /dev/null
+++ b/roles/zfs/tasks/create_zpool.yml
@@ -0,0 +1,20 @@
+- name: check if zpool exists
+ command: zpool list -Ho name {{ zpool.name }}
+ failed_when: no
+ changed_when: no
+ register: zpool_exists
+
+- name: create zpools
+ command: >
+ zpool create
+ {% for property in (zpool.properties | default({}) | dict2items) %}
+ -o {{ item.key }}={{ item.value }}
+ {% endfor %}
+ {% if zpool.mountpoint is defined %}
+ -m {{ zpool.mountpoint }}
+ {% endif %}
+ {{ zpool.name }}
+ {% for vdev in zpool.vdevs %}
+ {{ vdev.type }} {% if vdev.type == 'log' and vdev.devices | length > 1 %}mirror {% endif %}{{ vdev.devices | join(' ') }}
+ {% endfor %}
+ when: zpool_exists.rc == 1