---
# systemd-networkd

- name: manage systemd-networkd package
  package:
    name: "{{ _network_systemd_networkd_package_name }}"
    state: "{{ _network_systemd_networkd_enabled | ternary('present', 'absent') }}"
  when: _systemd_networkd_package_name is defined

- name: manage systemd-networkd service
  service:
    name: "{{ _network_systemd_networkd_service_name }}"
    state: "{{ _network_systemd_networkd_enabled | ternary('started', 'stopped') }}"
    enabled: "{{ _network_systemd_networkd_enabled }}"

- name: configure systemd-networkd
  template:
    src: systemd-network.j2
    dest: "/etc/systemd/network/05-{{ item.name }}.network"
  notify: restart systemd-networkd
  with_items: "{{ network_interfaces }}"
  when:
    - network_interfaces is defined
    - _network_systemd_networkd_enabled | bool

- name: configure systemd-networkd default interface
  template:
    src: systemd-network.j2
    dest: "/etc/systemd/network/05-{{ ansible_default_ipv4.interface }}.network"
  notify: restart systemd-networkd
  when:
    - network_interfaces is not defined
    - _network_systemd_networkd_enabled | bool