--- - name: Cloud Providers System Update Playbook hosts: huawei,google,ditigalocean,aws become: yes gather_facts: yes tasks: # Ubuntu/Debian 系统更新 (apt) - name: Update apt cache (Ubuntu/Debian) apt: update_cache: yes cache_valid_time: 3600 when: ansible_os_family == "Debian" - name: Upgrade all packages (Ubuntu/Debian) apt: upgrade: yes autoremove: yes autoclean: yes when: ansible_os_family == "Debian" register: apt_upgrade_result # AWS Linux 系统更新 (dnf) - name: Update dnf cache (AWS Linux/RHEL) dnf: update_cache: yes when: ansible_os_family == "RedHat" - name: Upgrade all packages (AWS Linux/RHEL) dnf: name: "*" state: latest skip_broken: yes when: ansible_os_family == "RedHat" register: dnf_upgrade_result # 显示升级结果 - name: Display apt upgrade results debug: msg: "APT system upgrade completed. {{ apt_upgrade_result.changed }} packages were updated." when: ansible_os_family == "Debian" and apt_upgrade_result is defined - name: Display dnf upgrade results debug: msg: "DNF system upgrade completed. {{ dnf_upgrade_result.changed }} packages were updated." when: ansible_os_family == "RedHat" and dnf_upgrade_result is defined # 检查是否需要重启 (Ubuntu/Debian) - name: Check if reboot is required (Ubuntu/Debian) stat: path: /var/run/reboot-required register: debian_reboot_required when: ansible_os_family == "Debian" # 检查是否需要重启 (AWS Linux/RHEL) - name: Check if reboot is required (AWS Linux/RHEL) command: needs-restarting -r register: rhel_reboot_required failed_when: false changed_when: false when: ansible_os_family == "RedHat" # 通知重启信息 - name: Notify if reboot is required (Ubuntu/Debian) debug: msg: "System reboot is required to complete the update." when: ansible_os_family == "Debian" and debian_reboot_required.stat.exists is defined and debian_reboot_required.stat.exists - name: Notify if reboot is required (AWS Linux/RHEL) debug: msg: "System reboot is required to complete the update." when: ansible_os_family == "RedHat" and rhel_reboot_required.rc == 1