--- - name: Make sure directory exists file: dest: '/etc/systemd/network' state: directory owner: root group: root mode: 0755 - name: Get current network config shell: 'ls -1 /etc/systemd/network/' check_mode: no register: network_files_all - name: Configure network copy: src: '{{ item }}' dest: '/etc/systemd/network/' owner: root group: root mode: 0644 with_fileglob: - 'networkd/network/*' register: network_files notify: - restart networkd - name: Clean up old files file: path: '/etc/systemd/network/{{ item }}' state: absent with_items: '{{ network_files_all.stdout_lines }}' when: "item not in network_files.results|map(attribute='path')|map('basename')" notify: - restart networkd - name: Create systemd-networkd-wait-online drop-in directory file: dest: '/etc/systemd/system/systemd-networkd-wait-online.service.d' state: directory owner: root group: root mode: 0755 - name: Don't wait for lan and mgt interfaces to come online copy: src: networkd/no-lan-mgt.conf dest: '/etc/systemd/system/systemd-networkd-wait-online.service.d/no-lan-mgt.conf' owner: root group: root mode: 0644 - name: Enable systemd-networkd systemd: name: systemd-networkd.service enabled: yes masked: no state: started when: not chroot - name: '- when in chroot' command: systemctl enable systemd-networkd.service args: creates: '/etc/systemd/system/multi-user.target.wants/systemd-networkd.service' when: chroot # vim: set ts=2 sw=2 et: