New ansible support (again)

This commit is contained in:
Miha Frangež 2026-02-23 16:54:47 +01:00 committed by jetomit
parent 3ff4ed5a77
commit 518c3bc7b8
12 changed files with 33 additions and 33 deletions

View file

@ -8,7 +8,7 @@
- name: Configure DHCP relays
template:
dest: '/etc/default/isc-dhcp-relay-{{ prefixes | selectattr("prefix", "==", item.0 | ipaddr("network/prefix")) | map(attribute="vrf.name") | first }}'
dest: '/etc/default/isc-dhcp-relay-{{ prefixes | selectattr("prefix", "==", item.0 | ansible.utils.ipaddr("network/prefix")) | map(attribute="vrf.name") | first }}'
src: isc-dhcp-relay.j2
loop: '{{ dhcp_servers }}'
loop_control:

View file

@ -4,8 +4,8 @@
| map(attribute='ip_addresses') | first
| selectattr('role') | selectattr('role.value', '==', 'loopback')
| map(attribute='address') %}
{% set ip = lo_address | ipv4 | first %}
{% set ip6 = lo_address | ipv6 | first -%}
{% set ip = lo_address | ansible.utils.ipv4 | first %}
{% set ip6 = lo_address | ansible.utils.ipv6 | first -%}
auto inside
iface inside
@ -38,4 +38,4 @@ iface peerlink.2
auto peerlink.4
iface peerlink.4
vrf outside
address {{ "169.254.1.0/24" | ipaddr(exit + 1) }}
address {{ "169.254.1.0/24" | ansible.utils.ipaddr(exit + 1) }}

View file

@ -14,7 +14,7 @@ vrf outside
{# Add default routes for IPv4 and IPv6. Both are over link-local addresses. #}
{% set uplink = interfaces | selectattr('name', '==', iface_uplink) | first %}
{% for address in uplink.ip_addresses %}
{% set gateway = address.address | ipmath(1) %}
{% set gateway = address.address | ansible.utils.ipmath(1) %}
{% if address.family.value == 4 %}
ip route 0.0.0.0/0 {{ gateway }} {{ iface_uplink }}
{% else %}
@ -26,7 +26,7 @@ vrf outside
# It is not documented anywhere and appears to be a Cumulus extension.
zebra nexthop proto only
router-id {{ lo_address | ipv4 | first | ipaddr('address') }}
router-id {{ lo_address | ansible.utils.ipv4 | first | ansible.utils.ipaddr('address') }}
# Default VRF.
router bgp {{ asn.asn }}
@ -241,13 +241,13 @@ ipv6 prefix-list {{ prefix.vrf.name }} permit {{ prefix.prefix }}
{% endfor %}
{% if wg_net is defined %}
ip prefix-list vpn permit {{ wg_net | ipaddr('subnet') }}
ip prefix-list vpn permit {{ wg_net | ansible.utils.ipaddr('subnet') }}
{% endif %}
{% if wg_net6 is defined %}
ipv6 prefix-list vpn permit {{ wg_net6 | ipaddr('subnet') }}
ipv6 prefix-list vpn permit {{ wg_net6 | ansible.utils.ipaddr('subnet') }}
{% endif %}
ip prefix-list nat permit {{ wg_ip | ipaddr('host') }}
ip prefix-list nat permit {{ wg_ip | ansible.utils.ipaddr('host') }}
{% for network in nat %}
ip prefix-list nat permit {{ network }}
{% endfor %}

View file

@ -1,7 +1,7 @@
{% set my_server = item.0 %}
{% set my_vlans = item.1 | map(attribute='vlan.vid') | sort %}
{% set my_prefix = prefixes | selectattr("prefix", "==", my_server | ipaddr("network/prefix")) | first -%}
{% set my_prefix = prefixes | selectattr("prefix", "==", my_server | ansible.utils.ipaddr("network/prefix")) | first -%}
SERVERS="{{ my_server | ipaddr('address') }}"
SERVERS="{{ my_server | ansible.utils.ipaddr('address') }}"
INTF_CMD="{{ my_vlans | map('regex_replace', '^', '-id bridge.') | join(' ') }} -U bridge.{{ my_prefix.vlan.vid }}"
OPTIONS=""

View file

@ -1,4 +1,4 @@
{% set dhcrelays = prefixes | selectattr('prefix', 'in', dhcp_servers | map('first') | ipaddr("network/prefix"))
{% set dhcrelays = prefixes | selectattr('prefix', 'in', dhcp_servers | map('first') | ansible.utils.ipaddr("network/prefix"))
| map(attribute="vrf.name") | map('regex_replace', '^', 'dhcrelay@') %}
{% set exits = [inventory_hostname, peer]|sort -%}
@ -13,11 +13,11 @@ vrrp_instance dhcrelay {
interface peerlink.4
{% for exit in exits %}
@{{ exit }} priority {{ loop.index }}
@{{ exit }} unicast_src_ip {{ "169.254.1.0/24" | ipaddr(loop.index + 1) | ipaddr('address') }}
@{{ exit }} unicast_src_ip {{ "169.254.1.0/24" | ansible.utils.ipaddr(loop.index + 1) | ansible.utils.ipaddr('address') }}
{% endfor %}
unicast_peer {
{% for exit in exits %}
@^{{ exit }} {{ "169.254.1.0/24" | ipaddr(loop.index + 1) | ipaddr('address') }}
@^{{ exit }} {{ "169.254.1.0/24" | ansible.utils.ipaddr(loop.index + 1) | ansible.utils.ipaddr('address') }}
{% endfor %}
}
notify_master "systemctl start {{ dhcrelays | join(' ') }}"