cisco.nxos.nxos_vlans 模块 – VLAN 资源模块

注意

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

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

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

要在 playbook 中使用它,请指定:cisco.nxos.nxos_vlans

cisco.nxos 1.0.0 中的新增功能

概要

  • 此模块创建和管理 Cisco NX-OS 上的 VLAN 配置。

参数

参数

注释

config

列表 / 元素=字典

VLAN 选项的字典

enabled

布尔值

管理 VLAN 的管理状态。

选项

  • false

  • true

mapped_vni

整数

映射到 VLAN 的虚拟网络标识符 (VNI) ID。

mode

字符串

将 VLAN 模式设置为经典以太网或 FabricPath。这是 Nexus 5000、6000 和 7000 系列的有效选项。

选项

  • "ce"

  • "fabricpath"

name

字符串

VLAN 的名称。

state

字符串

管理 VLAN 的操作状态。

选项

  • "active"

  • "suspend"

vlan_id

整数 / 必填

VLAN ID。

running_config

字符串

此选项仅与 state *parsed* 一起使用。

此选项的值应为通过依次执行命令 **show vlans | json-pretty** 和 **show running-config | section ^vlan** 并以换行符分隔从 NX-OS 设备接收到的输出。

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

state

字符串

模块完成后的配置状态。

state *overridden* 将使用任务中提供的配置覆盖设备上所有 VLAN(包括 VLAN 1)的配置。使用此状态时请谨慎。

选项

  • "merged" ← (默认)

  • "replaced"

  • "overridden"

  • "deleted"

  • "gathered"

  • "rendered"

  • "parsed"

注释

注意

  • 在 VIRL 上针对 NXOS 7.3.(0)D1(1) 测试

  • 不支持 Cisco MDS

示例

# Using merged

# Before state:
# -------------
# vlan 1

- name: Merge provided configuration with device configuration.
  cisco.nxos.nxos_vlans:
    config:
      - vlan_id: 5
        name: test-vlan5
      - vlan_id: 10
        enabled: false
    state: merged

# After state:
# ------------
# vlan 5
#   name test-vlan5
#   state active
#   no shutdown
# vlan 10
#   state active
#   shutdown


# Using replaced

# Before state:
# -------------
# vlan 1
# vlan 5
#   name test-vlan5
# vlan 10
#   shutdown

- name: Replace device configuration of specified vlan with provided configuration.
  cisco.nxos.nxos_vlans:
    config:
      - vlan_id: 5
        name: test-vlan
        enabled: false
      - vlan_id: 10
        enabled: false
    state: replaced

# After state:
# ------------
# vlan 1
# vlan 5
#   name test-vlan
#   state active
#   shutdown
# vlan 10
#   state active
#   shutdown


# Using overridden

# Before state:
# -------------
# vlan 1
# vlan 3
#   name testing
# vlan 5
#   name test-vlan5
#   shutdown
# vlan 10
#   shutdown

- name: Override device configuration of all vlans with provided configuration.
  cisco.nxos.nxos_vlans:
    config:
      - vlan_id: 5
        name: test-vlan
      - vlan_id: 10
        state: active
    state: overridden

# After state:
# ------------
# vlan 5
#   name test-vlan
#   state active
#   no shutdown
# vlan 10
#   state active
#   no shutdown


# Using deleted

# Before state:
# -------------
# vlan 1
# vlan 5
# vlan 10

- name: Delete vlans.
  cisco.nxos.nxos_vlans:
    config:
      - vlan_id: 5
      - vlan_id: 10
    state: deleted

# After state:
# ------------
#

# Using rendered

- name: Use rendered state to convert task input to device specific commands
  cisco.nxos.nxos_vlans:
    config:
      - vlan_id: 5
        name: vlan5
        mapped_vni: 100

      - vlan_id: 6
        name: vlan6
        state: suspend
    state: rendered

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

# rendered:
#   - vlan 5
#   - name vlan5
#   - vn-segment 100
#   - vlan 6
#   - name vlan6
#   - state suspend

# Using parsed

# parsed.cfg
# ------------
# {
#     "TABLE_vlanbrief": {
#        "ROW_vlanbrief": [
#            {
#                "vlanshowbr-vlanid": "1",
#                "vlanshowbr-vlanid-utf": "1",
#                "vlanshowbr-vlanname": "default",
#                "vlanshowbr-vlanstate": "active",
#                "vlanshowbr-shutstate": "noshutdown"
#            },
#            {
#                "vlanshowbr-vlanid": "5",
#                "vlanshowbr-vlanid-utf": "5",
#                "vlanshowbr-vlanname": "vlan5",
#                "vlanshowbr-vlanstate": "suspend",
#                "vlanshowbr-shutstate": "noshutdown"
#            },
#            {
#                "vlanshowbr-vlanid": "6",
#                "vlanshowbr-vlanid-utf": "6",
#                "vlanshowbr-vlanname": "VLAN0006",
#                "vlanshowbr-vlanstate": "active",
#                "vlanshowbr-shutstate": "noshutdown"
#            },
#            {
#                "vlanshowbr-vlanid": "7",
#                "vlanshowbr-vlanid-utf": "7",
#                "vlanshowbr-vlanname": "vlan7",
#                "vlanshowbr-vlanstate": "active",
#                "vlanshowbr-shutstate": "noshutdown"
#            }
#        ]
#    },
#    "TABLE_mtuinfo": {
#        "ROW_mtuinfo": [
#            {
#                "vlanshowinfo-vlanid": "1",
#                "vlanshowinfo-media-type": "enet",
#                "vlanshowinfo-vlanmode": "ce-vlan"
#            },
#            {
#                "vlanshowinfo-vlanid": "5",
#                "vlanshowinfo-media-type": "enet",
#                "vlanshowinfo-vlanmode": "ce-vlan"
#            },
#            {
#                "vlanshowinfo-vlanid": "6",
#                "vlanshowinfo-media-type": "enet",
#                "vlanshowinfo-vlanmode": "ce-vlan"
#            },
#            {
#                "vlanshowinfo-vlanid": "7",
#                "vlanshowinfo-media-type": "enet",
#                "vlanshowinfo-vlanmode": "ce-vlan"
#             }
#        ]
#    }
# }
#
# vlan 1,5-7
# vlan 5
#   state suspend
#   name vlan5
# vlan 7
#   name vlan7
#   vn-segment 100

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

# Task output (redacted)
# -----------------------

# parsed:
#   - vlan_id: 5
#     enabled: True
#     mode: "ce"
#     name: "vlan5"
#     state: suspend
#
#   - vlan_id: 6
#     enabled: True
#     mode: "ce"
#     state: active
#
#   - vlan_id: 7
#     enabled: True
#     mode: "ce"
#     name: "vlan7"
#     state: active
#     mapped_vni: 100

# Using gathered

# Existing device config state
# -------------------------------
# nxos-9k# show vlan | json
# {"TABLE_vlanbrief": {"ROW_vlanbrief": [{"vlanshowbr-vlanid": "1", "vlanshowbr-vlanid-utf": "1", "vlanshowbr-vlanname": "default", "vlanshowbr-vlanstate
# ": "active", "vlanshowbr-shutstate": "noshutdown"}, {"vlanshowbr-vlanid": "5", "vlanshowbr-vlanid-utf": "5", "vlanshowbr-vlanname": "vlan5", "vlanshowb
# r-vlanstate": "suspend", "vlanshowbr-shutstate": "noshutdown"}, {"vlanshowbr-vlanid": "6", "vlanshowbr-vlanid-utf": "6", "vlanshowbr-vlanname": "VLAN00
# 06", "vlanshowbr-vlanstate": "active", "vlanshowbr-shutstate": "noshutdown"}, {"vlanshowbr-vlanid": "7", "vlanshowbr-vlanid-utf": "7", "vlanshowbr-vlan
# name": "vlan7", "vlanshowbr-vlanstate": "active", "vlanshowbr-shutstate": "shutdown"}]}, "TABLE_mtuinfo": {"ROW_mtuinfo": [{"vlanshowinfo-vlanid": "1",
# "vlanshowinfo-media-type": "enet", "vlanshowinfo-vlanmode": "ce-vlan"}, {"vlanshowinfo-vlanid": "5", "vlanshowinfo-media-type": "enet", "vlanshowinfo-
# vlanmode": "ce-vlan"}, {"vlanshowinfo-vlanid": "6", "vlanshowinfo-media-type": "enet", "vlanshowinfo-vlanmode": "ce-vlan"}, {"vlanshowinfo-vlanid": "7"
# , "vlanshowinfo-media-type": "enet", "vlanshowinfo-vlanmode": "ce-vlan"}]}}
#
# nxos-9k#  show running-config | section ^vlan
# vlan 1,5-7
# vlan 5
#   state suspend
#   name vlan5
# vlan 7
#   shutdown
#   name vlan7
#   vn-segment 190

- name: Gather vlans facts from the device using nxos_vlans
  cisco.nxos.nxos_vlans:
    state: gathered

# Task output (redacted)
# -----------------------
# gathered:
#   - vlan_id: 5
#     enabled: True
#     mode: "ce"
#     name: "vlan5"
#     state: suspend
#
#   - vlan_id: 6
#     enabled: True
#     mode: "ce"
#     state: active
#
#   - vlan_id: 7
#     enabled: False
#     mode: "ce"
#     name: "vlan7"
#     state: active
#     mapped_vni: 190

返回值

常用的返回值已在 此处 记录,以下是此模块特有的字段

描述

after

列表 / 元素=字符串

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

返回:已更改时

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

before

列表 / 元素=字符串

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

返回:始终返回

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

commands

列表 / 元素=字符串

推送到远程设备的命令集。

返回:始终返回

示例: ["vlan 5", "name test-vlan5", "state suspend"]

作者

  • Trishna Guha (@trishnaguha)