cisco.dnac.rma_workflow_manager 模块 – 在 Cisco Catalyst Center 中管理设备更换工作流。

注意

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

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

要安装它,请使用:ansible-galaxy collection install cisco.dnac。 您需要进一步的要求才能使用此模块,请参阅 要求 以了解详细信息。

要在 playbook 中使用它,请指定:cisco.dnac.rma_workflow_manager

cisco.dnac 6.6.0 中的新增功能

概要

  • 此工作流的目的是为网络管理员提供一个简化高效的流程,以发起有故障的网络设备的退货授权 (RMA) 请求。 此自动化旨在简化 RMA 流程,减少人工工作量并提高整体运营效率。

  • 在 Cisco Catalyst Center 内实施 RMA(退货授权)工作流,从而为退回和更换有故障的网络设备提供无缝流程。

  • RMA 工作流有助于更换路由器、交换机和接入点 (AP)。

  • 允许管理员标记要更换的设备并跟踪整个更换工作流。

  • 对于路由器和交换机,软件镜像、配置和许可证将从故障设备恢复到更换设备,确保最大程度地减少中断。

  • 对于无线 AP,更换设备将分配到同一站点,配置有主无线控制器、RF 配置文件和 AP 组设置,并放置在 Cisco Catalyst Center 中与故障 AP 相同的楼层地图位置。

  • 在执行 RMA 之前需要考虑以下事项,- 确保在启动更换过程之前,将故障设备的软件镜像版本导入到镜像存储库中。 - 故障设备必须处于无法访问状态才能有资格进行 RMA。 - 如果更换设备通过即插即用 (PnP) 加入 Cisco Catalyst Center,请确保将故障设备分配给用户定义的站点。 - 在启动 RMA 工作流期间,更换设备不得处于配置状态。 - AP RMA 功能仅支持同类更换,这意味着更换 AP 必须具有与故障 AP 相同的型号和产品 ID (PID)。 - 更换 AP 必须已加入与故障 AP 相同的 Cisco 无线控制器。 - 充当无线控制器的 Cisco Mobility Express AP 不符合通过此 RMA 工作流进行更换的条件。 - 确保在启动更换过程之前,将故障 AP 的软件镜像版本导入到镜像存储库中。 - 如果更换设备通过即插即用 (PnP) 加入 Cisco Catalyst Center,则必须将故障设备分配给用户定义的站点。 - 在启动 RMA 工作流期间,更换 AP 不得处于配置状态。

要求

在执行此模块的主机上需要以下要求。

  • dnacentersdk >= 2.7.2

  • python >= 3.10

参数

参数

注释

ccc_poll_interval

整数

轮询 Cisco Catalyst Center 的间隔(以秒为单位)。

默认: 2

config

列表 / 元素=字典 / 必需

用于启动 RMA 工作流的故障和更换设备详细信息列表。

faulty_device_ip_address

字符串

故障设备的 IP 地址。 示例:204.192.3.40

faulty_device_name

字符串

故障设备的名称或主机名。 示例:SJ-EN-9300.cisco.local

faulty_device_serial_number

字符串

故障设备的序列号。 示例:FJC2327U0S2

replacement_device_ip_address

字符串

更换设备的 IP 地址。 示例:204.1.2.5

replacement_device_name

字符串

更换设备的名称或主机名。 示例:SJ-EN-9300.cisco.local

replacement_device_serial_number

字符串

更换设备的序列号。 示例:FCW2225C020

config_verify

布尔值

设置为 True 以在应用 playbook 配置后验证 Cisco Catalyst Center 配置。

选项

  • false ←(默认)

  • true

dnac_api_task_timeout

整数

定义用于检索任务详细信息的 API 调用的超时时间(以秒为单位)。 如果在此期间未收到任务详细信息,该过程将结束,并且将记录超时通知。

默认: 1200

dnac_debug

布尔值

指示是否在 Cisco Catalyst Center SDK 中启用了调试。

选项

  • false ←(默认)

  • true

dnac_host

字符串 / 必需

Cisco Catalyst Center 的主机名。

dnac_log

布尔值

用于启用/禁用 playbook 执行日志记录的标志。

当为 true 且提供了 dnac_log_file_path 时,- 在执行位置使用指定的名称创建日志文件。

当为 true 且未提供 dnac_log_file_path 时,- 在执行位置创建名为“dnac.log”的日志文件。

当为 false 时,- 禁用日志记录。

如果日志文件不存在,- 则根据“dnac_log_append”标志,以追加或写入模式创建该文件。

如果日志文件存在,则会根据 “dnac_log_append” 标志进行覆盖或追加。

选项

  • false ←(默认)

  • true

dnac_log_append

布尔值

确定文件的模式。设置为 True 表示 ‘追加’ 模式。设置为 False 表示 ‘写入’ 模式。

选项

  • false

  • true ← (默认)

dnac_log_file_path

字符串

控制日志记录。如果 dnac_log 为 True,则会记录日志。

如果未指定路径,则 - 当 ‘dnac_log_append’ 为 True 时,会在当前的 Ansible 目录中生成 ‘dnac.log’;日志会追加。- 当 ‘dnac_log_append’ 为 False 时,会生成 ‘dnac.log’;日志会被覆盖。

如果指定了路径,则 - 当 ‘dnac_log_append’ 为 True 时,文件以追加模式打开。 - 当 ‘dnac_log_append’ 为 False 时,文件以写入 (w) 模式打开。 - 在共享文件场景中,如果没有追加模式,内容会在每次模块执行后被覆盖。 - 对于共享日志文件,第一个模块将追加设置为 False (以进行覆盖);对于后续模块,将追加设置为 True。

默认值: "dnac.log"

dnac_log_level

字符串

设置日志级别的阈值。级别等于或高于此级别的消息将被记录。级别按严重性顺序列出 [CRITICAL, ERROR, WARNING, INFO, DEBUG]。

CRITICAL 表示会停止程序的严重错误。仅显示 CRITICAL 消息。

ERROR 表示阻止功能的错误。显示 ERROR 和 CRITICAL 消息。

WARNING 表示潜在的未来问题。显示 WARNING、ERROR 和 CRITICAL 消息。

INFO 跟踪正常操作。显示 INFO、WARNING、ERROR 和 CRITICAL 消息。

DEBUG 提供详细的诊断信息。显示所有日志消息。

默认值: "WARNING"

dnac_password

字符串

在 Cisco Catalyst Center 进行身份验证的密码。

dnac_port

字符串

指定与 Cisco Catalyst Center 关联的端口号。

默认值: "443"

dnac_task_poll_interval

整数

指定连续调用 API 以检索任务详细信息的时间间隔(以秒为单位)。

默认: 2

dnac_username

别名:user

字符串

在 Cisco Catalyst Center 进行身份验证的用户名。

默认值: "admin"

dnac_verify

布尔值

启用或禁用 SSL 证书验证的标志。

选项

  • false

  • true ← (默认)

dnac_version

字符串

指定 SDK 应使用的 Cisco Catalyst Center 版本。

默认值: "2.2.3.3"

resync_retry_count

整数

重试重新同步的次数。

默认值: 1000

resync_retry_interval

整数

重新同步重试之间的间隔(以秒为单位)。

默认值: 30

state

字符串

“replaced” 状态用于指示在工作流程中用替换网络设备替换故障网络设备。

选项

  • "replaced" ← (默认)

timeout_interval

整数

操作的超时时间间隔(以秒为单位)。

默认值: 100

validate_response_schema

布尔值

Cisco Catalyst Center SDK 的标志,用于启用针对 JSON 模式验证请求正文。

选项

  • false

  • true ← (默认)

注释

注意

  • 使用的 SDK 方法是 - devices.get_device_detail - device_replacement.mark_device_for_replacement - device_replacement.deploy_device_replacement_workflow - device_replacement.unmark_device_for_replacement

  • 使用的路径是 - post /dna/intent/api/v1/device-replacement/workflow - put /dna/intent/api/v1/device-replacement/ - post /dna/intent/api/v1/device-replacement/

  • 限制

  • RMA 仅支持替换相似的设备。例如,Cisco Catalyst 3650 交换机只能替换为另一台 Cisco Catalyst 3650 交换机。故障设备和替换设备的平台 ID 必须匹配。可以使用 `show version` 命令获取 Cisco 设备的型号。

  • RMA 支持替换所有交换机、路由器和 Cisco SD-Access 设备,但以下设备除外:- 基于机箱的 Nexus 7700 系列交换机 - 带有嵌入式无线控制器的设备 - Cisco 无线控制器

  • RMA 支持带有外部 SCEP 代理 PKI 证书的设备。在 RMA 工作流程期间,将为替换设备创建和验证 PKI 证书。必须从证书服务器手动删除已替换的故障设备的 PKI 证书。

  • 仅当满足以下条件时,RMA 工作流程才支持设备替换:- 故障设备和替换设备必须具有相同的扩展卡。- 故障设备必须由 Catalyst Center 使用静态 IP 进行管理。(对于由 Catalyst Center 使用 DHCP IP 管理的设备,不支持 RMA。)- 由于扩展卡,两个设备中的端口数不得不同。- 替换设备必须连接到故障设备所连接的同一端口。

  • Cisco Catalyst Center 不支持旧版许可证部署。

  • 如果故障设备上安装的软件映像早于 Cisco IOS XE 16.8,则必须在替换设备上手动安装相同的旧版网络许可证。

  • RMA 工作流程会从 Cisco SSM 取消注册故障设备,并使用 Cisco SSM 注册替换设备。

  • Cisco Catalyst Center 支持在 Fabric 网络中通过 PnP 载入替换设备,但以下情况除外:- 故障设备使用多个接口连接到上行链路设备。- 使用重叠池的 LAN 自动化。

  • 如果替换设备通过 PnP-DHCP 功能载入,请确保设备在每次重新加载后都收到相同的 IP 地址,并且 DHCP 租约超时时间长于两小时。

  • 不支持 check_mode

  • 该插件在控制节点上运行,不使用任何 ansible 连接插件,而是使用 Cisco Catalyst Center SDK 中的嵌入式连接管理器

  • 以 dnac_ 开头的参数由 Cisco Catalyst Center Python SDK 用于建立连接

