cisco.dnac.discovery_workflow_manager 模块 – 一个用于处理设备发现任务的资源模块。

注意

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

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

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

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

cisco.dnac 6.6.0 中的新增功能

概要

  • 使用 IP 地址、地址范围、CDP 和 LLDP 管理设备发现,包括删除已发现的设备。

  • 用于发现一个或多个设备的 API

  • 用于删除一个或多个设备发现的 API

要求

执行此模块的主机需要满足以下要求。

  • dnacentersdk == 2.6.10

  • python >= 3.9

参数

参数

注释

config

列表 / 元素=字典 / 必需

正在管理的设备的详细信息列表。

cdp_level

整数

CDP 发现方法中的总层数

默认值: 16

delete_all

布尔值

一次删除所有发现的参数

选项

  • false ←(默认)

  • true

discovery_name

字符串 / 必需

发现任务的名称

discovery_specific_credentials

字典

用户专门为执行设备发现而创建的凭据。

cli_credentials_list

列表 / 元素=字典

设备发现期间要使用的 CLI 凭据列表。

enable_password

字符串

CLI 身份验证的启用密码,使用 CLI 凭据时是强制性的。

password

字符串

CLI 身份验证的密码,使用 CLI 凭据时是强制性的。

username

字符串

CLI 身份验证的用户名,使用 CLI 凭据时是强制性的。

http_read_credential

字典

HTTP 读取凭据用于身份验证,专门用于授予从设备对某些资源的只读访问权限。

password

字符串

HTTP(S) 读取身份验证的密码,使用 HTTP 凭据时是强制性的。

port

整数

HTTP(S) 读取身份验证的端口,使用 HTTP 凭据时是强制性的。

secure

布尔值

HTTP(S) 读取身份验证的标志,使用 HTTP 凭据时不是强制性的。

选项

  • false

  • true

username

字符串

HTTP(S) 读取身份验证的用户名,使用 HTTP 凭据时是强制性的。

http_write_credential

字典

HTTP 写入凭据用于身份验证,并授予 Cisco Catalyst Center 更改网络设备上的配置、更新软件或执行其他修改的能力。

password

字符串

HTTP(S) 写入身份验证的密码,使用 HTTP 凭据时是强制性的。

port

整数

HTTP(S) 写入身份验证的端口,使用 HTTP 凭据时是强制性的。

secure

布尔值

HTTP(S) 写入身份验证的标志,使用 HTTP 凭据时不是强制性的。

选项

  • false

  • true

username

字符串

HTTP(S) 写入身份验证的用户名,使用 HTTP 凭据时是强制性的。

net_conf_port

字符串

当网络包含基于 IOS XE 的无线控制器时使用。

这用于发现和启用控制器上的无线服务。

需要有效的 SSH 凭据才能工作。

避免使用 22、80 和 8080 等标准端口。

snmp_v2_read_credential

字典

要创建并用于通过 SNMP 协议以读取模式联系设备的 SNMP v2 凭据。

SNMP v2 也提供数据加密,但它使用数据类型。

community

字符串

SNMP V2 读取团体字符串使 Cisco Catalyst Center 能够从设备提取只读数据。

description

字符串

SNMP 读取凭据的名称/描述,用于创建 snmp_v2_read_credential。

snmp_v2_write_credential

字典

要创建并用于通过 SNMP 协议以读取和写入模式联系设备的 SNMP v2 凭据。

SNMP v2 也提供数据加密,但它使用数据类型。

community

字符串

SNMP V2 写入团体字符串用于提取数据和更改设备配置。

description

字符串

SNMP 写入凭据的名称/描述,用于创建 snmp_v2_write_credential。

snmp_v3_credential

字典

要创建并用于通过 SNMP 协议以读取和写入模式联系设备的 SNMP v3 凭据。

SNMPv3 是 SNMP 最安全的版本,允许用户完全加密传输,从而保护我们免受外部攻击者的侵害。

auth_password

字符串

要使用的 SNMP v3 协议的身份验证密码。

长度必须大于 7 个字符。

对于 NOAUTHNOPRIV snmp_mode 不是必需的。

auth_type

字符串

要使用的 SNMP v3 协议的身份验证类型。

SHA 使用安全哈希算法 (SHA) 作为您的身份验证协议。

MD5 使用消息摘要 5 (MD5) 作为您的身份验证协议,不建议使用。

对于 NOAUTHNOPRIV snmp_mode 不是必需的。

选项

  • "SHA"

  • "MD5"

