Resource module to configure VRF definitions.
Version added: 7.0.0
- This module provides declarative management of VRF definitions on Cisco IOS.
Note
- Tested against Cisco IOSXE version 17.3 on CML.
- This module works with connection
network_cli
. See https://docs.ansible.com/ansible/latest/network/user_guide/platform_ios.html
# Using merged
#
# Before state:
# -------------
#
# RP/0/0/CPU0:ios#show running-config | section ^vrf
# vrf defnition test
#
- name: Merge provided configuration with device configuration
cisco.ios.ios_vrf_address_family:
config:
- name: test1
address_families:
- afi: "ipv4"
safi: "unicast"
bgp:
next_hop:
loopback: 40
export:
ipv4:
multicast:
map: "single"
prefix: 345
unicast:
allow_evpn: true
map: "test-map"
prefix: 67
map: "testing-map"
import_config:
ipv4:
multicast:
map: "import-map"
prefix: 89
unicast:
allow_evpn: true
limit: 12
map: "ran-map"
map: "import-map"
state: merged
# Task Output:
# ------------
#
# before: []
#
# commands:
# - vrf definition test1
# - address-family ipv4 unicast
# - bgp next-hop loopback 40
# - export map "testing-map"
# - export ipv4 multicast 345 map "single"
# - export ipv4 unicast 67 map "test-map" allow-evpn
# - import map "import-map"
# - import ipv4 multicast 89 map "import-map"
# - import ipv4 unicast 12 map "ran-map" allow-evpn
#
# after:
# - name: test1
# address_families:
# - afi: "ipv4"
# safi: "unicast"
# bgp:
# next_hop:
# loopback: 40
# export:
# ipv4:
# multicast:
# map: "single"
# prefix: 345
# unicast:
# allow_evpn: true
# map: "test-map"
# prefix: 67
# map: "testing-map"
# import_config:
# ipv4:
# multicast:
# map: "import-map"
# prefix: 89
# unicast:
# allow_evpn: true
# limit: 12
# map: "ran-map"
# map: "import-map"
#
# After state:
# ------------
#
# RP/0/0/CPU0:ios#show running-config | section ^vrf
# vrf definition test1
# address-family ipv4 unicast
# bgp next-hop loopback 40
# export map "testing-map"
# export ipv4 multicast 345 map "single"
# export ipv4 unicast 67 map "test-map" allow-evpn
# import map "import-map"
# import ipv4 multicast 89 map "import-map"
# import ipv4 unicast 12 map "ran-map" allow-evpn
# Using replaced
#
# Before state:
# -------------
#
# RP/0/0/CPU0:ios#show running-config | section ^vrf
# vrf definition test1
# address-family ipv4 unicast
# bgp next-hop loopback 40
# export map "testing-map"
# export ipv4 multicast 345 map "single"
# export ipv4 unicast 67 map "test-map" allow-evpn
# import map "import-map"
# import ipv4 multicast 89 map "import-map"
# import ipv4 unicast 12 map "ran-map" allow-evpn
- name: Replace the provided configuration with the existing running configuration
cisco.ios.ios_vrf_address_family:
config:
- name: test1
address_families:
- afi: "ipv4"
safi: "unicast"
bgp:
next_hop:
loopback: 40
export:
ipv4:
multicast:
map: "single"
prefix: 345
unicast:
allow_evpn: true
map: "test-map"
prefix: 67
map: "testing-map"
import_config:
ipv4:
multicast:
map: "import-map"
prefix: 89
unicast:
allow_evpn: true
limit: 12
map: "ran-map"
map: "import-map"
state: replaced
# Task Output:
# ------------
#
# before:
# - name: test1
# address_families:
# - afi: "ipv4"
# safi: "unicast"
# bgp:
# next_hop:
# loopback: 40
# export:
# ipv4:
# multicast:
# map: "single"
# prefix: 345
# unicast:
# allow_evpn: true
# map: "test-map"
# prefix: 67
# map: "testing-map"
# import_config:
# ipv4:
# multicast:
# map: "import-map"
# prefix: 89
# unicast:
# allow_evpn: true
# limit: 12
# map: "ran-map"
# map: "import-map"
#
# commands:
# - vrf definition test1
# - address-family ipv4 unicast
# - bgp next-hop loopback 40
# - export map "testing-map"
# - export ipv4 multicast 345 map "single"
# - export ipv4 unicast 67 map "test-map" allow-evpn
# - import map "import-map"
# - import ipv4 multicast 89 map "import-map"
# - import ipv4 unicast 12 map "ran-map" allow-evpn
#
# after:
# - name: VRF1
# address_families:
# - afi: "ipv4"
# safi: "unicast"
# bgp:
# next_hop:
# loopback: 23
# export:
# ipv4:
# multicast:
# map: "single"
# prefix: 33
# unicast:
# allow_evpn: true
# map: "test-map1"
# prefix: 7
# map: "testing-map"
# import_config:
# ipv4:
# multicast:
# map: "import-map1"
# prefix: 89
# unicast:
# allow_evpn: true
# limit: 12
# map: "ran-map"
# map: "import-map"
#
# After state:
# ------------
#
# RP/0/RP0/CPU0:ios(config)#show running-config vrf
# vrf definition VRF1
# address-family ipv4 unicast
# bgp next-hop loopback 23
# export map "testing-map"
# export ipv4 multicast 345 map "single"
# export ipv4 unicast 67 map "test-map1" allow-evpn
# import map "import-map"
# import ipv4 multicast 89 map "import-map1"
# import ipv4 unicast 12 map "ran-map" allow-evpn
# Using overridden
#
# Before state:
# -------------
#
# RP/0/RP0/CPU0:ios(config)#show running-config | section ^vrf
# vrf definition test1
# address-family ipv4 unicast
# bgp next-hop loopback 40
# export map "testing-map"
# export ipv4 multicast 345 map "single"
# export ipv4 unicast 67 map "test-map" allow-evpn
# import map "import-map"
# import ipv4 multicast 89 map "import-map"
# import ipv4 unicast 12 map "ran-map" allow-evpn
- name: Override the provided configuration with the existing running configuration
cisco.ios.ios_vrf_address_family:
state: overridden
config:
- name: VRF7
address_families:
- afi: "ipv4"
safi: "unicast"
bgp:
next_hop:
loopback: 89
export:
ipv4:
multicast:
map: "single"
prefix: 345
unicast:
allow_evpn: true
map: "test-map"
prefix: 67
map: "testing-map"
import_config:
ipv4:
multicast:
map: "import-map"
prefix: 89
unicast:
allow_evpn: true
limit: 12
map: "ran-map"
map: "import-map"
# Task Output:
# ------------
#
# before:
# - name: test1
# address_families:
# - afi: "ipv4"
# safi: "unicast"
# bgp:
# next_hop:
# loopback: 40
# export:
# ipv4:
# multicast:
# map: "single"
# prefix: 345
# unicast:
# allow_evpn: true
# map: "test-map"
# prefix: 67
# map: "testing-map"
# import_config:
# ipv4:
# multicast:
# map: "import-map"
# prefix: 89
# unicast:
# allow_evpn: true
# limit: 12
# map: "ran-map"
# map: "import-map"
#
# commands:
# - vrf definition VRF7
# - address-family ipv4 unicast
# - bgp next-hop loopback 89
# - export map "testing-map"
# - export ipv4 multicast 345 map "single"
# - export ipv4 unicast 67 map "test-map" allow-evpn
# - import map "import-map"
# - import ipv4 multicast 89 map "import-map"
# - import ipv4 unicast 12 map "ran-map" allow-evpn
#
# After state:
# -------------
# RP/0/RP0/CPU0:ios(config)#show running-config vrf
# vrf definition VRF4
# vrf definition VRF7
# address-family ipv4 unicast
# bgp next-hop loopback 89
# export map "testing-map"
# export ipv4 multicast 345 map "single"
# export ipv4 unicast 67 map "test-map" allow-evpn
# import map "import-map"
# import ipv4 multicast 89 map "import-map1"
# import ipv4 unicast 12 map "ran-map" allow-evpn
# Using deleted
#
# Before state:
# -------------
#
# RP/0/RP0/CPU0:ios(config)#show running-config | section ^vrf
# vrf definition VRF4
# vrf definition VRF6
# address-family ipv4 unicast
# bgp next-hop loopback 40
# import map "import-map"
# import ipv4 multicast 89 map "import-map"
# import ipv4 unicast 12 map "ran-map" allow-evpn
# export map "testing-map"
# export ipv4 multicast 345 map "single"
# export ipv4 unicast 67 map "test-map" allow-evpn
# vrf definition VRF7
- name: Delete the provided configuration
cisco.ios.ios_vrf_address_family:
config:
state: deleted
# Task Output:
# ------------
#
# before:
# - name: VRF4
# - name: VRF6
# address_families:
# - afi: "ipv4"
# safi: "unicast"
# bgp:
# next_hop:
# loopback: 23
# import_config:
# ipv4:
# multicast:
# map: "import-map"
# prefix: 89
# unicast:
# map: "ran-map"
# limit: 12
# allow_evpn: true
# map: "import-map"
# export:
# ipv4:
# multicast:
# map: "single"
# prefix: 345
# unicast:
# map: "test-map"
# prefix: 67
# allow_evpn: true
# map: "testing-map"
# - name: VRF7
# commands:
# - vrf definition VRF4
# - vrf definition VRF6
# - no address-family ipv4 unicast
# - vrf definition VRF7
#
# after:
# - name: VRF4
# - name: VRF6
# - name: VRF7
#
# After state:
# ------------
#
# RP/0/RP0/CPU0:ios(config)#show running-config | section ^vrf
# vrf definition VRF4
# vrf definition VRF6
# vrf definition VRF7
# Using rendered
#
- name: Render provided configuration with device configuration
cisco.ios.ios_vrf_address_family:
config:
- name: test
address_families:
- afi: "ipv4"
safi: "unicast"
bgp:
next_hop:
loopback: 23
import_config:
ipv4:
multicast:
map: "import-map"
prefix: 89
unicast:
map: "ran-map"
limit: 12
allow_evpn: true
map: "import-map"
export:
ipv4:
multicast:
map: "single"
prefix: 345
unicast:
map: "test-map"
prefix: 67
allow_evpn: true
map: "testing-map"
state: rendered
# Task Output:
# ------------
#
# rendered:
# - vrf definition test
# - address-family ipv4 unicast
# - bgp next-hop loopback 23
# - import map "import-map"
# - import ipv4 multicast 89 map "import-map"
# - import ipv4 unicast 12 map "ran-map" allow-evpn
# - export map "testing-map"
# - export ipv4 multicast 345 map "single"
# - export ipv4 unicast 67 map "test-map" allow-evpn
# Using gathered
#
# Before state:
# -------------
#
# RP/0/RP0/CPU0:ios(config)#show running-config | section ^vrf
# vrf definition test1
# address-family ipv4 unicast
# bgp next-hop loopback 40
# import map "import-map"
# import ipv4 multicast 89 map "import-map"
# import ipv4 unicast 12 map "ran-map" allow-evpn
# export map "testing-map"
# export ipv4 multicast 345 map "single"
# export ipv4 unicast 67 map "test-map" allow-evpn
- name: Gather existing running configuration
cisco.ios.ios_vrf_address_family:
state: gathered
# Task Output:
# ------------
#
# gathered:
# - name: test1
# address_families:
# - afi: "ipv4"
# safi: "unicast"
# bgp:
# next_hop:
# loopback: 40
# export:
# ipv4:
# multicast:
# map: "single"
# prefix: 345
# unicast:
# allow_evpn: true
# map: "test-map"
# prefix: 67
# map: "testing-map"
# import_config:
# ipv4:
# multicast:
# map: "import-map"
# prefix: 89
# unicast:
# allow_evpn: true
# limit: 12
# map: "ran-map"
# map: "import-map"
# Using parsed
#
# File: parsed.cfg
# ----------------
#
# vrf definition test
# address-family ipv4 unicast
# bgp next-hop loopback 23
# import map "import-map"
# import ipv4 multicast 89 map "import-map"
# import ipv4 unicast 12 map "ran-map" allow-evpn
# export map "testing-map"
# export ipv4 multicast 345 map "single"
# export ipv4 unicast 67 map "test-map" allow-evpn
- name: Parse the provided configuration
cisco.ios.ios_vrf_address_family:
running_config: "{{ lookup('file', 'parsed.cfg') }}"
state: parsed
# Task Output:
# ------------
#
# parsed:
# - address_families:
# - afi: ipv4
# bgp:
# next_hop:
# loopback: 40
# export:
# ipv4:
# multicast:
# map: "single"
# prefix: 345
# unicast:
# allow_evpn: true
# map: "test-map"
# prefix: 67
# map: "testing-map"
# import_config:
# ipv4:
# multicast:
# map: "import-map"
# prefix: 89
# unicast:
# allow_evpn: true
# limit: 12
# map: "ran-map"
# safi: unicast
# name: test
Common return values are documented here, the following are the fields unique to this module:
- Ruchi Pakhle (@Ruchip16)