cisco.nxos.nxos_vrf_global module – Resource module to configure VRF definitions.

Note

This module is part of the cisco.nxos collection (version 9.2.1).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install cisco.nxos.

To use it in a playbook, specify: cisco.nxos.nxos_vrf_global.

New in cisco.nxos 8.1.0

Synopsis

  • This module provides declarative management of VRF definitions on Cisco NXOS.

Aliases: vrf_global

Parameters

Parameter

Comments

config

dictionary

A list containing device configurations for VRF.

vrfs

list / elements=dictionary

List of VRF definitions.

description

string

Description of the VRF.

ip

dictionary

Configure IP features for the specified vrf.

auto_discard

boolean

Auto 0.0.0.0/0 discard route.

Choices:

  • false

  • true

domain_list

list / elements=string

Add list domain names.

domain_name

string

Specify default domain name.

icmp_err

dictionary

Enable ICMP error message.

source_interface

dictionary

Configure source-address for applications.

interface

string

Source interface for ICMP error messages.

Choices:

  • "loopback"

  • "ethernet"

  • "port-channel"

interface_value

string

Source interface value for ICMP error messages.

igmp

dictionary

IGMP global configuration commands

ssm_translate

list / elements=dictionary

Translate IGMPv1/v2 reports to (S,G) route entries.

group

string

Source address.

source

string

Group address.

mroutes

list / elements=dictionary

Configure multicast routes.

group

string

Multicast group address.

preference

integer

Preference value.

source

string

Source address.

vrf

string

VRF name.

multicast

dictionary

Configure IP multicast global parameters.

group_range_prefix_list

string

Group range prefix-list policy for multicast boundary.

multipath

dictionary

Configure ECMP multicast load splitting.

resilient

boolean

Configure resilient RPF interface.

Choices:

  • false

  • true

splitting_type

dictionary

Configure multicast load splitting type.

legacy

boolean

Configure hash based on source and group.

Choices:

  • false

  • true

nbm

boolean

Configure NBM controlled RPF interface.

Choices:

  • false

  • true

none

boolean

Disable multicast load splitting.

Choices:

  • false

  • true

sg_hash

boolean

Configure hash based on source and group address.

Choices:

  • false

  • true

sg_hash_next_hop

boolean

Configure hash based on source and group address and next-hop.

Choices:

  • false

  • true

rpf

list / elements=dictionary

Configure RPF check.

group_list_range

string

Group range for RPF select.

vrf_name

string

VRF for RPF lookup.

name_server

dictionary

Specify nameserver address.

address_list

list / elements=string

Configure multicast name server address.

use_vrf

dictionary

Display per-VRF information.

source_address

string

source address for configuring name server.

vrf

string

VRF name.

route

list / elements=dictionary

Configure static routes.

destination

string

Next-hop address.

source

string

Destination prefix.

tags

dictionary

Route tag.

route_pref

integer

Route preference.

tag_value

integer

Route tag value.

track

string

Configure track object.

vrf

string

add vrf to the route.

ipv6

dictionary

Configure IPv6 features for the specified vrf.

mld_ssm_translate

list / elements=dictionary

Translate MLDv1/v2 reports to (S,G) route entries.

group

string

Source address.

icmp

boolean

Configure ICMP parameters with mld.

Choices:

  • false

  • true

source

string

Group address.

multicast

dictionary

Configure IP multicast global parameters for ipv6.

group_range_prefix_list

string

Group range prefix-list policy for multicast boundary.

multipath

dictionary

Configure ECMP multicast load splitting.

resilient

boolean

Configure resilient RPF interface.

Choices:

  • false

  • true

splitting_type

dictionary

Configure multicast load splitting type.

none

boolean

Disable multicast load splitting.

Choices:

  • false

  • true

sg_hash

boolean

Configure hash based on source and group address.

Choices:

  • false

  • true

sg_hash_next_hop

boolean

Configure hash based on source and group address and next-hop.

Choices:

  • false

  • true

multicast

dictionary

Configure IP multicast options.

service_reflect

list / elements=dictionary

Configure service reflect option.

map_to

string

Map to interface.

service_interface

string

configure service interface.

name

string / required

Name of the VRF..

vni

dictionary

Virtual Network Identifier.

layer_3

boolean

Configure Layer 3 VNI.

Choices:

  • false

  • true

vni_number

integer

VNI number.

running_config

string

This option is used only with state parsed.

The value of this option should be the output received from the NX-OS device by executing the command show running-config | section ^vrf.

The state parsed reads the configuration from running_config option and transforms it into Ansible structured data as per the resource module’s argspec and the value is then returned in the parsed key within the result.

state

string

The state the configuration should be left in

The states rendered, gathered and parsed does not perform any change on the device.

The state rendered will transform the configuration in config option to platform specific CLI commands which will be returned in the rendered key within the result. For state rendered active connection to remote host is not required.

The state gathered will fetch the running configuration from device and transform it into structured data in the format as per the resource module argspec and the value is returned in the gathered key within the result.

The state parsed reads the configuration from running_config option and transforms it into JSON format as per the resource module parameters and the value is returned in the parsed key within the result. The value of running_config option should be the same format as the output of command show running-config | section ^vrf. connection to remote host is not required.

Choices:

  • "parsed"

  • "gathered"

  • "deleted"

  • "merged" ← (default)

  • "replaced"

  • "rendered"

  • "overridden"

  • "purged"

Notes

Note

Examples

# Using merged

# Before state:
# -------------
#
# nxos#show running-config | section ^vrf

- name: Merge provided VRF configuration
  cisco.nxos.vrf_global:
    config:
      vrfs:
        - name: testvrf
          description: this is description
          ip:
            auto_discard: true
            domain_list:
              - example.net
              - example.com
            domain_name: test.com
            icmp_err:
              source_interface:
                interface: port-channel
                interface_value: '1'
            igmp:
              ssm_translate:
                - group: 232.0.0.0/8
                  source: 10.1.1.1
                - group: 239.1.2.3/24
                  source: 192.168.1.1
            mroutes:
              - group: 192.168.1.0/24
                source: 192.168.1.1
              - group: 192.168.1.0/24
                preference: 2
                source: 192.168.1.2
                vrf: temp1
            multicast:
              multipath:
                resilient: true
                splitting_type:
                  legacy: true
              rpf:
                - group_list_range: 238.1.0.0/24
                  vrf_name: temp1
                - group_list_range: 239.1.0.0/24
                  vrf_name: temp1
            name_server:
              address_list:
                - 192.168.0.1
                - 192.168.0.2
                - 192.168.1.1
                - 192.169.1.3
              use_vrf:
                source_address: 192.168.0.1
                vrf: temp1
            route:
              - destination: 192.0.2.22
                source: 192.0.0.0/24
              - destination: 192.0.2.22
                source: 192.0.0.0/24
                vrf: temp1
              - destination: 192.0.2.22
                source: 192.0.2.0/24
                tags:
                  route_pref: 4
                  tag_value: 2
          ipv6:
            mld_ssm_translate:
              - group: 'ff28::/16'
                source: '2001:db8:0:abcd::2'
              - group: 'ff30::/16'
                source: '2001:db8:0:abcd::5'
            multicast:
              group_range_prefix_list: temp2
              multipath:
                resilient: true
                splitting_type:
                  none: true
          multicast:
            service_reflect:
              - map_to: Ethernet2/2
                service_interface: Ethernet1/1
              - map_to: Ethernet4/2
                service_interface: Ethernet2/1
          vni:
            vni_number: 5
    state: merged

# Task Output:
# ------------

