53 lines
1.4 KiB
YAML
53 lines
1.4 KiB
YAML
- name: Check Host Availability
|
|
hosts: all
|
|
gather_facts: false
|
|
ignore_unreachable: true
|
|
|
|
tasks:
|
|
- name: Ping hosts to check availability
|
|
ansible.builtin.ping:
|
|
register: ping_result
|
|
ignore_errors: true
|
|
ignore_unreachable: true
|
|
|
|
- name: Add reachable hosts to group
|
|
ansible.builtin.group_by:
|
|
key: reachable_hosts
|
|
when: ping_result is succeeded
|
|
|
|
- name: Report offline hosts
|
|
ansible.builtin.debug:
|
|
msg: "Host {{ inventory_hostname }} is OFFLINE and will be skipped"
|
|
when: ping_result is not succeeded
|
|
delegate_to: localhost
|
|
|
|
- name: Update and Upgrade Packages
|
|
hosts: reachable_hosts
|
|
become: true
|
|
gather_facts: true
|
|
|
|
tasks:
|
|
- name: Update & Upgrade - Debian-based systems
|
|
ansible.builtin.apt:
|
|
update_cache: true
|
|
cache_valid_time: 3600
|
|
upgrade: dist
|
|
when: ansible_os_family == "Debian"
|
|
|
|
- name: Update & Upgrade - Modern RHEL-based systems (DNF)
|
|
ansible.builtin.dnf:
|
|
name: "*"
|
|
state: latest
|
|
update_cache: true
|
|
when:
|
|
- ansible_os_family == "RedHat"
|
|
- ansible_pkg_mgr == "dnf"
|
|
|
|
- name: Update & Upgrade - Legacy RHEL-based systems (YUM)
|
|
ansible.builtin.yum:
|
|
name: "*"
|
|
state: latest
|
|
update_cache: true
|
|
when:
|
|
- ansible_os_family == "RedHat"
|
|
- ansible_pkg_mgr == "yum" |