summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--inventory/host_vars/sk-2019.yml7
-rw-r--r--inventory/host_vars/sk-2019vm.yml7
-rw-r--r--inventory/host_vars/sk-cloudia.yml7
-rw-r--r--roles/zfs/base/defaults/main.yml13
-rw-r--r--roles/zfs/base/tasks/main.yml9
5 files changed, 28 insertions, 15 deletions
diff --git a/inventory/host_vars/sk-2019.yml b/inventory/host_vars/sk-2019.yml
index 80491c40..f59bdc64 100644
--- a/inventory/host_vars/sk-2019.yml
+++ b/inventory/host_vars/sk-2019.yml
@@ -25,9 +25,10 @@ cryptdisk_volumes:
device: /dev/disk/by-id/nvme-eui.0025388791050fdc-part3
-zfs_zpool_name: storage
-zfs_zpool_mountpoint: /srv/storage
-zfs_zpool_create_vdevs: mirror /dev/mapper/crypto-nvme0 /dev/mapper/crypto-nvme1
+zfs_zpools:
+ storage:
+ mountpoint: /srv/storage
+ create_vdevs: mirror /dev/mapper/crypto-nvme0 /dev/mapper/crypto-nvme1
# zfs_arc_size:
# min: "{{ 2 * 1024 * 1024 * 1024 }}"
diff --git a/inventory/host_vars/sk-2019vm.yml b/inventory/host_vars/sk-2019vm.yml
index 0b321061..766be5fc 100644
--- a/inventory/host_vars/sk-2019vm.yml
+++ b/inventory/host_vars/sk-2019vm.yml
@@ -39,9 +39,10 @@ cryptdisk_volumes:
device: /dev/disk/by-id/nvme-eui.0025388291b201cb-part3
-zfs_zpool_name: storage
-zfs_zpool_mountpoint: /srv/storage
-zfs_zpool_create_vdevs: mirror /dev/mapper/crypto-nvme0 /dev/mapper/crypto-nvme1
+zfs_zpools:
+ storage:
+ mountpoint: /srv/storage
+ create_vdevs: mirror /dev/mapper/crypto-nvme0 /dev/mapper/crypto-nvme1
zfs_arc_size:
min: "{{ 2 * 1024 * 1024 * 1024 }}"
diff --git a/inventory/host_vars/sk-cloudia.yml b/inventory/host_vars/sk-cloudia.yml
index 1f4c542b..0869c2c8 100644
--- a/inventory/host_vars/sk-cloudia.yml
+++ b/inventory/host_vars/sk-cloudia.yml
@@ -9,9 +9,10 @@ install:
network: {}
-zfs_zpool_name: storage
-zfs_zpool_mountpoint: /srv/storage
-zfs_zpool_create_vdevs: mirror nvme0n1p3 nvme1n1p3
+zfs_zpools:
+ storage:
+ mountpoint: /srv/storage
+ create_vdevs: mirror nvme0n1p3 nvme1n1p3
zfs_arc_size:
min: "{{ 2 * 1024 * 1024 * 1024 }}"
diff --git a/roles/zfs/base/defaults/main.yml b/roles/zfs/base/defaults/main.yml
index 06218f6b..f3dfbce9 100644
--- a/roles/zfs/base/defaults/main.yml
+++ b/roles/zfs/base/defaults/main.yml
@@ -2,9 +2,16 @@
zfs_zpool_properties:
ashift: 12
-# zfs_zpool_name: storage
-# zfs_zpool_mountpoint: /srv/storage
-# zfs_zpool_create_vdevs: mirror sda sdb mirror sdc sdd log mirror nvme0n1p3 nvme1n1p3 cache nvme0n1p4 nvme1n1p4
+# zfs_zpools:
+# storage:
+# mountpoint: /srv/storage
+# create_vdevs: mirror sda sdb mirror sdc sdd log mirror nvme0n1p3 nvme1n1p3 cache nvme0n1p4 nvme1n1p4
+# test:
+# mountpoint: /srv/storage
+# create_vdevs: raidz sda sdb sdc sdd
+# properties:
+# ashift: 12
+# prop: value
#zfs_arc_size:
# min: {{ 2 * 1024 * 1024 * 1024 }}
diff --git a/roles/zfs/base/tasks/main.yml b/roles/zfs/base/tasks/main.yml
index 3f1e8416..0a968235 100644
--- a/roles/zfs/base/tasks/main.yml
+++ b/roles/zfs/base/tasks/main.yml
@@ -35,7 +35,10 @@
name: zfsutils-linux
state: present
-- name: create zpool
- command: "zpool create -m {{ zfs_zpool_mountpoint }} {% for prop, value in zfs_zpool_properties.items() %}-o {{ prop }}={{ value }} {% endfor %}{{ zfs_zpool_name }} {{ zfs_zpool_create_vdevs }}"
+- name: create zpools
+ loop: "{{ zfs_zpools | dict2items }}"
+ loop_control:
+ label: "{{ item.key }}"
+ command: "zpool create -m {{ item.value.mountpoint }} {% for prop, value in (item.value.properties | default(zfs_zpool_properties)).items() %}-o {{ prop }}={{ value }} {% endfor %}{{ item.key }} {{ item.value.create_vdevs }}"
args:
- creates: "{{ zfs_zpool_mountpoint }}"
+ creates: "{{ item.value.mountpoint }}"