---
- hosts: all
  gather_facts: yes
  become: yes

  tasks:
    - name: Perform a distro upgrade
      ansible.builtin.apt:
        upgrade: dist
        update_cache: yes

    - name: Check if a reboot is required
      ansible.builtin.stat:
        path: /var/run/reboot-required
        get_checksum: no
      register: reboot_required_file

    - name: Reboot the server (if necessary)
      ansible.builtin.reboot:
      when: reboot_required_file.stat.exists == true

    - name: Remove dependencies that are no longer needed
      ansible.builtin.apt:
        autoremove: yes