# before: {}
# commands:
#   - vrf context test1
#   - description this is description
#   - ip auto-discard
#   - ip domain-name test.net
#   - ip name-server 192.168.0.1 192.168.0.2 192.168.1.1 192.169.1.3
#   - ip icmp-errors source-interface port-channel 1
#   - ip multicast multipath resilient
#   - ip multicast multipath legacy
#   - ip name-server 192.168.0.1 use-vrf temp1
#   - vni 5
#   - ipv6 multicast group-range prefix-list temp2
#   - ipv6 multicast multipath resilient
#   - ipv6 multicast multipath none
#   - ip domain-list test.org
#   - ip domain-list example.com
#   - ip domain-list example.net
#   - ip igmp ssm-translate 232.0.0.0/8 10.1.1.1
#   - ip igmp ssm-translate 239.1.2.3/24 192.168.1.1
#   - ip mroute 192.168.1.0/24 192.168.1.1
#   - ip mroute 192.168.1.0/24 192.168.1.2 2 vrf temp1
#   - ip multicast rpf select vrf temp1 group-list 238.1.0.0/24
#   - ip multicast rpf select vrf temp1 group-list 239.1.0.0/24
#   - ip route 192.0.0.0/24 192.0.2.22
#   - ip route 192.0.0.0/24 192.0.2.22 vrf temp1
#   - ip route 192.0.2.0/24 192.0.2.22 tag 2 4
#   - multicast service-reflect interface Ethernet1/1 map interface Ethernet2/2
#   - multicast service-reflect interface Ethernet2/1 map interface Ethernet4/2
#   - ipv6 mld ssm-translate ff28::/16 2001:db8:0:abcd::2
#   - ipv6 mld ssm-translate ff30::/16 2001:db8:0:abcd::5

# after:
#   vrfs:
#    - name: testvrf
#      description: this is description
#      ip:
#        auto_discard: true
#        domain_list:
#        - example.net
#        - example.com
#        domain_name: test.com
#        icmp_err:
#          source_interface:
#            interface: port-channel
#            interface_value: '1'
#        igmp:
#          ssm_translate:
#          - group: 232.0.0.0/8
#            source: 10.1.1.1
#          - group: 239.1.2.3/24
#            source: 192.168.1.1
#        mroutes:
#        - group: 192.168.1.0/24
#          source: 192.168.1.1
#        - group: 192.168.1.0/24
#          preference: 2
#          source: 192.168.1.2
#          vrf: temp1
#        multicast:
#          multipath:
#            resilient: true
#            splitting_type:
#              legacy: true
#          rpf:
#          - group_list_range: 238.1.0.0/24
#            vrf_name: temp1
#          - group_list_range: 239.1.0.0/24
#            vrf_name: temp1
#        name_server:
#          address_list:
#          - 192.168.0.1
#          - 192.168.0.2
#          - 192.168.1.1
#          - 192.169.1.3
#          use_vrf:
#            source_address: 192.168.0.1
#            vrf: temp1
#        route:
#        - destination: 192.0.2.22
#          source: 192.0.0.0/24
#        - destination: 192.0.2.22
#          source: 192.0.0.0/24
#           vrf: temp1
#        - destination: 192.0.2.22
#          source: 192.0.2.0/24
#          tags:
#            route_pref: 4
#            tag_value: 2
#      ipv6:
#        mld_ssm_translate:
#        - group: ff28::/16
#          source: 2001:db8:0:abcd::2
#        - group: ff30::/16
#          source: 2001:db8:0:abcd::5
#        multicast:
#          group_range_prefix_list: temp2
#          multipath:
#            resilient: true
#            splitting_type:
#              none: true
#      multicast:
#        service_reflect:
#         - map_to: Ethernet2/2
#           service_interface: Ethernet1/1
#         - map_to: Ethernet4/2
#           service_interface: Ethernet2/1
#      vni:
#        vni_number: 5

# After state:
# ------------
#
# nxos#show running-config | section ^vrf
# vrf context testvrf
#   description this is description
#   ip auto-discard
#   ip domain-name test.net
#   ip name-server 192.168.0.1 192.168.0.2 192.168.1.1 192.169.1.3
#   ip icmp-errors source-interface port-channel 1
#   ip multicast multipath resilient
#   ip multicast multipath legacy
#   ip name-server 192.168.0.1 use-vrf temp1
#   vni 5
#   ipv6 multicast group-range prefix-list temp2
#   ipv6 multicast multipath resilient
#   ipv6 multicast multipath none
#   ip domain-list test.org
#   ip domain-list example.com
#   ip domain-list example.net
#   ip igmp ssm-translate 232.0.0.0/8 10.1.1.1
#   ip igmp ssm-translate 239.1.2.3/24 192.168.1.1
#   ip mroute 192.168.1.0/24 192.168.1.1
#   ip mroute 192.168.1.0/24 192.168.1.2 2 vrf temp1
#   ip multicast rpf select vrf temp1 group-list 238.1.0.0/24
#   ip multicast rpf select vrf temp1 group-list 239.1.0.0/24
#   ip route 192.0.0.0/24 192.0.2.22
#   ip route 192.0.0.0/24 192.0.2.22 vrf temp1
#   ip route 192.0.2.0/24 192.0.2.22 tag 2 4
#   multicast service-reflect interface Ethernet1/1 map interface Ethernet2/2
#   multicast service-reflect interface Ethernet2/1 map interface Ethernet4/2
#   ipv6 mld ssm-translate ff28::/16 2001:db8:0:abcd::2
#   ipv6 mld ssm-translate ff30::/16 2001:db8:0:abcd::5

