diff --git a/networkd/defaults/main.yml b/networkd/defaults/main.yml index 680ab8521d17a44350fb0528fc97921f3b3796e9..4db208748fb8a8a055c19731f25a36777749158c 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 dca3fe485be303cd85f33ed13300b7c604cb56bc..e8e06d914959bb2d617bfbf4d688b5a50c173b6f 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 0000000000000000000000000000000000000000..52124d0c9efbdf99908bb9c3ca2b760ff4d2438c --- /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 %}