From f41199feae553f0d2269f507382a82470277c8ae Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Mon, 9 Sep 2019 21:53:08 +0200 Subject: added zfs role --- dan/sk-2019vm.yml | 1 + dan/sk-cloudia.yml | 1 + roles/prepare-dkms/tasks/default.yml | 10 +++++++++- roles/prepare-dkms/tasks/main.yml | 6 ++++-- roles/prepare-dkms/vars/Debian.yml | 2 ++ roles/prepare-dkms/vars/Ubuntu.yml | 2 ++ roles/zfs/meta/main.yml | 3 +++ roles/zfs/tasks/main.yml | 26 ++++++++++++++++++++++++++ 8 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 roles/prepare-dkms/vars/Debian.yml create mode 100644 roles/prepare-dkms/vars/Ubuntu.yml create mode 100644 roles/zfs/meta/main.yml create mode 100644 roles/zfs/tasks/main.yml diff --git a/dan/sk-2019vm.yml b/dan/sk-2019vm.yml index 10a633b0..6c2b1448 100644 --- a/dan/sk-2019vm.yml +++ b/dan/sk-2019vm.yml @@ -5,3 +5,4 @@ - role: base - role: sshd - role: zsh + - role: zfs diff --git a/dan/sk-cloudia.yml b/dan/sk-cloudia.yml index 6d22afed..dca8b9f8 100644 --- a/dan/sk-cloudia.yml +++ b/dan/sk-cloudia.yml @@ -5,3 +5,4 @@ - role: base - role: sshd - role: zsh + - role: zfs diff --git a/roles/prepare-dkms/tasks/default.yml b/roles/prepare-dkms/tasks/default.yml index 638b81f0..84ab3624 100644 --- a/roles/prepare-dkms/tasks/default.yml +++ b/roles/prepare-dkms/tasks/default.yml @@ -1,7 +1,15 @@ --- +- name: load distrubtion specific variables + include_vars: "{{ item }}" + with_first_found: + - files: + - "{{ ansible_distribution_release }}.yml" + - "{{ ansible_distribution }}.yml" + skip: true + - name: install kernel headers and dkms apt: name: - - linux-headers-amd64 # TODO: fix this so it works for ubuntu(hwe) and debian + - "{{ dkms_linux_header_pkgname }}" - dkms state: present diff --git a/roles/prepare-dkms/tasks/main.yml b/roles/prepare-dkms/tasks/main.yml index 94f47c31..23533345 100644 --- a/roles/prepare-dkms/tasks/main.yml +++ b/roles/prepare-dkms/tasks/main.yml @@ -5,8 +5,10 @@ - name: prepare dkms on for raspberry-pi include_tasks: raspberrypi.yml - when: "ansible_lsb.id == 'Raspbian'" + when: "('id' in ansible_lsb and ansible_lsb.id == 'Raspbian')" - name: prepare dkms on normal debian boxes include_tasks: default.yml - when: "'scaleway-kernel' not in group_names and ansible_lsb.id != 'Raspbian'" + when: + - "'scaleway-kernel' not in group_names" + - "('id' not in ansible_lsb or ansible_lsb.id != 'Raspbian')" diff --git a/roles/prepare-dkms/vars/Debian.yml b/roles/prepare-dkms/vars/Debian.yml new file mode 100644 index 00000000..108306c6 --- /dev/null +++ b/roles/prepare-dkms/vars/Debian.yml @@ -0,0 +1,2 @@ +--- +dkms_linux_header_pkgname: linux-image-amd64 diff --git a/roles/prepare-dkms/vars/Ubuntu.yml b/roles/prepare-dkms/vars/Ubuntu.yml new file mode 100644 index 00000000..a848f713 --- /dev/null +++ b/roles/prepare-dkms/vars/Ubuntu.yml @@ -0,0 +1,2 @@ +--- +dkms_linux_header_pkgname: linux-headers-generic diff --git a/roles/zfs/meta/main.yml b/roles/zfs/meta/main.yml new file mode 100644 index 00000000..300d0ccf --- /dev/null +++ b/roles/zfs/meta/main.yml @@ -0,0 +1,3 @@ +--- +dependencies: +- role: prepare-dkms diff --git a/roles/zfs/tasks/main.yml b/roles/zfs/tasks/main.yml new file mode 100644 index 00000000..478a25dd --- /dev/null +++ b/roles/zfs/tasks/main.yml @@ -0,0 +1,26 @@ +--- +## TODO: @debian: make sure contrib repo is added + +- name: install zfs packages + apt: + name: + - zfs-dkms + - zfsutils-linux + 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: check again if module is available for the currently running kernel + when: zfs_module_available.rc != 0 + command: modprobe --dry-run zfs + check_mode: no + changed_when: false -- cgit v1.2.3