# Using deleted

# Before state:
# -------------
#
# nxos#show running-config | section ^vrf
# vrf context management
#  ip name-server 192.168.255.1
#  ip route 0.0.0.0/0 192.168.255.1
# vrf context test1
#  description this is description
#  ip domain-name test.net
#  ip domain-list example.net
#  ip domain-list example.com
#  ip domain-list test.org
#  vni 5
#  ip auto-discard
#  ip route 192.0.0.0/24 192.0.2.22
#  ip route 192.0.0.0/24 192.0.2.22 vrf temp1
#  ip route 192.0.2.0/24 192.0.2.22 tag 2 4
#  ip mroute 192.168.1.0/24 192.168.1.1
#  ip mroute 192.168.1.0/24 192.168.1.2 2 vrf temp1
#  ip icmp-errors source-interface po1
#  ip igmp ssm-translate 232.0.0.0/8 10.1.1.1
#  ip igmp ssm-translate 239.1.2.3/24 192.168.1.1
#  ip multicast multipath legacy
#  ip multicast multipath resilient
#  ip multicast rpf select vrf temp1 group-list 238.1.0.0/24
#  ip multicast rpf select vrf temp1 group-list 239.1.0.0/24
#  ip multicast group-range prefix-list temp2

- name: Delete VRF configuration
  cisco.nxos.vrf_global:
    config:
      vrfs:
        - name: test1
    state: deleted

# Task Output:
# ------------
#
# before:
#   vrfs:
#    - name: management
#      ip:
#        name_server:
#          address_list:
#          - 192.168.255.1
#        route:
#        - source: 0.0.0.0/0
#          destination: 192.168.255.1
#    - name: test1
#      description: this is description
#      ip:
#        domain_name: test.net
#        domain_list:
#        - test.org
#        - example.net
#        - example.com
#        auto_discard: true
#        route:
#        - source: 192.0.0.0/24
#          destination: 192.0.2.22
#        - source: 192.0.0.0/24
#          destination: 192.0.2.22
#          vrf: temp1
#        - source: 192.0.2.0/24
#          destination: 192.0.2.22
#          tags:
#            tag_value: 2
#            route_pref: 4
#        mroutes:
#        - group: 192.168.1.0/24
#          source: 192.168.1.1
#        - group: 192.168.1.0/24
#          source: 192.168.1.2
#          preference: 2
#          vrf: temp1
#        icmp_err:
#          source_interface:
#            interface: port-channel
#            interface_value: '1'
#        igmp:
#          ssm_translate:
#          - group: 232.0.0.0/8
#            source: 10.1.1.1
#          - group: 239.1.2.3/24
#            source: 192.168.1.1
#        multicast:
#          multipath:
#            splitting_type:
#              legacy: true
#            resilient: true
#          rpf:
#          - vrf_name: temp1
#            group_list_range: 238.1.0.0/24
#          - vrf_name: temp1
#            group_list_range: 239.1.0.0/24
#      vni:
#        vni_number: 5

# commands:
#   - vrf context test1
#   - no description this is description
#   - no ip auto-discard
#   - no ip domain-name test.net
#   - no ip icmp-errors source-interface port-channel 1
#   - no ip multicast multipath resilient
#   - no ip multicast multipath legacy
#   - no vni 5
#   - no ip domain-list example.net
#   - no ip domain-list test.org
#   - no ip domain-list example.com
#   - no ip igmp ssm-translate 232.0.0.0/8 10.1.1.1
#   - no ip igmp ssm-translate 239.1.2.3/24 192.168.1.1
#   - no ip mroute 192.168.1.0/24 192.168.1.1
#   - no ip mroute 192.168.1.0/24 192.168.1.2 2 vrf temp1
#   - no ip multicast rpf select vrf temp1 group-list 238.1.0.0/24
#   - no ip multicast rpf select vrf temp1 group-list 239.1.0.0/24
#   - no ip route 192.0.0.0/24 192.0.2.22
#   - no ip route 192.0.0.0/24 192.0.2.22 vrf temp1
#   - no ip route 192.0.2.0/24 192.0.2.22 tag 2 4
#
# after:
#   vrfs:
#    - name: management
#      ip:
#        name_server:
#          address_list:
#          - 192.168.255.1
#        route:
#        - source: 0.0.0.0/0
#          destination: 192.168.255.1
#    - name: test1

# Using deleted with empty config

# Before state:
# -------------
#
# nxos#show running-config | section ^vrf
# vrf context management
#  ip name-server 192.168.255.1
#  ip route 0.0.0.0/0 192.168.255.1
# vrf context test1
#  description this is description
#  ip domain-name test.net
#  ip domain-list example.net
#  ip domain-list example.com
#  ip domain-list test.org
#  vni 5

- name: Delete VRF configuration
  cisco.nxos.vrf_global:
    config:
      vrfs:
        - name: test1
    state: deleted

# Task Output:
# ------------
#
# before:
#   vrfs:
#    - name: management
#      ip:
#        name_server:
#          address_list:
#          - 192.168.255.1
#        route:
#        - source: 0.0.0.0/0
#          destination: 192.168.255.1
#    - name: test1
#      description: this is description
#      ip:
#        domain_name: test.net
#        domain_list:
#        - test.org
#        - example.net
#        - example.com
#      vni:
#        vni_number: 5

# commands:
#   - vrf context management
#   - no ip name-server 192.168.255.1
#   - no ip route 0.0.0.0/0 192.168.255.1
#   - vrf context test1
#   - no description this is description
#   - no ip domain-name test.net
#   - no vni 5
#   - no ip domain-list example.net
#   - no ip domain-list test.org
#   - no ip domain-list example.com

# after:
#   vrfs:
#     - name: management
#     - name: test1

# Using purged

# Before state:
# -------------
#
# nxos#show running-config | section ^vrf
# vrf context management
#   ip name-server 192.168.255.1
#   ip route 0.0.0.0/0 192.168.255.1
# vrf context test1
#   description this is description
#   ip domain-name example.com
#   ip domain-list example.net
#   ip domain-list example.org
#   vni 5
#   ip auto-discard
#   ip route 192.0.0.0/24 192.0.2.22
#   ip route 192.0.0.0/24 192.0.2.22 vrf temp1
#   ip route 192.0.2.0/24 192.0.2.22 tag 2 4
# vrf context test2
#   description test description
#   ip auto-discard
#   ip domain-name test.com

- name: Override VRF configuration
  cisco.nxos.vrf_global:
    config:
      vrfs:
        - name: test1
        - name: test2
    state: purged

# Task Output:
# ------------
#
# before:
#   vrfs:
#    - name: management
#      ip:
#        name_server:
#          address_list:
#          - 192.168.255.1
#        route:
#        - source: 0.0.0.0/0
#          destination: 192.168.255.1
#    - name: test1
#      description: this is description
#      ip:
#        domain_name: example.com
#        domain_list:
#        - example.net
#        - example.org
#        auto_discard: true
#        route:
#        - source: 192.0.0.0/24
#          destination: 192.0.2.22
#        - source: 192.0.0.0/24
#          destination: 192.0.2.22
#          vrf: temp1
#        - source: 192.0.2.0/24
#          destination: 192.0.2.22
#          tags:
#            tag_value: 2
#            route_pref: 4
#     vni:
#       vni_number: 5
#    - name: test2
#      description: test description
#      ip:
#        auto_discard: true
#        domain_name: test.com
#
# commands:
# - no vrf context test1
# - no vrf context test2
#
# after:
#   vrfs:
#    - name: management
#      ip:
#        name_server:
#          address_list:
#          - 192.168.255.1
#        route:
#        - source: 0.0.0.0/0
#          destination: 192.168.255.1

