From d0c37df615274cdbe44d634615e198253407128f Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Thu, 10 Oct 2019 21:47:17 +0200 Subject: zfs: refactor zpool config --- inventory/host_vars/sk-2019.yml | 7 ++++--- inventory/host_vars/sk-2019vm.yml | 7 ++++--- inventory/host_vars/sk-cloudia.yml | 7 ++++--- roles/zfs/base/defaults/main.yml | 13 ++++++++++--- roles/zfs/base/tasks/main.yml | 9 ++++++--- 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 }}" -- cgit v1.2.3