From 7fe682aa609bce876ab1c3997a704ddc42f8e4c7 Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Tue, 3 Oct 2023 13:42:11 -0400 Subject: [PATCH] Handle freshness for all 3 types separately If microcode was missing, checking the other two would be UNKN and thus not restart. But, if microcode *is* present, we want to restart for either of the other two as well. So separate into 3 distinct checks and restart if any one is changed. --- oneshot/update-pvc-cluster.yml | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/oneshot/update-pvc-cluster.yml b/oneshot/update-pvc-cluster.yml index 0b02255..18de6c8 100644 --- a/oneshot/update-pvc-cluster.yml +++ b/oneshot/update-pvc-cluster.yml @@ -59,10 +59,22 @@ gather_facts: yes serial: 1 tasks: - - name: check freshness - command: /usr/sbin/needrestart -p - register: freshness - changed_when: freshness.rc >= 1 and freshness.rc < 3 + - name: check freshness (kernel) + command: /usr/sbin/needrestart -p -k + register: freshness_kernel + changed_when: freshness_kernel.rc >= 1 and freshness_kernel.rc < 3 + failed_when: false + + - name: check freshness (libraries) + command: /usr/sbin/needrestart -p -l + register: freshness_libraries + changed_when: freshness_libraries.rc >= 1 and freshness_libraries.rc < 3 + failed_when: false + + - name: check freshness (microcode) + command: /usr/sbin/needrestart -p -w + register: freshness_microcode + changed_when: freshness_microcode.rc >= 1 and freshness_microcode.rc < 3 failed_when: false - name: restart system cleanly @@ -205,7 +217,7 @@ - name: reset any systemd failures command: systemctl reset-failed - when: freshness.changed + when: freshness_kernel.changed or freshness_libraries.changed or freshness_microcode.changed - name: wait 30 seconds for system to stabilize pause: