cisco.iosxr.iosxr_interfaces 模块 – 配置接口的资源模块。

注意

此模块是 cisco.iosxr 集合(版本 10.2.2)的一部分。

如果您使用的是 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install cisco.iosxr

要在剧本中使用它,请指定:cisco.iosxr.iosxr_interfaces

cisco.iosxr 1.0.0 中的新增功能

概要

  • 此模块管理 Cisco IOS-XR 网络设备上的接口属性。

参数

参数

注释

config

列表 / 元素=字典

接口选项的字典

description

字符串

接口描述。

duplex

字符串

配置接口双工模式。未配置时默认为自动协商。

选项

  • "full"

  • "half"

enabled

布尔值

接口的管理状态。

将值设置为 True 以在管理上启用接口,或设置为 False 以禁用它。

选项

  • false

  • true ← (默认)

mtu

整数

设置接口的 MTU 值。仅适用于以太网接口。

请参考厂商文档以获取有效值。

name

字符串 / 必需

要配置的接口的全名,采用 type + path 格式。例如 GigabitEthernet0/0/0/0

speed

整数

配置接口速度。未配置时默认为自动协商。

running_config

字符串

此选项仅与 state _parsed_ 一起使用。

此选项的值应为通过执行命令 **show running-config interface** 从 IOS-XR 设备接收到的输出。

state _parsed_ 从 running_config 选项读取配置并将其转换为 Ansible 结构化数据,然后根据资源模块的 argspec 将该值返回到结果中的 _parsed_ 密钥中。

state

字符串

模块完成后的配置状态

选项

  • "merged" ← (默认)

  • "parsed"

  • "deleted"

  • "replaced"

  • "rendered"

  • "gathered"

  • "overridden"

注释

注意

示例

# Using merged

# Before state:
# -------------
#
# viosxr#show running-config interface
# interface Loopback888
# !
# interface Loopback999
# !
# interface MgmtEth0/RP0/CPU0/0
#  ipv4 address dhcp
# !

- name: Configure Ethernet interfaces
  cisco.iosxr.iosxr_interfaces:
    config:
      - name: GigabitEthernet0/0/0/2
        description: Configured by Ansible
        enabled: true
      - name: GigabitEthernet0/0/0/3
        description: Configured by Ansible Network
        enabled: false
        duplex: full
    state: merged

# Task Output
# -----------
#
# before:
# - enabled: true
#   name: Loopback888
# - enabled: true
#   name: Loopback999
# commands:
# - interface GigabitEthernet0/0/0/2
# - description Configured by Ansible
# - no shutdown
# - interface GigabitEthernet0/0/0/3
# - description Configured by Ansible Network
# - duplex full
# - shutdown
# after:
# - enabled: true
#   name: Loopback888
# - enabled: true
#   name: Loopback999
# - description: Configured by Ansible
#   enabled: true
#   name: GigabitEthernet0/0/0/2
# - description: Configured by Ansible Network
#   duplex: full
#   enabled: false
#   name: GigabitEthernet0/0/0/3

# After state:
# ------------
#
# viosxr#show running-config interface
# interface Loopback888
# !
# interface Loopback999
# !
# interface MgmtEth0/RP0/CPU0/0
#  ipv4 address dhcp
# !
# interface preconfigure GigabitEthernet0/0/0/2
#  description Configured by Ansible
# !
# interface preconfigure GigabitEthernet0/0/0/3
#  description Configured by Ansible Network
#  duplex full
#  shutdown
# !

# Using replaced

# Before state:
# ------------
#
# viosxr#show running-config interface
# interface Loopback888
# !
# interface Loopback999
# !
# interface MgmtEth0/RP0/CPU0/0
#  ipv4 address dhcp
# !
# interface preconfigure GigabitEthernet0/0/0/2
#  description Configured by Ansible
# !
# interface preconfigure GigabitEthernet0/0/0/3
#  description Configured by Ansible Network
#  duplex full
#  shutdown
# !

- name: Replace their existing configuration per interface
  cisco.iosxr.iosxr_interfaces:
    config:
      - name: GigabitEthernet0/0/0/2
        description: Configured by Ansible
        enabled: true
        mtu: 2000
      - name: GigabitEthernet0/0/0/3
        description: Configured by Ansible Network
        enabled: false
        duplex: auto
    state: replaced

