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 # increase memory size
mem_size: 512 mem_size: 512
intnet_netmask: "{{ network_interfaces[0].netmask }}" intnet: "{{ network_interfaces[0].ipaddr + '/' + 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 -%}
network_vip_interfaces: network_vip_interfaces:
- device: vio0 - device: vio0
vhid: 1 vhid: 1
ipaddr: "{{ intnet_prefix }}.1" ipaddr: "{{ intnet | ansible.utils.ipaddr(1) | ansible.utils.ipaddr('address') }}"
netmask: "{{ intnet_netmask }}" netmask: "{{ intnet | ansible.utils.ipaddr('netmask') }}"
pass: "{{ vip1_pass }}" pass: "{{ vip1_pass }}"
priority: 120 priority: 120
- device: vio0 - device: vio0
vhid: 10 vhid: 10
ipaddr: "{{ intnet_prefix }}.10" ipaddr: "{{ intnet | ansible.utils.ipaddr(10) | ansible.utils.ipaddr('address') }}"
netmask: "{{ intnet_netmask }}" netmask: "{{ intnet | ansible.utils.ipaddr('netmask') }}"
pass: "{{ vip10_pass }}" pass: "{{ vip10_pass }}"
priority: 120 priority: 120
- device: vio0 - device: vio0
vhid: 11 vhid: 11
ipaddr: "{{ intnet_prefix }}.11" ipaddr: "{{ intnet | ansible.utils.ipaddr(11) | ansible.utils.ipaddr('address') }}"
netmask: "{{ intnet_netmask }}" netmask: "{{ intnet | ansible.utils.ipaddr('netmask') }}"
pass: "{{ vip11_pass }}" pass: "{{ vip11_pass }}"
priority: "{{ vip11_priority }}" priority: "{{ vip11_priority }}"
- device: vio0 - device: vio0
vhid: 12 vhid: 12
ipaddr: "{{ intnet_prefix }}.12" ipaddr: "{{ intnet | ansible.utils.ipaddr(12) | ansible.utils.ipaddr('address') }}"
netmask: "{{ intnet_netmask }}" netmask: "{{ intnet | ansible.utils.ipaddr('netmask') }}"
pass: "{{ vip12_pass }}" pass: "{{ vip12_pass }}"
priority: "{{ vip12_priority }}" priority: "{{ vip12_priority }}"
network_ether_interfaces: 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; default-lease-time 86400;
max-lease-time 604800; max-lease-time 604800;
option subnet-mask {{ intnet_netmask }}; option subnet-mask {{ intnet | ansible.utils.ipaddr('netmask') }};
#option broadcast-address 172.20.23.255; option broadcast-address {{ intnet | ansible.utils.ipaddr('broadcast') }};
option routers {{ intnet_prefix }}.1; option routers {{ intnet | ansible.utils.ipaddr(1) | ansible.utils.ipaddr('address')}};
option domain-name "{{ inventory_hostname.split('.')[1] }}.foo.sh"; 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; use-host-decl-names on;
} }

View file

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