Infra: Ansible Ubuntu Focal
[csit.git] / resources / tools / testbed-setup / ansible / roles / kernel / tasks / ubuntu_focal.yaml
diff --git a/resources/tools/testbed-setup/ansible/roles/kernel/tasks/ubuntu_focal.yaml b/resources/tools/testbed-setup/ansible/roles/kernel/tasks/ubuntu_focal.yaml
new file mode 100644 (file)
index 0000000..9cbc4d4
--- /dev/null
@@ -0,0 +1,51 @@
+---
+# file: roles/kernel/tasks/ubuntu_focal.yaml
+
+- name: Get Available Kernel Versions
+  command: "apt-cache showpkg linux-headers-*"
+  changed_when: false
+  register: apt_kernel_list
+  tags:
+    - kernel-inst
+
+- name: Get installed packages with APT
+  command: "dpkg -l"
+  changed_when: false
+  register: apt_packages_list
+  tags:
+    - kernel-inst
+
+- name: Set target APT kernel version
+  set_fact:
+    _kernel: "{{ apt_kernel_list | deb_kernel(
+                 kernel_version, ansible_kernel) }}"
+  tags:
+    - kernel-inst
+
+- name: Ensure Packages Versions
+  apt:
+    name: "{{ apt_kernel_list | deb_kernel_pkg(
+              kernel_version, ansible_kernel, ansible_distribution,
+              ansible_architecture, item) }}"
+  loop: "{{ kernel_packages }}"
+  tags:
+    - kernel-inst
+
+- name: Ensure Any Other Kernel Packages Are Removed
+  apt:
+    name: "{{ apt_packages_list | deb_installed_kernel(
+              apt_kernel_list, kernel_version, ansible_kernel) }}"
+    state: absent
+    purge: true
+  notify:
+    - "Reboot Server"
+  tags:
+    - kernel-inst
+
+- name: Ensure Any Microcode Is Absent
+  apt:
+    name: "{{ absent_packages }}"
+    state: absent
+    purge: true
+  tags:
+    - kernel-inst
\ No newline at end of file