diff --git a/tasks/volume.yml b/tasks/volume.yml
index 72f026268d21a87fba7a057a622715ef484ad869..ac9109ec9461ae65d4a4b34ba14b0d19911661d1 100644
--- a/tasks/volume.yml
+++ b/tasks/volume.yml
@@ -1,5 +1,15 @@
 - name: create encrypted datasets
-  shell: "/sbin/zfs create -o encryption={{ item.value.options.encryption }} -o keyformat={{ item.value.options.keyformat }} -o keylocation={{ item.value.options.keylocation|d('') }} {{ item.key }}"
+  command:
+    argv:
+      - /sbin/zfs
+      - create
+      - -o
+      - "encryption={{ item.value.options.encryption }}"
+      - -o
+      - "keyformat={{ item.value.options.keyformat }}"
+      - -o
+      - "keylocation={{ item.value.options.keylocation|d('') }}"
+      - "{{ item.key }}"
   register: result
   changed_when: result.rc == 0
   failed_when: