cidr_merge¶
Collection Note
This module is part of the ansible.utils collection. To install the collection, use:
Added in version2.5.0.
Synopsis¶
- This filter can be used to merge subnets or individual addresses into their minimal representation, collapsing
- overlapping subnets and merging adjacent ones wherever possible.
Parameters¶
| Parameter | Defaults / Choices | Comments |
|---|---|---|
| action str |
Default: merge |
Action to be performed.example merge,span |
| value list / elements=str required |
list of subnets or individual address to be merged |
Examples¶
#### 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"
# }
Return Values¶
| Key | Data Type | Description | Returned |
|---|---|---|---|
| data | raw | Returns a minified list of subnets or a single subnet that spans all of the inputs. |
Authors¶
- Ashwini Mhatre (@amhatre)