示例

- name: RMA workflow for faulty device replacement using device names
  cisco.dnac.rma_workflow_manager:
    dnac_host: "{{ dnac_host }}"
    dnac_username: "{{ dnac_username }}"
    dnac_password: "{{ dnac_password }}"
    dnac_verify: "{{ dnac_verify }}"
    dnac_port: "{{ dnac_port }}"
    dnac_version: "{{ dnac_version }}"
    dnac_debug: "{{ dnac_debug }}"
    dnac_log: true
    dnac_log_level: DEBUG
    config_verify: true
    resync_retry_count: 1000
    resync_retry_interval: 30
    ccc_poll_interval: 2
    timeout_interval: 100
    state: replaced
    config:
      - faulty_device_name: "SJ-EN-9300.cisco.local"
        replacement_device_name: "SJ-EN-9300.cisco-1.local"
  register: result

- name: RMA workflow for faulty device replacement using IP addresses
  cisco.dnac.rma_workflow_manager:
    dnac_host: "{{ dnac_host }}"
    dnac_username: "{{ dnac_username }}"
    dnac_password: "{{ dnac_password }}"
    dnac_verify: "{{ dnac_verify }}"
    dnac_port: "{{ dnac_port }}"
    dnac_version: "{{ dnac_version }}"
    dnac_debug: "{{ dnac_debug }}"
    dnac_log: true
    dnac_log_level: DEBUG
    config_verify: true
    resync_retry_count: 1000
    resync_retry_interval: 30
    ccc_poll_interval: 2
    timeout_interval: 100
    state: replaced
    config:
      - faulty_device_ip_address: "204.192.3.40"
        replacement_device_ip_address: "204.1.2.5"
  register: result

- name: RMA workflow for faulty device replacement using serial numbers
  cisco.dnac.rma_workflow_manager:
    dnac_host: "{{ dnac_host }}"
    dnac_username: "{{ dnac_username }}"
    dnac_password: "{{ dnac_password }}"
    dnac_verify: "{{ dnac_verify }}"
    dnac_port: "{{ dnac_port }}"
    dnac_version: "{{ dnac_version }}"
    dnac_debug: "{{ dnac_debug }}"
    dnac_log: true
    dnac_log_level: DEBUG
    config_verify: true
    resync_retry_count: 1000
    resync_retry_interval: 30
    ccc_poll_interval: 2
    timeout_interval: 100
    state: replaced
    config:
      - faulty_device_serial_number: "FJC2327U0S2"
        replacement_device_serial_number: "FCW2225C020"
  register: result

返回值

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

描述

response_1

字典

包含 API 执行详细信息的对象,由 Cisco Catalyst Center Python SDK 返回。

返回:始终

示例: {"response": {"taskId": "string", "url": "string"}, "version": "string"}

response_2

字典

包含 API 执行详细信息的对象,由 Cisco Catalyst Center Python SDK 返回。

返回:始终

示例: {"response": {"taskId": "string", "url": "string"}, "version": "string"}

response_3

字典

包含 API 执行详细信息的对象,由 Cisco Catalyst Center Python SDK 返回。

返回:始终

示例: {"response": {"taskId": "string", "url": "string"}, "version": "string"}

response_4

字典

包含 API 执行详细信息的对象,由 Cisco Catalyst Center Python SDK 返回。

返回:始终

示例: {"response": {"taskId": "string", "url": "string"}, "version": "string"}

作者

  • Trupti A Shetty (@TruptiAShetty)

  • A Mohamed Rafeek (@mohamedrafeek)

  • Madhan Sankaranarayanan (@madhansansel)

  • Ajith Andrew J (@ajithandrewj)