|
8 | 8 | register: _ofed_loaded_kernel |
9 | 9 | changed_when: false |
10 | 10 |
|
| 11 | +- name: Parse installed kernels |
| 12 | + set_fact: |
| 13 | + _ofed_dnf_kernels_sorted: >- |
| 14 | + {{ _ofed_dnf_kernels.stdout_lines[1:] |
| 15 | + | map('split') |
| 16 | + | map(attribute=1) |
| 17 | + | community.general.version_sort }} |
| 18 | + # dnf line format e.g. "kernel.x86_64 4.18.0-513.18.1.el8_9 @baseos " |
| 19 | + |
11 | 20 | - name: Check current kernel is newest installed |
12 | 21 | assert: |
13 | | - that: _ofed_kernel_current == _ofed_dnf_kernels_newest |
14 | | - fail_msg: "Kernel {{ _ofed_loaded_kernel.stdout }} is loaded but newer {{ _ofed_dnf_kernels_newest }} is installed: consider rebooting?" |
15 | | - vars: |
16 | | - _ofed_kernel_current: >- |
17 | | - {{ _ofed_loaded_kernel.stdout | regex_replace('\.(?:.(?!\.))+$', '') | regex_replace('\.(?:.(?!\.))+$', '') }} |
18 | | - _ofed_dnf_kernels_newest: >- |
19 | | - {{ _ofed_dnf_kernels.stdout_lines[1:] | map('split') | map(attribute=1) | map('regex_replace', '\.(?:.(?!\.))+$', '') | community.general.version_sort | last }} |
20 | | - # dnf line format e.g. "kernel.x86_64 4.18.0-513.18.1.el8_9 @baseos " |
| 22 | + that: |
| 23 | + - _ofed_loaded_kernel.stdout in _ofed_dnf_kernels_sorted |
| 24 | + - _ofed_loaded_kernel.stdout == _ofed_dnf_kernels_sorted[-1] |
| 25 | + fail_msg: > |
| 26 | + Loaded kernel ({{ _ofed_loaded_kernel.stdout }}) is not the newest installed kernel. |
| 27 | + Newest installed kernel: {{ _ofed_dnf_kernels_sorted[-1] }}. |
| 28 | + Consider rebooting to use the latest kernel. |
| 29 | +
|
| 30 | +- name: Debug kernel versions |
| 31 | + debug: |
| 32 | + msg: |
| 33 | + - "Loaded Kernel: {{ _ofed_loaded_kernel.stdout }}" |
| 34 | + - "Installed Kernels: {{ _ofed_dnf_kernels.stdout_lines[1:] | map('split') | map(attribute=1) }}" |
| 35 | + - "Newest Installed Kernel: {{ _ofed_dnf_kernels_sorted[-1] }}" |
| 36 | + |
21 | 37 |
|
22 | 38 | - name: Install matching kernel-devel package |
23 | 39 | dnf: |
|
0 commit comments