cisco.nxos.nxos_interfaces – Interfaces resource module

Note

This plugin is part of the cisco.nxos collection (version 2.4.0).

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

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

New in version 1.0.0: of cisco.nxos

Synopsis

  • This module manages the interface attributes of NX-OS interfaces.

Note

This module has a corresponding action plugin.

Parameters

Parameter Choices/Defaults Comments
config
list / elements=dictionary
A dictionary of interface options
description
string
Interface description.
duplex
string
    Choices:
  • full
  • half
  • auto
Interface link status. Applicable for Ethernet interfaces only.
enabled
boolean
    Choices:
  • no
  • yes
Administrative state of the interface. Set the value to true to administratively enable the interface or false to disable it
fabric_forwarding_anycast_gateway
boolean
    Choices:
  • no
  • yes
Associate SVI with anycast gateway under VLAN configuration mode. Applicable for SVI interfaces only.
ip_forward
boolean
    Choices:
  • no
  • yes
Enable or disable IP forward feature on SVIs. Set the value to true to enable or false to disable.
mode
string
    Choices:
  • layer2
  • layer3
Manage Layer2 or Layer3 state of the interface. Applicable for Ethernet and port channel interfaces only.
mtu
string
MTU for a specific interface. Must be an even number between 576 and 9216. Applicable for Ethernet interfaces only.
name
string / required
Full name of interface, e.g. Ethernet1/1, port-channel10.
speed
string
Interface link speed. Applicable for Ethernet interfaces only.
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 ^interface
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
    Choices:
  • merged ←
  • replaced
  • overridden
  • deleted
  • gathered
  • rendered
  • parsed
  • purged
The state of the configuration after module completion
The state rendered considers the system default mode for interfaces to be "Layer 3" and the system default state for interfaces to be shutdown.
The state purged negates virtual interfaces that are specified in task from running-config.

Notes

Note

  • Tested against NXOS 7.3.(0)D1(1) on VIRL

Examples

# Using merged

# Before state:
# -------------
#
# interface Ethernet1/1
#   description testing
#   mtu 1800

- name: Merge provided configuration with device configuration
  cisco.nxos.nxos_interfaces:
    config:
    - name: Ethernet1/1
      description: Configured by Ansible
      enabled: true
    - name: Ethernet1/2
      description: Configured by Ansible Network
      enabled: false
    state: merged

# After state:
# ------------
#
# interface Ethernet1/1
#    description Configured by Ansible
#    no shutdown
#    mtu 1800
# interface Ethernet2
#    description Configured by Ansible Network
#    shutdown


# Using replaced

# Before state:
# -------------
#
# interface Ethernet1/1
#    description Interface 1/1
# interface Ethernet1/2

- name: Replaces device configuration of listed interfaces with provided configuration
  cisco.nxos.nxos_interfaces:
    config:
    - name: Ethernet1/1
      description: Configured by Ansible
      enabled: true
      mtu: 2000
    - name: Ethernet1/2
      description: Configured by Ansible Network
      enabled: false
      mode: layer2
    state: replaced

# After state:
# ------------
#
# interface Ethernet1/1
#   description Configured by Ansible
#   no shutdown
#   mtu 1500
# interface Ethernet2/2
#    description Configured by Ansible Network
#    shutdown
#    switchport


# Using overridden

# Before state:
# -------------
#
# interface Ethernet1/1
#    description Interface Ethernet1/1
# interface Ethernet1/2
# interface mgmt0
#    description Management interface
#    ip address dhcp

- name: Override device configuration of all interfaces with provided configuration
  cisco.nxos.nxos_interfaces:
    config:
    - name: Ethernet1/1
      enabled: true
    - name: Ethernet1/2
      description: Configured by Ansible Network
      enabled: false
    state: overridden

# After state:
# ------------
#
# interface Ethernet1/1
# interface Ethernet1/2
#    description Configured by Ansible Network
#    shutdown
# interface mgmt0
#    ip address dhcp


# Using deleted

# Before state:
# -------------
#
# interface Ethernet1/1
#    description Interface Ethernet1/1
# interface Ethernet1/2
# interface mgmt0
#    description Management interface
#    ip address dhcp

- name: Delete or return interface parameters to default settings
  cisco.nxos.nxos_interfaces:
    config:
    - name: Ethernet1/1
    state: deleted

# After state:
# ------------
#
# interface Ethernet1/1
# interface Ethernet1/2
# interface mgmt0
#    description Management interface
#    ip address dhcp

# Using rendered

- name: Use rendered state to convert task input to device specific commands
  cisco.nxos.nxos_interfaces:
    config:
    - name: Ethernet1/1
      description: outbound-intf
      mode: layer3
      speed: 100
    - name: Ethernet1/2
      mode: layer2
      enabled: true
      duplex: full
    state: rendered

# Task Output (redacted)
# -----------------------

# rendered:
#   - "interface Ethernet1/1"
#   - "description outbound-intf"
#   - "speed 100"
#   - "interface Ethernet1/2"
#   - "switchport"
#   - "duplex full"
#   - "no shutdown"

# Using parsed

# parsed.cfg
# ------------
# interface Ethernet1/800
#   description test-1
#   speed 1000
#   shutdown
#   no switchport
#   duplex half
# interface Ethernet1/801
#   description test-2
#   switchport
#   no shutdown
#   mtu 1800

- name: Use parsed state to convert externally supplied config to structured format
  cisco.nxos.nxos_interfaces:
    running_config: "{{ lookup('file', 'parsed.cfg') }}"
    state: parsed

# Task output (redacted)
# -----------------------
#  parsed:
#    - description: "test-1"
#      duplex: "half"
#      enabled: false
#      mode: "layer3"
#      name: "Ethernet1/800"
#      speed: "1000"
#
#    - description: "test-2"
#      enabled: true
#      mode: "layer2"
#      mtu: "1800"
#      name: "Ethernet1/801"

# Using gathered

# Existing device config state
# -----------------------------
# interface Ethernet1/1
#   description outbound-intf
#   switchport
#   no shutdown
# interface Ethernet1/2
#   description intf-l3
#   speed 1000
# interface Ethernet1/3
# interface Ethernet1/4
# interface Ethernet1/5

- name: Gather interfaces facts from the device using nxos_interfaces
  cisco.nxos.nxos_interfaces:
    state: gathered

# Task output (redacted)
# -----------------------
# - name: Ethernet1/1
#   description: outbound-intf
#   mode: layer2
#   enabled: True
# - name: Ethernet1/2
#   description: intf-l3
#   speed: "1000"

# Using purged

# Existing device config state
# -----------------------------
# interface Vlan1
# interface Vlan42
#   mtu 1800
# interface port-channel10
# interface port-channel11
# interface Ethernet1/1
# interface Ethernet1/2
# interface Ethernet1/2.100
#   description sub-intf

- name: Purge virtual interfaces from running-config
  cisco.nxos.nxos_interfaces:
    config:
      - name: Vlan42
      - name: port-channel10
      - name: Ethernet1/2.100
    state: purged

# Task output
# ------------
# before:
#   - name: Vlan1
#   - mtu: '1800'
#     name: Vlan42
#   - name: port-channel10
#   - name: port-channel11
#   - name: Ethernet1/1
#   - name: Ethernet1/2
#   - description: sub-intf
#     name: Ethernet1/2.100
#
# commands:
#   - no interface port-channel10
#   - no interface Ethernet1/2.100
#   - no interface Vlan42
#
# after:
#   - name: Vlan1
#   - name: port-channel11
#   - name: Ethernet1/1
#   - name: Ethernet1/2

Return Values

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

Key Returned Description
after
list / elements=string
when changed
The configuration as structured data after module completion.

Sample:
The configuration returned will always be in the same format of the parameters above.
before
list / elements=string
always
The configuration as structured data prior to module invocation.

Sample:
The configuration returned will always be in the same format of the parameters above.
commands
list / elements=string
always
The set of commands pushed to the remote device.

Sample:
['interface Ethernet1/1', 'mtu 1800']


Authors

  • Trishna Guha (@trishnaguha)