# Using overridden

# Before state:
# -------------
#
# nxos#show running-config | section ^vrf
# vrf context management
#   ip name-server 192.168.255.1
#   ip route 0.0.0.0/0 192.168.255.1
# vrf context test1
#   description this is description
#   ip domain-name example.com
#   ip domain-list example.net
#   ip domain-list example.org
#   vni 5
#   ip auto-discard
#   ip route 192.0.0.0/24 192.0.2.22
#   ip route 192.0.0.0/24 192.0.2.22 vrf temp1
#   ip route 192.0.2.0/24 192.0.2.22 tag 2 4
# vrf context test2
#   description test description
#   ip auto-discard
#   ip domain-name test.com

- name: Override VRF configuration
  cisco.nxos.vrf_global:
    config:
      vrfs:
        - name: management
          ip:
            name_server:
              address_list:
                - 192.168.255.1
            route:
              - source: 0.0.0.0/0
                destination: 192.168.255.1
        - name: test1
          ip:
            auto_discard: false
            name_server:
              address_list:
                - 192.168.255.1
            route:
              - source: 192.0.0.0/24
                destination: 192.0.2.22
    state: overridden

# Task Output:
# ------------
#
# before:
#   vrfs:
#    - name: management
#      ip:
#        name_server:
#          address_list:
#          - 192.168.255.1
#        route:
#        - source: 0.0.0.0/0
#          destination: 192.168.255.1
#    - name: test1
#      description: this is description
#      ip:
#        domain_name: example.com
#        domain_list:
#        - example.net
#        - example.org
#        auto_discard: true
#        route:
#        - source: 192.0.0.0/24
#          destination: 192.0.2.22
#        - source: 192.0.0.0/24
#          destination: 192.0.2.22
#          vrf: temp1
#        - source: 192.0.2.0/24
#          destination: 192.0.2.22
#          tags:
#            tag_value: 2
#            route_pref: 4
#      vni:
#        vni_number: 5
#    - name: test2
#      description: test description
#      ip:
#        auto_discard: true
#        domain_name: test.com
#
# commands:
# - vrf context test1
# - no description this is description
# - no ip domain-name example.com
# - no ip domain-list example.net
# - no ip domain-list example.org
# - ip name-server 192.168.255.1
# - no ip auto-discard
# - no vni 5
# - no ip route 192.0.0.0/24 192.0.2.22 vrf temp1
# - no ip route 192.0.2.0/24 192.0.2.22 tag 2 4
# - vrf context test2
# - no description test description
# - no ip auto-discard
# - no ip domain-name test.com
#
# after:
#   vrfs:
#    - name: management
#      ip:
#        name_server:
#          address_list:
#          - 192.168.255.1
#        route:
#        - source: 0.0.0.0/0
#          destination: 192.168.255.1
#    - name: test1
#      ip:
#        auto_discard: false
#        name_server:
#          address_list:
#          - 192.168.255.1
#        route:
#        - source: 192.0.0.0/24
#          destination: 192.0.2.22

# Using replaced