# Task Output
# -----------
#
# before:
# - enabled: true
#   name: Loopback888
# - enabled: true
#   name: Loopback999
# - description: Configured by Ansible
#   enabled: true
#   name: GigabitEthernet0/0/0/2
# - description: Configured by Ansible Network
#   duplex: full
#   enabled: false
#   name: GigabitEthernet0/0/0/3
# commands:
# - interface GigabitEthernet0/0/0/2
# - mtu 2000
# - interface GigabitEthernet0/0/0/3
# - duplex half
# after:
# - enabled: true
#   name: Loopback888
# - enabled: true
#   name: Loopback999
# - description: Configured by Ansible
#   enabled: true
#   mtu: 2000
#   name: GigabitEthernet0/0/0/2
# - description: Configured by Ansible Network
#   duplex: half
#   enabled: false
#   name: GigabitEthernet0/0/0/3

# After state:
# ------------
#
# viosxr#show running-config interface
# interface Loopback888
# !
# interface Loopback999
# !
# interface MgmtEth0/RP0/CPU0/0
#  ipv4 address dhcp
# !
# interface preconfigure GigabitEthernet0/0/0/2
#  description Configured by Ansible
#  mtu 2000
# !
# interface preconfigure GigabitEthernet0/0/0/3
#  description Configured by Ansible Network
#  duplex half
#  shutdown
# !

# Using overridden

# Before state:
# ------------
#
# viosxr#show running-config interface
# interface Loopback888
# !
# interface Loopback999
# !
# interface MgmtEth0/RP0/CPU0/0
#  ipv4 address dhcp
# !
# interface preconfigure GigabitEthernet0/0/0/2
#  description Configured by Ansible
#  mtu 2000
# !
# interface preconfigure GigabitEthernet0/0/0/3
#  description Configured by Ansible Network
#  duplex half
#  shutdown
# !

- name: Override interfaces configuration
  cisco.iosxr.iosxr_interfaces:
    config:
      - name: GigabitEthernet0/0/0/2
        description: Configured by Ansible
        enabled: true
        duplex: auto
      - name: GigabitEthernet0/0/0/3
        description: Configured by Ansible Network
        enabled: false
        speed: 1000
    state: overridden

# Task Output
# -----------
#
# before:
# - enabled: true
#   name: Loopback888
# - enabled: true
#   name: Loopback999
# - description: Configured by Ansible
#   enabled: true
#   mtu: 2000
#   name: GigabitEthernet0/0/0/2
# - description: Configured by Ansible Network
#   duplex: half
#   enabled: false
#   name: GigabitEthernet0/0/0/3
# commands:
# - interface GigabitEthernet0/0/0/2
# - no mtu
# - duplex half
# - interface GigabitEthernet0/0/0/3
# - no description
# - no shutdown
# - no duplex
# after:
# - enabled: true
#   name: Loopback888
# - enabled: true
#   name: Loopback999
# - description: Configured by Ansible
#   duplex: half
#   enabled: true
#   name: GigabitEthernet0/0/0/2
# - enabled: true
#   name: GigabitEthernet0/0/0/3

# After state:
# ------------
#
# viosxr#show running-config interface
# interface Loopback888
# !
# interface Loopback999
# !
# interface MgmtEth0/RP0/CPU0/0
#  ipv4 address dhcp
# !
# interface preconfigure GigabitEthernet0/0/0/2
#  description Configured by Ansible
#  duplex half
# !
# interface preconfigure GigabitEthernet0/0/0/3
# !

# Using deleted

# Before state:
# ------------
#
# viosxr#show running-config interface
# interface Loopback888
# !
# interface Loopback999
# !
# interface MgmtEth0/RP0/CPU0/0
#  ipv4 address dhcp
# !
# interface preconfigure GigabitEthernet0/0/0/2
#  description Configured by Ansible
#  duplex half
# !
# interface preconfigure GigabitEthernet0/0/0/3
# !

- name: Delete interfaces arguments
  cisco.iosxr.iosxr_interfaces:
    config:
      - name: GigabitEthernet0/0/0/2
      - name: GigabitEthernet0/0/0/3
    state: deleted

# Task Output
# -----------
#
# before:
# - enabled: true
#   name: Loopback888
# - enabled: true
#   name: Loopback999
# - description: Configured by Ansible
#   duplex: half
#   enabled: true
#   name: GigabitEthernet0/0/0/2
# - enabled: true
#   name: GigabitEthernet0/0/0/3
# commands:
# - interface GigabitEthernet0/0/0/2
# - no description
# - no duplex
# after:
# - enabled: true
#   name: Loopback888
# - enabled: true
#   name: Loopback999
# - enabled: true
#   name: GigabitEthernet0/0/0/2
# - enabled: true
#   name: GigabitEthernet0/0/0/3

