From aa5aec673da4525a879b1223a2b1fe4532126251 Mon Sep 17 00:00:00 2001 From: Christoph Date: Fri, 12 Dec 2025 16:01:06 +0100 Subject: [PATCH] correct outdated code. --- roles/network_interfaces/tasks/interfaces.yml | 42 +++++++++++++++---- .../etc/network/interfaces.d/device.j2 | 2 +- 2 files changed, 36 insertions(+), 8 deletions(-) diff --git a/roles/network_interfaces/tasks/interfaces.yml b/roles/network_interfaces/tasks/interfaces.yml index cea3039..770c842 100644 --- a/roles/network_interfaces/tasks/interfaces.yml +++ b/roles/network_interfaces/tasks/interfaces.yml @@ -21,15 +21,43 @@ tags: - network-interfaces +- name: (interfaces.yml) Build interface map by device + ansible.builtin.set_fact: + iface_map: "{{ iface_map | default({}) | combine({ item.device: (iface_map[item.device] | default([])) + [item] }) }}" + loop: "{{ network_interfaces | default([]) }}" + loop_control: + label: "{{ item.device }}" + tags: [network-interfaces] + - name: (interfaces.yml) Ensure imported device files at interfaces.d are latest - template: - src: "etc/network/interfaces.d/device.j2" - dest: "{{ network_interface_path }}/device-{{ item.0 }}" - with_items: - - "{{network_interfaces | default([]) | groupby('device') }}" + ansible.builtin.template: + src: etc/network/interfaces.d/device.j2 + dest: "{{ network_interface_path }}/device-{{ grp.key }}" + loop: "{{ iface_map | dict2items }}" + loop_control: + loop_var: grp register: network_configuration_result - tags: - - network-interfaces + tags: [network-interfaces] + +#- name: Ensure imported device files at interfaces.d are latest +# ansible.builtin.template: +# src: etc/network/interfaces.d/device.j2 +# dest: "{{ network_interface_path }}/device-{{ grp.0 }}" +# loop: "{{ (network_interfaces | default([]) | groupby('device')) | list }}" +# loop_control: +# loop_var: grp +# register: network_configuration_result +# tags: [network-interfaces] + +#- name: (interfaces.yml) Ensure imported device files at interfaces.d are latest +# template: +# src: "etc/network/interfaces.d/device.j2" +# dest: "{{ network_interface_path }}/device-{{ item.0 }}" +# with_items: +# - "{{network_interfaces | default([]) | groupby('device') }}" +# register: network_configuration_result +# tags: +# - network-interfaces # --- # Remove device files not configured here diff --git a/roles/network_interfaces/templates/etc/network/interfaces.d/device.j2 b/roles/network_interfaces/templates/etc/network/interfaces.d/device.j2 index b9d866b..6c02e01 100644 --- a/roles/network_interfaces/templates/etc/network/interfaces.d/device.j2 +++ b/roles/network_interfaces/templates/etc/network/interfaces.d/device.j2 @@ -1,7 +1,7 @@ {{ ansible_managed | comment }} {# {% for config in network_interfaces %} #} -{% for config in item.1 %} +{% for config in grp.value %} {% if config.headline is defined and config.headline %} #-----------------------------