--- - name: APT update/upgrade zonder reboot hosts: all become: true gather_facts: true environment: DEBIAN_FRONTEND: noninteractive APT_LISTCHANGES_FRONTEND: none NEEDRESTART_MODE: a tasks: - name: Update APT package cache ansible.builtin.apt: update_cache: true cache_valid_time: 3600 lock_timeout: 300 register: apt_update_result - name: Upgrade installed packages ansible.builtin.apt: upgrade: dist dpkg_options: "force-confdef,force-confold" lock_timeout: 300 register: apt_upgrade_result - name: Reset SSH connection after package upgrade ansible.builtin.meta: reset_connection - name: Wait until host is reachable again ansible.builtin.wait_for_connection: connect_timeout: 10 sleep: 2 timeout: 120 - name: Remove unused packages ansible.builtin.apt: autoremove: true purge: false lock_timeout: 300 register: apt_autoremove_result - name: Clean obsolete package files ansible.builtin.apt: autoclean: true lock_timeout: 300 register: apt_autoclean_result - name: Check if reboot is required ansible.builtin.stat: path: /var/run/reboot-required register: reboot_required - name: Check reboot-required package list ansible.builtin.stat: path: /var/run/reboot-required.pkgs register: reboot_required_pkgs_file - name: Read reboot-required package list ansible.builtin.slurp: src: /var/run/reboot-required.pkgs register: reboot_required_pkgs when: reboot_required_pkgs_file.stat.exists - name: Save per-host report data ansible.builtin.set_fact: apt_report: host: "{{ inventory_hostname }}" changed: >- {{ apt_update_result.changed or apt_upgrade_result.changed or apt_autoremove_result.changed or apt_autoclean_result.changed }} reboot_required: "{{ reboot_required.stat.exists }}" reboot_required_packages: >- {{ (reboot_required_pkgs.content | b64decode).splitlines() if reboot_required_pkgs_file.stat.exists else [] }} - name: Toon eindrapport hosts: localhost connection: local gather_facts: false tasks: - name: Eindrapport APT update/upgrade ansible.builtin.debug: msg: | ============================== APT UPDATE/UPGRADE EINDRAPPORT ============================== {% for host in groups['all'] %} Host: {{ host }} Gewijzigd: {{ hostvars[host].apt_report.changed | default('onbekend') }} Reboot nodig: {{ hostvars[host].apt_report.reboot_required | default('onbekend') }} {% if hostvars[host].apt_report.reboot_required_packages | default([]) | length > 0 %} Reboot-triggerende packages: {% for pkg in hostvars[host].apt_report.reboot_required_packages %} - {{ pkg }} {% endfor %} {% endif %} {% endfor %}