summaryrefslogtreecommitdiff
path: root/roles/zfs/base/tasks/main.yml
blob: 3f1e8416b3c7547941327e8d7cfa949804235d62 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
---
- 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 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 }}"
  args:
    creates: "{{ zfs_zpool_mountpoint }}"