Skip to content

Latest commit

 

History

History
186 lines (151 loc) · 5.33 KB

ansible.utils.cidr_merge_filter.rst

File metadata and controls

186 lines (151 loc) · 5.33 KB

ansible.utils.cidr_merge

This filter can be used to merge subnets or individual addresses.

Version added: 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 Choices/Defaults Configuration Comments
action
string
Default:
"merge"
Action to be performed.example merge,span
value
list / elements=string / 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

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.



Status

Authors

  • 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.