Skip to content

cidr_merge

Collection Note

This module is part of the ansible.utils collection. To install the collection, use:

ansible-galaxy collection install ansible.utils
Added in version 2.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)