diff --git a/networkd/tasks/vlan.yml b/networkd/tasks/vlan.yml index b8f6d15a4bd2a8c3b61ef903cd81ef2a82c13968..093acbf628430961894406720e57184ff7582cb2 100644 --- a/networkd/tasks/vlan.yml +++ b/networkd/tasks/vlan.yml @@ -34,7 +34,7 @@ group: root mode: '0644' with_items: "{{ vlan.vlans }}" - when: item.bridge + when: item.bridge | default(False) notify: - restart networkd - name: ensure bridge networks are configured @@ -45,6 +45,6 @@ group: root mode: '0644' with_items: "{{ vlan.vlans }}" - when: item.bridge + when: item.bridge | default(False) notify: - restart networkd diff --git a/networkd/templates/20-wired-routed.network.j2 b/networkd/templates/20-wired-routed.network.j2 index 6161bd248d2bec5b0f632da75947eced71a9dc96..16446cfe732035c83f0ac06f04fd15f8b210936a 100644 --- a/networkd/templates/20-wired-routed.network.j2 +++ b/networkd/templates/20-wired-routed.network.j2 @@ -22,6 +22,9 @@ IPForward=yes {% for key, value in (network.settings|default({})).items() %} {{ key }}={{ value }} {% endfor %} +{% for vlan in network.vlans|default([]) %} +VLAN=vl-{{ vlan.name }} +{% endfor %} {% for route in network.routes|default([{'gateway': network.gateway}]) %} [Route] diff --git a/networkd/templates/20-wired-vlan.network.j2 b/networkd/templates/20-wired-vlan.network.j2 index 4b7052153a9bae40c7c8ddcdfa1065e05c218e6a..8d0f6719ac7e34888dd27e8f4549e81510d43a1a 100644 --- a/networkd/templates/20-wired-vlan.network.j2 +++ b/networkd/templates/20-wired-vlan.network.j2 @@ -1,3 +1,7 @@ +{% if item.1.addresses | default(False) %} +{% set network = item.1 %} +{% include "20-wired-routed.network.j2" %} +{% else %} [Match] Name={{ item.1.interface }} @@ -9,3 +13,4 @@ BindCarrier={{ item.1.interface }} {% if networkd_ipfwd %} IPForward=yes {% endif %} +{% endif %} diff --git a/networkd/templates/vlan.network.j2 b/networkd/templates/vlan.network.j2 index 6b7c90f0c527a78b4175a1af7f280a205aae62cd..2875094b4167abdfadcf686d891a9febf2458f5d 100644 --- a/networkd/templates/vlan.network.j2 +++ b/networkd/templates/vlan.network.j2 @@ -1,4 +1,4 @@ -{% if item.bridge %} +{% if item.bridge | default(False) %} [Match] Name=vl-{{ item.name }} @@ -10,7 +10,9 @@ Bridge=vmbr-{{ item.name }} 'addresses': item.addresses|default([item.address] if item.address is defined else []), 'nameservers': item.nameservers|default([]), 'routes': item.routes|default([{'gateway': item.gateway}] if item.gateway is defined else []), - 'link_local_addressing': item.link_local_addressing|default(None) + 'link_local_addressing': item.link_local_addressing|default(None), + 'settings': item.settings|default({}), + 'custom': item.custom|default([]) } %} {% include "20-wired-routed.network.j2" %} {% endif %}