This filter can be used to merge subnets or individual addresses.
Version added: 2.5.0
- This filter can be used to merge subnets or individual addresses into their minimal representation, collapsing
- overlapping subnets and merging adjacent ones wherever possible.
#### examples
- name: cidr_merge with merge action
ansible.builtin.set_fact:
value:
- 192.168.0.0/17
- 192.168.128.0/17
- 192.168.128.1
- debug:
msg: '{{ value|ansible.utils.cidr_merge }}'
# TASK [cidr_merge with merge action] **********************************************************************************
# ok: [localhost] => {
# "ansible_facts": {
# "value": [
# "192.168.0.0/17",
# "192.168.128.0/17",
# "192.168.128.1"
# ]
# },
# "changed": false
# }
# TASK [debug] *********************************************************************************************************
# ok: [loalhost] => {
# "msg": [
# "192.168.0.0/16"
# ]
# }
- name: Cidr_merge with span.
ansible.builtin.set_fact:
value:
- 192.168.1.1
- 192.168.1.2
- 192.168.1.3
- 192.168.1.4
- debug:
msg: '{{ value|ansible.utils.cidr_merge(''span'') }}'
# TASK [Cidr_merge with span.] ********************************************************************
# ok: [localhost] => {
# "ansible_facts": {
# "value": [
# "192.168.1.1",
# "192.168.1.2",
# "192.168.1.3",
# "192.168.1.4"
# ]
# },
# "changed": false
# }
#
# TASK [debug] ************************************************************************************
# ok: [localhost] => {
# "msg": "192.168.1.0/29"
# }
Common return values are documented here, the following are the fields unique to this filter:
Key | Returned | Description |
---|---|---|
data
raw
|
Returns a minified list of subnets or a single subnet that spans all of the inputs.
|
- Ashwini Mhatre (@amhatre)
Hint
Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.