--- - name: Check if debian.sources file exists ansible.builtin.stat: path: /etc/apt/sources.list.d/debian.sources register: debian_sources_stat - name: Replace Components line to include non-free and non-free-firmware ansible.builtin.replace: path: /etc/apt/sources.list.d/debian.sources regexp: "^Components:.*$" replace: "Components: main non-free non-free-firmware" when: debian_sources_stat.stat.exists become: true - name: Setup VM Packages ansible.builtin.apt: name: "{{ item }}" state: present update_cache: true loop: "{{ docker_host_package_common_dependencies }}" become: true - name: Gather installed package facts ansible.builtin.package_facts: manager: auto - name: Filter for specific cloud kernel packages ansible.builtin.set_fact: cloud_kernel_packages: >- {{ ansible_facts.packages.keys() | select('search', 'linux-image') | select('search', 'cloud') | list }} - name: Use the list to remove the found packages ansible.builtin.apt: name: "{{ cloud_kernel_packages }}" state: absent autoremove: true when: cloud_kernel_packages | length > 0 become: true - name: Restart host ansible.builtin.reboot: connect_timeout: 5 reboot_timeout: 600 test_command: whoami become: true