# After state:
# ------------
#
# viosxr#show running-config interface
# interface Loopback888
# !
# interface Loopback999
# !
# interface MgmtEth0/RP0/CPU0/0
#  ipv4 address dhcp
# !
# interface preconfigure GigabitEthernet0/0/0/2
# !
# interface preconfigure GigabitEthernet0/0/0/3
# !

# Using parsed

# File: parsed.cfg
# ----------------
#
# interface Loopback888
#  description test for ansible
#  shutdown
# !
# interface MgmtEth0/0/CPU0/0
#  ipv4 address 10.8.38.70 255.255.255.0
# !
# interface GigabitEthernet0/0/0/0
#  description Configured and Merged by Ansible-Network
#  mtu 110
#  ipv4 address 172.31.1.1 255.255.255.0
#  duplex half
# !
# interface GigabitEthernet0/0/0/3
#  shutdown
# !
# interface GigabitEthernet0/0/0/4
#  shutdown
# !

# - name: Parse provided configuration
#   cisco.iosxr.iosxr_interfaces:
#     running_config: "{{ lookup('file', './parsed.cfg') }}"
#     state: parsed

# Task Output
# -----------
#
# parsed:
# - name: MgmtEth0/RP0/CPU0/0
# - access_groups:
#   - acls:
#     - direction: in
#       name: acl_1
#     - direction: out
#       name: acl_2
#     afi: ipv4
#   - acls:
#     - direction: in
#       name: acl6_1
#     - direction: out
#       name: acl6_2
#     afi: ipv6
#   name: GigabitEthernet0/0/0/0
# - access_groups:
#   - acls:
#     - direction: out
#       name: acl_1
#     afi: ipv4
#   name: GigabitEthernet0/0/0/1


# Using rendered

- name: Render platform specific commands from task input using rendered state
  cisco.iosxr.iosxr_interfaces:
    config:
      - name: GigabitEthernet0/0/0/0
        description: Configured and Merged by Ansible-Network
        mtu: 110
        enabled: true
        duplex: half
      - name: GigabitEthernet0/0/0/1
        description: Configured and Merged by Ansible-Network
        mtu: 2800
        enabled: false
        speed: 100
        duplex: full
    state: rendered

# Task Output
# -----------
#
# rendered:
# - interface GigabitEthernet0/0/0/0
# - description Configured and Merged by Ansible-Network
# - mtu 110
# - duplex half
# - no shutdown
# - interface GigabitEthernet0/0/0/1
# - description Configured and Merged by Ansible-Network
# - mtu 2800
# - speed 100
# - duplex full
# - shutdown


# Using gathered

# Before state:
# ------------
#
# RP/0/0/CPU0:an-iosxr-02#show running-config  interface
# interface Loopback888
# description test for ansible
# shutdown
# !
# interface MgmtEth0/0/CPU0/0
# ipv4 address 10.8.38.70 255.255.255.0
# !
# interface GigabitEthernet0/0/0/0
# description Configured and Merged by Ansible-Network
# mtu 110
# ipv4 address 172.31.1.1 255.255.255.0
# duplex half
# !
# interface GigabitEthernet0/0/0/3
# shutdown
# !
# interface GigabitEthernet0/0/0/4
# shutdown
# !

- name: Gather facts for interfaces
  cisco.iosxr.iosxr_interfaces:
    config:
    state: gathered

# Task Output
# -----------
#
# gathered:
# - description: test for ansible
#   enabled: false
#   name: Loopback888
# - description: Configured and Merged by Ansible-Network
#   duplex: half
#   enabled: true
#   mtu: 110
#   name: GigabitEthernet0/0/0/0
# - enabled: false
#   name: GigabitEthernet0/0/0/3
# - enabled: false
#   name: GigabitEthernet0/0/0/4

返回值

此处记录了常见的返回值 此处,以下是此模块独有的字段

描述

after

列表 / 元素=字符串

模块完成后的结构化数据配置。

返回:发生更改时

示例: ["The configuration returned will always be in the same format of the parameters above."]

before

列表 / 元素=字符串

模块调用之前的结构化数据配置。

返回:始终

示例: ["The configuration returned will always be in the same format of the parameters above."]

commands

列表 / 元素=字符串

推送到远程设备的命令集

返回:始终

示例: ["interface GigabitEthernet0/0/0/2", "description: Configured by Ansible", "shutdown"]

作者

  • Sumit Jaiswal (@justjais)

  • Rohit Thakur (@rohitthakur2590)