From 776176944d1646fff8a6dbe3ab8247629f60b87a Mon Sep 17 00:00:00 2001 From: Hinrikus Wolf <hinrikus@fsmpi.rwth-aachen.de> Date: Tue, 22 Feb 2022 22:38:19 +0100 Subject: [PATCH] networkd: add support for link files --- networkd/defaults/main.yml | 8 ++++++++ networkd/tasks/main.yml | 11 +++++++++++ networkd/templates/interface.link.j2 | 9 +++++++++ 3 files changed, 28 insertions(+) create mode 100644 networkd/templates/interface.link.j2 diff --git a/networkd/defaults/main.yml b/networkd/defaults/main.yml index 680ab85..4db2087 100644 --- a/networkd/defaults/main.yml +++ b/networkd/defaults/main.yml @@ -1,5 +1,13 @@ --- +# interfaces: +# - identifier: name_for_the_link_file +# match: +# PermanentMACAddress: "01:23:45:67:89:ab" +# link: +# Name: veryimportantinterface +# + # networkd: # - type: 'dhcp' # - type: 'static' diff --git a/networkd/tasks/main.yml b/networkd/tasks/main.yml index dca3fe4..e8e06d9 100644 --- a/networkd/tasks/main.yml +++ b/networkd/tasks/main.yml @@ -21,6 +21,17 @@ notify: - restart networkd +- name: ensure there are link files if needed + template: + src: "interface.link.j2" + dest: "/etc/systemd/network/{{ item.0 }}-{{ item.1.identifier }}.link" + owner: root + group: root + mode: '0644' + with_indexed_items: "{{ interfaces|default([]) }}" + notify: + - restart networkd + - name: find network config files generated by the bootstrap process find: path: /etc/systemd/network diff --git a/networkd/templates/interface.link.j2 b/networkd/templates/interface.link.j2 new file mode 100644 index 0000000..52124d0 --- /dev/null +++ b/networkd/templates/interface.link.j2 @@ -0,0 +1,9 @@ +[Match] +{% for key, value in item.1["match"].items() %} +{{ key }}={{ value }} +{% endfor %} + +[Link] +{% for key, value in item.1["link"].items() %} +{{ key }}={{ value }} +{% endfor %} -- GitLab