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..36d74ab44755bc1fb8efda14cb7701555d8684df 100644 --- a/networkd/tasks/main.yml +++ b/networkd/tasks/main.yml @@ -21,6 +21,17 @@ notify: - restart networkd +- name: ensure there are link files to set names for network interfaces + 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 %}