12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- {% if item.comment is defined and item.comment %}
- # {{ item.comment }}
- {% endif %}
- interface {{ item.interface }} {
- {% if item.options is defined and item.options %}
- {{ item.options | indent(2, true) }}
- {% endif %}
- {% if item.prefixes is defined and item.prefixes %}
- {% if hostvars[inventory_hostname]["ansible_" + item.interface] is defined and hostvars[inventory_hostname]["ansible_" + item.interface].ipv6 is defined and hostvars[inventory_hostname]["ansible_" + item.interface].ipv6 %}
- {% for element in item.prefixes %}
- {% if element.prefix is defined and element.prefix %}
- {% if element.comment is defined and element.comment %}
- # {{ element.comment }}
- {% endif %}
- prefix {{ element.prefix }} {
- {% if element.options is defined and element.options %}
- {{ element.options | indent(4, true) }}
- {% endif %}
- };
- {% endif %}
- {% endfor %}
- {% else %}
- # No IPv6 prefixes present on the interface, prefix advertisement disabled
- {% endif %}
- {% endif %}
- {% if item.routes is defined and item.routes %}
- {% for element in item.routes %}
- {% if element.route is defined and element.route %}
- {% if element.comment is defined and element.comment %}
- # {{ element.comment }}
- {% endif %}
- route {{ element.route }} {
- {% if element.options is defined and element.options %}
- {{ element.options | indent(4, true) }}
- {% endif %}
- };
- {% endif %}
- {% endfor %}
- {% endif %}
- {% if item.nameservers is defined and item.nameservers %}
- {% for element in item.nameservers %}
- {% if element.comment is defined and element.comment %}
- # {{ element.comment }}
- {% endif %}
- RDNSS {{ element.rdnss | join(" ") }} {
- {% if element.options is defined and element.options %}
- {{ element.options | indent(4, true) }}
- {% endif %}
- };
- {% endfor %}
- {% else %}
- {% if hostvars[inventory_hostname]["ansible_" + item.interface] is defined and hostvars[inventory_hostname]["ansible_" + item.interface].ipv6 is defined and hostvars[inventory_hostname]["ansible_" + item.interface].ipv6 %}
- {% set radvd_tpl_nameservers = hostvars[inventory_hostname]["ansible_" + item.interface].ipv6 | map(attribute='address') | list %}
- # Advertise router on {{ item.interface }} interface as local DNS server
- RDNSS {{ radvd_tpl_nameservers | join(" ") }} {
- };
- {% endif %}
- {% endif %}
- {% if item.domains is defined and item.domains %}
- {% for element in item.domains %}
- {% if (element.dnssl is defined and element.dnssl[0] not in [ 'False', 'false' ] and element.dnssl) %}
- {% if element.comment is defined and element.comment %}
- # {{ element.comment }}
- {% endif %}
- DNSSL {{ element.dnssl | join(" ") }} {
- {% if element.options is defined and element.options %}
- {{ element.options | indent(4, true) }}
- {% endif %}
- };
- {% endif %}
- {% endfor %}
- {% endif %}
- {% if item.clients is defined and item.clients %}
- clients {
- {% for element in item.clients %}
- {% if element is defined and element %}
- {{ element }};
- {% endif %}
- {% endfor %}
- };
- {% endif %}
- };
|