You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible/roles/networking/templates/debian_interfaces.j2

34 lines
1.0 KiB
Django/Jinja

{{ ansible_managed | comment }}
# The loopback network interface
auto lo
iface lo inet loopback
{% for item in lookup('dict', interfaces) %}
{% if item.value.type not in ['wireguard', ] %}
auto {{ item.key }}
{% if item.value.type == 'dhcp' %}
iface {{ item.key }} inet dhcp
{% elif item.value.type == 'static' %}
iface {{ item.key }} inet static
{% endif %}
{% if 'routes' in item.value %}{# route up #}
{% for route in item.value.routes %}
post-up ip route add {{ route.subnet }}/{{ route.netmask }} via {{ route.gateway }}
{% endfor %}
{% endif %}{# end route up #}
{% if 'ipv4' in item.value %}
address {{ item.value.ipv4 }}/{{ item.value.netmaskv4 }}
{% endif %}
{% if 'gateway' in item.value %}
gateway {{ item.value.gateway }}
{% endif %}
{% if 'routes' in item.value %}{# route dw #}
{% for route in item.value.routes %}
post-down ip route del {{ route.subnet }}/{{ route.netmask }} via {{ route.gateway }}
{% endfor %}
{% endif %}{# end route dw #}
{% endif %}{# end (not in [wireguard, ]) #}
{% endfor %}