# Before state:
# -------------
#
# nxos# show running-config | section ^vrf
# vrf context management
#   ip name-server 192.168.255.1
#   ip route 0.0.0.0/0 192.168.255.1
# vrf context temp
#   ip domain-name test.org
#   ip domain-list example.net
#   ip domain-list example.com
#   ip domain-list test.org
#   ip name-server 192.168.0.1 192.169.1.3
#   ip name-server 192.168.0.1 use-vrf temp1
#   multicast service-reflect interface Ethernet1/1 map interface Ethernet2/2
#   multicast service-reflect interface Ethernet2/1 map interface Ethernet4/2
#   description this is descrition
#   vni 5
#   ip auto-discard
#   ip route 192.0.0.0/24 192.0.2.22
#   ip route 192.0.0.0/24 192.0.2.22 vrf temp1
#   ip route 192.0.2.0/24 192.0.2.22 tag 2 4
#   ip mroute 192.168.1.0/24 192.168.1.1
#   ip mroute 192.168.1.0/24 192.168.1.2 2 vrf temp1
#   ip icmp-errors source-interface po1
#   ip igmp ssm-translate 232.0.0.0/8 10.1.1.1
#   ip igmp ssm-translate 239.1.2.3/24 192.168.1.1
#   ip multicast multipath legacy
#   ip multicast multipath resilient
#   ip multicast rpf select vrf temp1 group-list 238.1.0.0/24
#   ip multicast rpf select vrf temp1 group-list 239.1.0.0/24
#   ip multicast group-range prefix-list temp2
#   ipv6 multicast multipath none
#   ipv6 multicast multipath resilient
#   ipv6 multicast group-range prefix-list temp2
#   ipv6 mld ssm-translate ff28::/16 2001:db8:0:abcd::2
#   ipv6 mld ssm-translate ff30::/16 2001:db8:0:abcd::1
#   ipv6 mld ssm-translate ff32::/16 2001:db8:0:abcd::2
#   ipv6 mld ssm-translate ff32::/16 2001:db8:0:abcd::3

- name: Replaced state for VRF configuration
  cisco.nxos.nxos_vrf_global:
    config:
      vrfs:
        - ip:
            name_server:
              address_list:
                - 192.168.255.1
            route:
              - destination: 192.168.255.1
                source: 0.0.0.0/0
          name: management
        - name: temp
          description: Test
          ip:
            auto_discard: true
            domain_list:
              - invalid.com
              - example.com
            domain_name: test.org
    state: replaced

