108 lines
3.1 KiB
YAML
108 lines
3.1 KiB
YAML
---
|
|
- 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 %} |