--- # This has been adapted from code in OpenStack Ansible's systemd_networkd role. # https://github.com/openstack/ansible-role-systemd_networkd/blob/master/tasks/main.yml - name: Find unexpected systemd-networkd configuration files become: true ansible.builtin.find: paths: /etc/systemd/network patterns: "{{ systemd_networkd_cleanup_patterns }}" use_regex: "{{ systemd_networkd_cleanup_patterns_use_regex | bool }}" register: networkd_files - name: Remove unexpected systemd-networkd configuration files become: true vars: expected_files: - "{{ systemd_networkd_link.keys() | map('regex_replace', '^(.*)$', '\\1.link') | list }}" - "{{ systemd_networkd_netdev.keys() | map('regex_replace', '^(.*)$', '\\1.netdev') | list }}" - "{{ systemd_networkd_network.keys() | map('regex_replace', '^(.*)$', '\\1.network') | list }}" ansible.builtin.file: path: /etc/systemd/network/{{ item }} state: absent loop: "{{ networkd_files.files | map(attribute='path') | map('basename') | difference(expected_files | flatten) | list }}" notify: - Restart systemd-networkd