- 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 - Ubuntu hosts: ubuntu:&reachable_hosts become: true gather_facts: false tasks: - name: Update & Upgrade via apt ansible.builtin.apt: update_cache: true cache_valid_time: 3600 upgrade: dist - name: Update and Upgrade - Rocky Linux hosts: rocky:&reachable_hosts become: true gather_facts: false tasks: - name: Update & Upgrade via dnf ansible.builtin.dnf: name: "*" state: latest update_cache: true