Use ipaddr filter instead of string manipulation

This commit is contained in:
Timo Makinen 2025-06-18 23:12:09 +00:00
parent bd18ce3d22
commit 1269427fb2
3 changed files with 21 additions and 28 deletions

View file

@ -2,38 +2,31 @@
# increase memory size
mem_size: 512
intnet_netmask: "{{ network_interfaces[0].netmask }}"
intnet_prefix: >-
{% set ip = network_interfaces[0].ipaddr.split('.') -%}
{% if intnet_netmask == '255.255.252.0' -%}
{{ [ ip[0], ip[1], ip[2] | int - 1 ] | join('.') -}}
{% else -%}
{{ [ ip[0], ip[1], ip[2] ] | join('.') -}}
{% endif -%}
intnet: "{{ network_interfaces[0].ipaddr + '/' + network_interfaces[0].netmask }}"
network_vip_interfaces:
- device: vio0
vhid: 1
ipaddr: "{{ intnet_prefix }}.1"
netmask: "{{ intnet_netmask }}"
ipaddr: "{{ intnet | ansible.utils.ipaddr(1) | ansible.utils.ipaddr('address') }}"
netmask: "{{ intnet | ansible.utils.ipaddr('netmask') }}"
pass: "{{ vip1_pass }}"
priority: 120
- device: vio0
vhid: 10
ipaddr: "{{ intnet_prefix }}.10"
netmask: "{{ intnet_netmask }}"
ipaddr: "{{ intnet | ansible.utils.ipaddr(10) | ansible.utils.ipaddr('address') }}"
netmask: "{{ intnet | ansible.utils.ipaddr('netmask') }}"
pass: "{{ vip10_pass }}"
priority: 120
- device: vio0
vhid: 11
ipaddr: "{{ intnet_prefix }}.11"
netmask: "{{ intnet_netmask }}"
ipaddr: "{{ intnet | ansible.utils.ipaddr(11) | ansible.utils.ipaddr('address') }}"
netmask: "{{ intnet | ansible.utils.ipaddr('netmask') }}"
pass: "{{ vip11_pass }}"
priority: "{{ vip11_priority }}"
- device: vio0
vhid: 12
ipaddr: "{{ intnet_prefix }}.12"
netmask: "{{ intnet_netmask }}"
ipaddr: "{{ intnet | ansible.utils.ipaddr(12) | ansible.utils.ipaddr('address') }}"
netmask: "{{ intnet | ansible.utils.ipaddr('netmask') }}"
pass: "{{ vip12_pass }}"
priority: "{{ vip12_priority }}"
network_ether_interfaces:

View file

@ -35,15 +35,15 @@ class "PXEClient" {
}
}
subnet {{ intnet_prefix }}.0 netmask {{ intnet_netmask }} {
subnet {{ intnet | ansible.utils.ipaddr('network') }} netmask {{ intnet | ansible.utils.ipaddr('netmask') }} {
default-lease-time 86400;
max-lease-time 604800;
option subnet-mask {{ intnet_netmask }};
#option broadcast-address 172.20.23.255;
option routers {{ intnet_prefix }}.1;
option subnet-mask {{ intnet | ansible.utils.ipaddr('netmask') }};
option broadcast-address {{ intnet | ansible.utils.ipaddr('broadcast') }};
option routers {{ intnet | ansible.utils.ipaddr(1) | ansible.utils.ipaddr('address')}};
option domain-name "{{ inventory_hostname.split('.')[1] }}.foo.sh";
option domain-name-servers {{ intnet_prefix }}.10, {{ intnet_prefix }}.11, {{ intnet_prefix }}.12;
option domain-name-servers {{ intnet | ansible.utils.ipaddr(10) | ansible.utils.ipaddr('address') }}, {{ intnet | ansible.utils.ipaddr(11) | ansible.utils.ipaddr('address') }}, {{ intnet | ansible.utils.ipaddr(12) | ansible.utils.ipaddr('address') }};
use-host-decl-names on;
}

View file

@ -8,12 +8,12 @@ server:
outgoing-range: {{ ( 1024 / ansible_processor_cores | int - 50 ) | int }}
interface: {{ intnet_prefix }}.10@53
interface: {{ intnet_prefix }}.10@853
interface: {{ intnet_prefix }}.11@53
interface: {{ intnet_prefix }}.11@853
interface: {{ intnet_prefix }}.12@53
interface: {{ intnet_prefix }}.12@853
interface: {{ intnet | ansible.utils.ipaddr(10) | ansible.utils.ipaddr('address') }}@53
interface: {{ intnet | ansible.utils.ipaddr(10) | ansible.utils.ipaddr('address') }}@853
interface: {{ intnet | ansible.utils.ipaddr(11) | ansible.utils.ipaddr('address') }}@53
interface: {{ intnet | ansible.utils.ipaddr(11) | ansible.utils.ipaddr('address') }}@853
interface: {{ intnet | ansible.utils.ipaddr(12) | ansible.utils.ipaddr('address') }}@53
interface: {{ intnet | ansible.utils.ipaddr(12) | ansible.utils.ipaddr('address') }}@853
tls-service-key: {{ tls_private }}/dns.{{ inventory_hostname.split('.')[1] }}.foo.sh.key
tls-service-pem: {{ tls_certs }}/dns.{{ inventory_hostname.split('.')[1] }}.foo.sh.crt
@ -21,7 +21,7 @@ server:
access-control: 127.0.0.0/8 allow
access-control: ::1 allow
access-control: {{ intnet_prefix }}.0/{{ (intnet_prefix + '.0/' + intnet_netmask) | ansible.utils.ipaddr('prefix') }} allow
access-control: {{ intnet | ansible.utils.ipaddr(0) }} allow
extended-statistics: yes
verbosity: 1