42 lines
1.3 KiB
YAML
42 lines
1.3 KiB
YAML
---
|
|
- 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 |