--- - name: Update CentOS Stream 9 Halo Servers hosts: centos_stream become: yes tasks: - name: Check for logged in users shell: who | wc -l register: logged_users changed_when: false - name: Display logged in user count debug: msg: "{{ logged_users.stdout }} user(s) currently logged in" - name: Skip updates if users are logged in meta: end_play when: logged_users.stdout | int > 1 - name: Ensure all packages are up to date dnf: name: '*' state: latest update_cache: yes register: dnf_result - name: Display package update statistics debug: msg: - "Host: {{ inventory_hostname }}" - "Packages installed: {{ dnf_result.results | select('match', '^Installed:.*') | list | length }}" - "Packages updated: {{ dnf_result.results | select('match', '^Updated:.*') | list | length }}" - "Packages removed: {{ dnf_result.results | select('match', '^Removed:.*') | list | length }}" when: dnf_result.changed and dnf_result.results is defined - name: No updates needed debug: msg: "Host: {{ inventory_hostname }} - System is already up to date" when: not dnf_result.changed - name: Rebooting the servers reboot: when: dnf_result.changed