privacy_password

字符串

要在 AUTHPRIV SNMP 模式中使用的 SNMP v3 协议的隐私密码

对于 AUTHNOPRIV 和 NOAUTHNOPRIV snmp_mode 不是必需的。

privacy_type

字符串

要在 AUTHPRIV SNMP 模式中使用的 SNMP v3 协议的隐私类型/协议

对于 AUTHNOPRIV 和 NOAUTHNOPRIV snmp_mode 不是必需的。

选项

  • "AES128"

  • "AES192"

  • "AES256"

snmp_mode

字符串

SNMP 的模式,它决定了我们团体字符串的加密级别。

AUTHPRIV 模式同时使用身份验证和加密。

AUTHNOPRIV 模式使用身份验证但不使用加密。

NOAUTHNOPRIV 模式既不使用身份验证也不使用加密。

选项

  • "AUTHPRIV"

  • "AUTHNOPRIV"

  • "NOAUTHNOPRIV"

username

字符串

要使用的 SNMP v3 协议的用户名。

discovery_type

字符串 / 必需

确定设备发现的方法。以下是可用选项。- SINGLE 使用单个 IP 地址发现单个设备。- RANGE 在单个 IP 地址范围内发现多个设备。- MULTI RANGE 在多个 IP 地址范围中发现设备。- CDP 使用 Cisco 发现协议来发现在给定 IP 地址的后续层中的设备。- LLDP 使用链路层发现协议来发现在指定 IP 地址的后续层中的设备。- CIDR 基于使用无类别域间路由的子网过滤来发现设备。

选项

  • "单次"

  • "范围"

  • "多 范围"

  • "CDP"

  • "LLDP"

  • "CIDR"

global_credentials

字典

在 cisco.dnac 6.12.0 中添加

一组各种凭据类型,包括 CLI、SNMP、HTTP 和 NETCONF,用户已在 Cisco Catalyst Center 的设备凭据部分预先配置这些凭据。

如果用户在 playbook 中未传递任何全局凭据,则默认情况下,我们将使用 Cisco Catalyst Center 中每种类型的所有全局凭据来执行发现。(最多允许 5 个)

cli_credentials_list

列表 / 元素=字典

接受用于设备发现的全局 CLI 凭据列表。

建议创建具有唯一用户名和清晰描述的设备凭据。

description

字符串

CLI 凭据的名称,使用全局 CLI 凭据时为必填项。

username

字符串

CLI 身份验证所需的用户名,使用全局 CLI 凭据时为必填项。

http_read_credential_list

列表 / 元素=字典

将在设备发现过程中使用的全局 HTTP 读取凭据列表。

建议创建具有唯一用户名和清晰描述的设备凭据,以便于识别。

description

字符串

HTTP 读取凭据的名称,使用全局 HTTP 凭据时为必填项。

username

字符串

HTTP 读取身份验证的用户名,使用全局 HTTP 凭据时为必填项。

http_write_credential_list

列表 / 元素=字典

将在设备发现过程中使用的全局 HTTP 写入凭据列表。

建议创建具有唯一用户名和清晰描述的设备凭据,以便于识别。

description

字符串

HTTP 写入凭据的名称,使用全局 HTTP 凭据时为必填项。

username

字符串

HTTP 写入身份验证的用户名,使用全局 HTTP 凭据时为必填项。

net_conf_port_list

列表 / 元素=字典

设备发现期间要使用的全局 Net conf 端口列表。

建议创建具有唯一描述的设备凭据。

description

字符串

Net Conf 端口凭据的名称,使用全局 Net conf 端口时为必填项。

snmp_v2_read_credential_list

列表 / 元素=字典

设备发现期间要使用的全局 SNMP V2 读取凭据列表。

建议创建具有清晰描述的设备凭据,以便于识别。

description

字符串

SNMP 读取凭据的名称,使用全局 SNMP 凭据时为必填项。

snmp_v2_write_credential_list

列表 / 元素=字典

设备发现期间要使用的全局 SNMP V2 写入凭据列表。

建议创建具有清晰描述的设备凭据,以便于识别。

description

字符串

SNMP 写入凭据的名称,使用全局 SNMP 凭据时为必填项。

snmp_v3_credential_list

列表 / 元素=字典

设备发现期间要使用的全局 SNMP V3 凭据列表,提供读取和写入模式。

建议创建具有唯一用户名和清晰描述的设备凭据,以便于识别。

description

字符串

SNMP V3 凭据的名称,使用全局 SNMP 凭据时为必填项。