# Task Output:
# ------------
#
# before:
#   vrfs:
#    - ip:
#        name_server:
#          address_list:
#          - 192.168.255.1
#        route:
#        - destination: 192.168.255.1
#          source: 0.0.0.0/0
#      name: management
#    - description: this is descrition
#      ip:
#        auto_discard: true
#        domain_list:
#        - example.net
#        - test.org
#        - example.com
#        domain_name: test.org
#        icmp_err:
#          source_interface:
#            interface: port-channel
#            interface_value: '1'
#        igmp:
#          ssm_translate:
#          - group: 232.0.0.0/8
#            source: 10.1.1.1
#          - group: 239.1.2.3/24
#            source: 192.168.1.1
#        mroutes:
#        - group: 192.168.1.0/24
#          source: 192.168.1.1
#        - group: 192.168.1.0/24
#          preference: 2
#          source: 192.168.1.2
#          vrf: temp1
#        multicast:
#          multipath:
#            resilient: true
#            splitting_type:
#              legacy: true
#          rpf:
#          - group_list_range: 238.1.0.0/24
#            vrf_name: temp1
#          - group_list_range: 239.1.0.0/24
#            vrf_name: temp1
#        name_server:
#          address_list:
#          - 192.168.0.1
#          - 192.169.1.3
#          use_vrf:
#            source_address: 192.168.0.1
#            vrf: temp1
#        route:
#        - destination: 192.0.2.22
#          source: 192.0.0.0/24
#        - destination: 192.0.2.22
#          source: 192.0.0.0/24
#          vrf: temp1
#        - destination: 192.0.2.22
#          source: 192.0.2.0/24
#          tags:
#            route_pref: 4
#            tag_value: 2
#      ipv6:
#        mld_ssm_translate:
#        - group: ff28::/16
#          source: 2001:db8:0:abcd::2
#        - group: ff30::/16
#          source: 2001:db8:0:abcd::1
#        - group: ff32::/16
#          source: 2001:db8:0:abcd::2
#        - group: ff32::/16
#          source: 2001:db8:0:abcd::3
#        multicast:
#          group_range_prefix_list: temp2
#          multipath:
#            resilient: true
#            splitting_type:
#              none: true
#      multicast:
#        service_reflect:
#        - map_to: Ethernet2/2
#          service_interface: Ethernet1/1
#        - map_to: Ethernet4/2
#          service_interface: Ethernet2/1
#      name: temp
#      vni:
#        vni_number: 5
#
# commands:
#   - vrf context temp
#   - description Test
#   - no ip name-server 192.168.0.1 192.169.1.3
#   - no ip icmp-errors source-interface port-channel 1
#   - no ip multicast multipath resilient
#   - no ip multicast multipath legacy
#   - no ip name-server 192.168.0.1 use-vrf temp1
#   - no vni 5
#   - no ipv6 multicast group-range prefix-list temp2
#   - no ipv6 multicast multipath resilient
#   - no ipv6 multicast multipath none
#   - ip domain-list invalid.com
#   - no ip domain-list example.net
#   - no ip domain-list test.org
#   - no ip igmp ssm-translate 232.0.0.0/8 10.1.1.1
#   - no ip igmp ssm-translate 239.1.2.3/24 192.168.1.1
#   - no ip mroute 192.168.1.0/24 192.168.1.1
#   - no ip mroute 192.168.1.0/24 192.168.1.2 2 vrf temp1
#   - no ip multicast rpf select vrf temp1 group-list 238.1.0.0/24
#   - no ip multicast rpf select vrf temp1 group-list 239.1.0.0/24
#   - no ip route 192.0.0.0/24 192.0.2.22
#   - no ip route 192.0.0.0/24 192.0.2.22 vrf temp1
#   - no ip route 192.0.2.0/24 192.0.2.22 tag 2 4
#   - no multicast service-reflect interface Ethernet1/1 map interface Ethernet2/2
#   - no multicast service-reflect interface Ethernet2/1 map interface Ethernet4/2
#   - no ipv6 mld ssm-translate ff28::/16 2001:db8:0:abcd::2
#   - no ipv6 mld ssm-translate ff30::/16 2001:db8:0:abcd::1
#   - no ipv6 mld ssm-translate ff32::/16 2001:db8:0:abcd::2
#   - no ipv6 mld ssm-translate ff32::/16 2001:db8:0:abcd::3
#
# after:
#   vrfs:
#    - ip:
#        name_server:
#          address_list:
#          - 192.168.255.1
#        route:
#        - destination: 192.168.255.1
#          source: 0.0.0.0/0
#      name: management
#    - description: Test
#      ip:
#        auto_discard: true
#        domain_list:
#        - invalid.com
#        - example.com
#        domain_name: test.org
#        multicast:
#          rpf:
#          - group_list_range: 238.1.0.0/24
#            vrf_name: temp1
#          - group_list_range: 239.1.0.0/24
#            vrf_name: temp1
#
# After state:
# ------------
# router-ios#show running-config | section ^vrf
# vrf context management
#   ip name-server 192.168.255.1
#   ip route 0.0.0.0/0 192.168.255.1
# vrf context temp
#   ip domain-name test.org
#   ip domain-list example.com
#   ip domain-list invalid.com
#   description Test
#   ip auto-discard
#   ip multicast rpf select vrf temp1 group-list 238.1.0.0/24
#   ip multicast rpf select vrf temp1 group-list 239.1.0.0/24
#   ip multicast group-range prefix-list temp2

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

after

dictionary

The resulting configuration after module execution.

Returned: when changed

Sample: "This output will always be in the same format as the module argspec.\n"

before

dictionary

The configuration prior to the module execution.

Returned: when state is merged, replaced, overridden, deleted or purged

Sample: "This output will always be in the same format as the module argspec.\n"

commands

list / elements=string

The set of commands pushed to the remote device.

Returned: when state is merged, replaced, overridden, deleted or purged

Sample: ["vrf context management", "description this is management vrf", "ip domain-name example.com"]

gathered

dictionary

Facts about the network resource gathered from the remote device as structured data.

Returned: when state is gathered

Sample: "This output will always be in the same format as the module argspec.\n"

parsed

dictionary

The device native config provided in running_config option parsed into structured data as per module argspec.

Returned: when state is parsed

Sample: "This output will always be in the same format as the module argspec.\n"

rendered

list / elements=string

The provided configuration in the task rendered in device-native format (offline).

Returned: when state is rendered

Sample: ["vrf context test1", "description This is a test VRF", "ip route 192.0.0.0/24 192.0.2.22"]

Authors

  • Vinay Mulugund (@roverflow)