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/interface.conf.j2

31 lines
967 B
Django/Jinja

{{ ansible_managed | comment }}
auto {{ item.key }}
{% if item.value.type == 'wireguard' %}
iface {{ item.key }} inet static
{% elif item.value.type == 'dhcp' %}
iface {{ item.key }} inet dhcp
{% elif item.value.type == 'static' %}
iface {{ item.key }} inet static
{% endif %}
{% if item.value.type == 'wireguard' %}
pre-up ip link add $IFACE type wireguard
pre-up wg setconf $IFACE /etc/wireguard/$IFACE.conf
{% endif %}
{% if 'routes' in item.value %}
{% for route in item.value.routes %}
post-up ip route add {{ route.subnet }}/{{ route.netmask }} via {{ route.gateway }}
{% endfor %}
{% endif %}
{% if 'ipv4' in item.value %}
address {{ item.value.ipv4 }}/{{ item.value.netmaskv4 }}
{% endif %}
{% if 'routes' in item.value %}
{% for route in item.value.routes %}
post-down ip route del {{ route.subnet }}/{{ route.netmask }} via {{ route.gateway }}
{% endfor %}
{% endif %}
{% if item.value.type == 'wireguard' %}
post-down ip link del $IFACE
{% endif %}