username

字符串

SNMP V3 身份验证的用户名,使用全局 SNMP 凭据时为必填项。

ip_address_list

list / elements=string / required

要发现的 IP 地址列表。对于基于 CDP/LLDP/单次的发现,我们应该传递一个包含单个元素的列表,例如 - 10.197.156.22。对于基于 CIDR 的发现,我们应该传递一个包含单个元素的列表,例如 - 10.197.156.22/22。对于基于范围的发现,我们应该传递一个包含单个元素和范围的列表,例如 - 10.197.156.1-10.197.156.100。对于基于多范围的发现,我们应该传递一个包含多个元素的列表,例如 - 10.197.156.1-10.197.156.100,并在下一行中包含 - 10.197.157.1-10.197.157.100。最多允许 8 个 IP 地址范围。

ip_filter_list

list / elements=string

需要从传递的 IP 地址中过滤掉的 IP 地址列表。

lldp_level

整数

lldp 发现方法中的总层数

默认值: 16

preferred_mgmt_ip_method

字符串

管理 IP 的首选方法(无/使用环回)

默认: "None"

protocol_order

字符串

确定尝试设备连接的顺序。以下是选项 - “telnet”:仅尝试 telnet 连接。- “ssh, telnet”:首先尝试 SSH(安全外壳),如果 SSH 失败,则尝试 telnet。

默认: "ssh"

records_to_return

整数

在获取全局 v2 凭据时要返回的标头记录数

默认: 100

retry

整数

尝试建立设备连接的次数

start_index

整数

在获取 SNMP v2 凭据时标头的起始索引

默认: 1

timeout

整数

等待设备响应的时间(以秒为单位)

use_global_credentials

布尔值

确定设备发现是否应使用预配置的全局凭据。

设置为 True 时,将使用预定义的全局凭据进行发现任务。这是默认设置。

设置为 False 时,需要手动提供特定于设备的凭据进行发现,因为将绕过全局凭据。

选项

  • false

  • true ← (默认)

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"

state

字符串

模块完成后 Cisco Catalyst Center 的状态。

选项

  • "merged" ← (默认)

  • "已删除"

validate_response_schema

布尔值

Cisco Catalyst Center SDK 的标志,用于启用针对 JSON 架构的请求主体验证。

选项

  • false

  • true ← (默认)

备注

注意

  • 使用的 SDK 方法是 discovery.Discovery.get_all_global_credentials_v2、discovery.Discovery.start_discovery、task.Task.get_task_by_id、discovery.Discovery.get_discoveries_by_range、discovery.Discovery.get_discovered_network_devices_by_discovery_id’、discovery.Discovery.delete_discovery_by_id discovery.Discovery.delete_all_discovery discovery.Discovery.get_count_of_all_discovery_jobs

  • 使用的路径是 get /dna/intent/api/v2/global-credential post /dna/intent/api/v1/discovery get /dna/intent/api/v1/task/{taskId} get /dna/intent/api/v1/discovery/{startIndex}/{recordsToReturn} get /dna/intent/api/v1/discovery/{id}/network-device delete /dna/intent/api/v1/discovery/{id} delete /dna/intent/api/v1/delete get /dna/intent/api/v1/discovery/count

  • 在 v6.12.0 中删除了“global_cli_len”选项。

  • 不支持 check_mode

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

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

示例

- name: Execute discovery of devices with both global credentials and discovery specific credentials
  cisco.dnac.discovery_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: "{{dnac_log_level}}"
    state: merged
    config_verify: True
    config:
        - discovery_name: Discovery with both global and job specific credentials
          discovery_type: RANGE
          ip_address_list:
            - 201.1.1.1-201.1.1.100
          ip_filter_list:
            - 201.1.1.2
            - 201.1.1.10
          discovery_specific_credentials:
            cli_credentials_list:
                - username: cisco
                  password: Cisco123
                  enable_password: Cisco123
            http_read_credential:
                username: cisco
                password: Cisco123
                port: 443
                secure: true
            http_write_credential:
                username: cisco
                password: Cisco123
                port: 443
                secure: True
            snmp_v2_read_credential:
                description: snmp_v2-new
                community: Cisco123
            snmp_v2_write_credential:
                description: snmp_v2-new
                community: Cisco123
            snmp_v3_credential:
                username: v3Public2
                snmp_mode: AUTHPRIV
                auth_type: SHA
                auth_password: Lablab123
                privacy_type: AES256
                privacy_password: Lablab123
            net_conf_port: 750
          global_credentials:
            cli_credentials_list:
                - description: ISE
                  username: cisco
                - description: CLI1234
                  username: cli
            http_read_credential_list:
                - description: HTTP Read
                  username: HTTP_Read
            http_write_credential_list:
                - description: HTTP Write
                  username: HTTP_Write
            snmp_v3_credential_list:
                - description: snmpV3
                  username: snmpV3
            snmp_v2_read_credential_list:
                - description: snmpV2_read
            snmp_v2_write_credential_list:
                - description: snmpV2_write
            net_conf_port_list:
                - description: Old_one
          start_index: 1
          records_to_return: 100
          protocol_order: ssh
          retry: 5
          timeout: 3

