--- - name: configure arc size when: zfs_arc_size is defined copy: content: | options zfs zfs_arc_min={{ zfs_arc_size.min }} options zfs zfs_arc_max={{ zfs_arc_size.max }} dest: /etc/modprobe.d/zfs.conf ## TODO: @debian: make sure contrib repo is added - name: install zfs packages apt: name: zfs-dkms state: present - name: check if module is available for the currently running kernel command: modprobe --dry-run zfs check_mode: no register: zfs_module_available failed_when: false changed_when: false - name: rebuild zfs module when: zfs_module_available.rc != 0 command: dpkg-reconfigure zfs-dkms - name: load zfs kernel module modprobe: name: zfs state: present - name: install zfs file system utilities apt: name: zfsutils-linux state: present - 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: "{{ item.value.mountpoint }}"