- name: Execute discovery of devices with discovery specific credentials only
  cisco.dnac.discovery_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: "{{dnac_log_level}}"
    state: merged
    config_verify: True
    config:
        - discovery_name: Single with discovery specific credentials only
          discovery_type: SINGLE
          ip_address_list:
            - 204.1.1.10
          discovery_specific_credentials:
            cli_credentials_list:
                - username: cisco
                  password: Cisco123
                  enable_password: Cisco123
            http_read_credential:
                username: cisco
                password: Cisco123
                port: 443
                secure: true
            http_write_credential:
                username: cisco
                password: Cisco123
                port: 443
                secure: True
            snmp_v2_read_credential:
                description: snmp_v2-new
                community: Cisco123
            snmp_v2_write_credential:
                description: snmp_v2-new
                community: Cisco123
            snmp_v3_credential:
                username: v3Public2
                snmp_mode: AUTHPRIV
                auth_type: SHA
                auth_password: Lablab123
                privacy_type: AES256
                privacy_password: Lablab123
            net_conf_port: 750
          use_global_credentials: False
          start_index: 1
          records_to_return: 100
          protocol_order: ssh
          retry: 5
          timeout: 3

- name: Execute discovery of devices with global credentials only
  cisco.dnac.discovery_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: "{{dnac_log_level}}"
    state: merged
    config_verify: True
    config:
        - discovery_name: CDP with global credentials only
          discovery_type: CDP
          ip_address_list:
            - 204.1.1.1
          cdp_level: 16
          global_credentials:
            cli_credentials_list:
                - description: ISE
                  username: cisco
                - description: CLI1234
                  username: cli
            http_read_credential_list:
                - description: HTTP Read
                  username: HTTP_Read
            http_write_credential_list:
                - description: HTTP Write
                  username: HTTP_Write
            snmp_v3_credential_list:
                - description: snmpV3
                  username: snmpV3
            snmp_v2_read_credential_list:
                - description: snmpV2_read
            snmp_v2_write_credential_list:
                - description: snmpV2_write
            net_conf_port_list:
                - description: Old_one
          start_index: 1
          records_to_return: 100
          protocol_order: ssh
          retry: 5
          timeout: 3

- name: Execute discovery of devices with all the global credentials (max 5 allowed)
  cisco.dnac.discovery_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: "{{dnac_log_level}}"
    state: merged
    config_verify: True
    config:
        - discovery_name: CIDR with all global credentials
          discovery_type: CIDR
          ip_address_list:
            - 204.1.2.0/24
          ip_filter_list:
            - 204.1.2.10
          preferred_mgmt_ip_method: None
          start_index: 1
          records_to_return: 100
          protocol_order: telnet
          retry: 10
          timeout: 3
          use_global_credentials: True

- name: Delete disovery by name
  cisco.dnac.discovery_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: "{{dnac_log_level}}"
    state: deleted
    config_verify: True
    config:
          - discovery_name: Single discovery

返回值

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

描述

response_1

字典

一个字典,包含 Cisco Catalyst Center Python SDK 返回的响应。

返回: 总是

示例: "{\n  \"response\":\n    {\n      \"response\": String,\n      \"version\": String\n    },\n  \"msg\": String\n}\n"

response_2

list / elements=string

一个列表,包含 Cisco Catalyst Center Python SDK 返回的响应。

返回: 总是

示例: ["{\n  \"response\": []", "\n  \"msg\": String\n}\n"]

response_3

字典

一个字符串,包含 Cisco Catalyst Center Python SDK 返回的响应。

返回: 总是

示例: "{\n  \"response\": String,\n  \"msg\": String\n}\n"

作者

  • Abinash Mishra (@abimishr) Phan Nguyen (@phannguy) Madhan Sankaranarayanan (@madhansansel)