cisco.dnac.device_credential_workflow_manager 模块 – 全局设备凭据和为站点分配凭据的资源模块。

注意

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

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

要安装它,请使用:ansible-galaxy collection install cisco.dnac。您需要其他要求才能使用此模块,请参阅 要求 以了解详情。

要在剧本中使用它,请指定:cisco.dnac.device_credential_workflow_manager

cisco.dnac 6.7.0 中的新增功能

概要

  • 管理全局设备凭据、为站点分配凭据和将凭据同步到站点设备的操作。

  • 创建全局设备凭据的 API。

  • 更新全局设备凭据的 API。

  • 删除全局设备凭据的 API。

  • 将设备凭据分配给站点的 API。

  • 将设备凭据同步到站点的 API。同步功能适用于 Catalyst Center 版本 2.3.7.6 及更高版本。

要求

以下是执行此模块的主机所需的条件。

  • dnacentersdk >= 2.7.2

  • python >= 3.9

参数

参数

注释

config

列表 / 元素=字典 / 必需

全局设备凭据和站点名称的详细信息列表。

apply_credentials_to_site

字典

将设备凭据同步到站点设备。适用于 Catalyst Center 版本 2.3.7.6 及更高版本。

cli_credential

字典

CLI 凭据。

description

字符串

CLI 凭据描述。

id

字符串

CLI 凭据 ID。使用 (描述、用户名) 或 ID。

username

字符串

CLI 凭据用户名。

site_name

列表 / 元素=字符串

应用凭据的站点名称。

snmp_v2c_read

字典

SNMPv2c 读取凭据

description

字符串

SNMPv2c 读取凭据描述。

id

字符串

SNMPv2c 读取凭据 ID。使用描述或 ID。

snmp_v2c_write

字典

SNMPv2c 写入凭据

description

字符串

SNMPv2c 写入凭据描述。

id

字符串

SNMPv2c 写入凭据 ID。使用描述或 ID。

snmp_v3

字典

snmp_v3 凭据

description

字符串

snmp_v3 凭据描述。

id

字符串

snmp_v3 凭据 ID。使用描述或 ID。

assign_credentials_to_site

字典

将设备凭据分配到站点。

cli_credential

字典

CLI 凭据。

description

字符串

CLI 凭据描述。

id

字符串

CLI 凭据 ID。使用 (描述、用户名) 或 ID。

username

字符串

CLI 凭据用户名。

https_read

字典

HTTP(S) 读取凭据

description

字符串

HTTP(S) 读取凭据描述。

id

字符串

HTTP(S) 读取凭据 ID。使用 (描述、用户名) 或 ID。

username

字符串

HTTP(S) 读取凭据用户名。

https_write

字典

HTTP(S) 写入凭据

description

字符串

HTTP(S) 写入凭据描述。

id

字符串

HTTP(S) 写入凭据 ID。使用 (描述、用户名) 或 ID。

username

字符串

HTTP(S) 写入凭据用户名。

site_name

列表 / 元素=字符串

分配凭据的站点名称。

snmp_v2c_read

字典

SNMPv2c 读取凭据

description

字符串

SNMPv2c 读取凭据描述。

id

字符串

SNMPv2c 读取凭据 ID。使用描述或 ID。

snmp_v2c_write

字典

SNMPv2c 写入凭据

description

字符串

SNMPv2c 写入凭据描述。

id

字符串

SNMPv2c 写入凭据 ID。使用描述或 ID。

snmp_v3

字典

snmp_v3 凭据

description

字符串

snmp_v3 凭据描述。

id

字符串

snmp_v3 凭据 ID。使用描述或 ID。

global_credential_details

字典

管理全局设备凭据

cli_credential

列表 / 元素=字典

全局凭据 V2 的 cliCredential。

description

字符串

描述。创建凭据时必需。

enable_password

字符串

cli_credential 凭据启用密码。

密码不能包含空格或尖括号 (< >)

id

字符串

凭据 ID。用于更新设备凭据。

old_description

字符串

旧描述。用于更新描述/用户名。

old_username

字符串

旧用户名。用于更新描述/用户名。

password

字符串

cli_credential 凭据密码。

创建/更新凭据时必需。

密码不能包含空格或尖括号 (< >)。

username

字符串

cli_credential 凭据用户名。

用户名不能包含空格或尖括号 (< >)。

https_read

列表 / 元素=字典

全局凭据 V2 的 httpsRead。

id

字符串

凭据 ID。用于更新设备凭据。

name

字符串

名称。创建凭据时必需。

old_description

字符串

旧描述。用于更新描述/用户名。

old_username

字符串

旧用户名。用于更新描述/用户名。

password

字符串

https_read 凭据密码。

创建/更新凭据时必需。

密码不能包含空格或尖括号 (< >)。

port

整数

端口。默认端口为 443。

username

字符串

https_read 凭据用户名。

用户名不能包含空格或尖括号 (< >)。

https_write

列表 / 元素=字典

全局凭据 V2 的 httpsWrite。

id

字符串

凭据 ID。用于更新设备凭据。

name

字符串

名称。创建凭据时必需。

old_description

字符串

旧描述。用于更新描述/用户名。

old_username

字符串

旧用户名。用于更新描述/用户名。

password

字符串

https_write 凭据密码。

创建/更新凭据时必需。

密码不能包含空格或尖括号 (< >)。

port

整数

端口。默认端口为 443。

username

字符串

https_write 凭据用户名。

用户名不能包含空格或尖括号 (< >)。

snmp_v2c_read

列表 / 元素=字典

全局凭据 V2 的 snmpV2cRead。

description

字符串

描述。创建凭据时必需。

id

字符串

凭据 ID。用于更新设备凭据。

old_description

字符串

旧描述。用于更新描述。

read_community

字符串

snmp_v2c_read 读取社区。

密码不能包含空格或尖括号 (< >)。

snmp_v2c_write

列表 / 元素=字典

全局凭据 V2 的 snmpV2cWrite。

description

字符串

描述。创建凭据时必需。

id

字符串

凭据 ID。用于更新设备凭据。

old_description

字符串

旧描述。用于更新描述。

write_community

字符串

snmp_v2c_write 写入社区。

密码不能包含空格或尖括号 (< >)。

snmp_v3

列表 / 元素=字典

全局凭据 V2 的 snmpV3。

auth_password

字符串

snmp_v3 身份验证密码。

密码必须至少包含 8 个字符。

密码不能包含空格或尖括号 (< >)。

auth_type

字符串

身份验证类型。[“SHA”, “MD5”]。

description

字符串

snmp_v3 描述。

应与其他 snmp_v3 凭据唯一。

id

字符串

凭据 ID。用于更新设备凭据。

old_description

字符串

旧描述。用于更新描述。

privacy_password

字符串

snmp_v3 私密密码。

密码必须至少包含 8 个字符。

密码不能包含空格或尖括号 (< >)。

privacy_type

字符串

隐私类型。[“AES128”, “AES192”, “AES256”]。

snmp_mode

字符串

SNMP 模式。[“AUTHPRIV”, “AUTHNOPRIV”, “NOAUTHNOPRIV”]。

username

字符串

snmp_v3 凭据用户名。

用户名不能包含空格或尖括号 (< >)。

config_verify

布尔值

设置为 True 以在应用剧本配置后验证 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

布尔值

启用/禁用剧本执行日志记录的标志。

如果为 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) 模式打开。- 在共享文件场景中,如果没有追加模式,则每次模块执行后内容都会被覆盖。- 对于共享日志文件,第一个模块应将 append 设置为 False(以覆盖现有内容);后续模块应将 append 设置为 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" ← (默认)

  • "deleted"

validate_response_schema

布尔值

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

选项

  • false

  • true ← (默认)

注释

注意

  • 使用的 SDK 方法为 discovery.Discovery.create_global_credentials_v2、discovery.Discovery.delete_global_credential_v2、discovery.Discovery.update_global_credentials_v2、network_settings.NetworkSettings.assign_device_credential_to_site_v2、network_settings.NetworkSettings.get_device_credential_settings_for_a_site、network_settings.NetworkSettings.update_device_credential_settings_for_a_site、network_settings.NetworkSettings.sync_network_devices_credential、network_settings.NetworkSettings.get_network_devices_credentials_sync_status、site.Sites.get_site_assigned_network_devices、site.Sites.get_sites

  • 使用的路径为 post /dna/intent/api/v2/global-credential、delete /dna/intent/api/v2/global-credential/{id}、put /dna/intent/api/v2/global-credential、post /dna/intent/api/v2/credential-to-site/{siteId}、get /dna/intent/api/v1/sites/${id}/deviceCredentials、post /dna/intent/api/v1/sites/deviceCredentials/apply、post /dna/intent/api/v1/sites/${id}/deviceCredentials、get /dna/intent/api/v1/sites/${id}/deviceCredentials/status、get /dna/intent/api/v1/networkDevices/assignedToSite、get /dna/intent/api/v1/sites,

  • 不支持 check_mode

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

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

另请参阅

另请参阅

Cisco Catalyst Center 文档,了解 Discovery CreateGlobalCredentialsV2

CreateGlobalCredentialsV2 API 的完整参考。

Cisco Catalyst Center 文档,了解 Discovery DeleteGlobalCredentialV2

DeleteGlobalCredentialV2 API 的完整参考。

Cisco Catalyst Center 文档,了解 Discovery UpdateGlobalCredentialsV2

UpdateGlobalCredentialsV2 API 的完整参考。

Cisco Catalyst Center 文档,了解网络设置 AssignDeviceCredentialToSiteV2

AssignDeviceCredentialToSiteV2 API 的完整参考。

Cisco Catalyst Center 文档,了解网络设置 updateDeviceCredentialSettingsForASite_

updateDeviceCredentialSettingsForASite API 的完整参考。

Cisco Catalyst Center 文档,了解网络设置 syncNetworkDevicesCredential

syncNetworkDevicesCredential API 的完整参考。

示例

---
  - name: Create Credentials and assign it to a site.
    cisco.dnac.device_credential_workflow_manager:
    dnac_host: "{{ dnac_host }}"
    dnac_port: "{{ dnac_port }}"
    dnac_username: "{{ dnac_username }}"
    dnac_password: "{{ dnac_password }}"
    dnac_verify: "{{ dnac_verify }}"
    dnac_debug: "{{ dnac_debug }}"
    dnac_log: True
    dnac_log_level: "{{ dnac_log_level }}"
    state: merged
    config_verify: True
    config:
    - global_credential_details:
        cli_credential:
        - description: CLI1
          username: cli1
          password: '12345'
          enable_password: '12345'
        snmp_v2c_read:
        - description: SNMPv2c Read1
          read_community: '123456'
        snmp_v2c_write:
        - description: SNMPv2c Write1
          write_community: '123456'
        snmp_v3:
        - auth_password: '12345678'
          auth_type: SHA
          snmp_mode: AUTHPRIV
          privacy_password: '12345678'
          privacy_type: AES128
          username: snmpV31
          description: snmpV31
        https_read:
        - description: HTTP Read1
          username: HTTP Read1
          password: '12345'
          port: 443
        https_write:
        - description: HTTP Write1
          username: HTTP Write1
          password: '12345'
          port: 443
      assign_credentials_to_site:
        Sync: True
        cli_credential:
            description: CLI6
            username: cli6
        snmp_v2c_read:
            description: SNMPv2c Read1
        snmp_v2c_write:
            description: SNMPv2c Write1
        snmp_v3:
            description: snmpV31
        https_read:
            description: HTTP Read1
            username: HTTP_Read1
        https_write:
            description: HTTP Write1
            username: HTTP_Write1
        site_name:
            - Global/USA

  - name: Create Multiple Credentials.
    cisco.dnac.device_credential_workflow_manager:
    dnac_host: "{{ dnac_host }}"
    dnac_port: "{{ dnac_port }}"
    dnac_username: "{{ dnac_username }}"
    dnac_password: "{{ dnac_password }}"
    dnac_verify: "{{ dnac_verify }}"
    dnac_debug: "{{ dnac_debug }}"
    dnac_log: True
    dnac_log_level: "{{ dnac_log_level }}"
    state: merged
    config_verify: True
    config:
    - global_credential_details:
        cli_credential:
        - description: CLI1
          username: cli1
          password: '12345'
          enable_password: '12345'
        - description: CLI2
          username: cli2
          password: '12345'
          enable_password: '12345'
        snmp_v2c_read:
        - description: SNMPv2c Read1
          read_community: '123456'
        - description: SNMPv2c Read2
          read_community: '123456'
        snmp_v2c_write:
        - description: SNMPv2c Write1
          write_community: '123456'
        - description: SNMPv2c Write2
          write_community: '123456'
        snmp_v3:
        - auth_password: '12345678'
          auth_type: SHA
          snmp_mode: AUTHPRIV
          privacy_password: '12345678'
          privacy_type: AES128
          username: snmpV31
          description: snmpV31
        - auth_password: '12345678'
          auth_type: SHA
          snmp_mode: AUTHPRIV
          privacy_password: '12345678'
          privacy_type: AES128
          username: snmp
          description: snmp
        https_read:
        - description: HTTP Read1
          username: HTTP Read1
          password: '12345'
          port: 443
        - description: HTTP Read2
          username: HTTP Read2
          password: '12345'
          port: 443
        https_write:
        - description: HTTP Write1
          username: HTTP Write1
          password: '12345'
          port: 443
        - description: HTTP Write2
          username: HTTP Write2
          password: '12345'
          port: 443

  - name: Update global device credentials
    cisco.dnac.device_credential_workflow_manager:
    dnac_host: "{{ dnac_host }}"
    dnac_port: "{{ dnac_port }}"
    dnac_username: "{{ dnac_username }}"
    dnac_password: "{{ dnac_password }}"
    dnac_verify: "{{ dnac_verify }}"
    dnac_debug: "{{ dnac_debug }}"
    dnac_log: True
    dnac_log_level: "{{ dnac_log_level }}"
    state: merged
    config_verify: True
    config:
    - global_credential_details:
        cli_credential:
        - description: CLI1
          username: cli1
          password: '12345'
          enable_password: '12345'
        snmp_v2c_read:
        - description: SNMPv2c Read1
          read_community: '123456'
        snmp_v2c_write:
        - description: SNMPv2c Write1
          write_community: '123456'
        snmp_v3:
        - auth_password: '12345678'
          auth_type: SHA
          snmp_mode: AUTHPRIV
          privacy_password: '12345678'
          privacy_type: AES128
          username: snmpV31
          description: snmpV31
        https_read:
        - description: HTTP Read1
          username: HTTP Read1
          password: '12345'
          port: 443
        https_write:
        - description: HTTP_Write1
          username: HTTP_Write1
          password: '12345'
          port: 443

  - name: Update multiple global device credentials
    cisco.dnac.device_credential_workflow_manager:
    dnac_host: "{{ dnac_host }}"
    dnac_port: "{{ dnac_port }}"
    dnac_username: "{{ dnac_username }}"
    dnac_password: "{{ dnac_password }}"
    dnac_verify: "{{ dnac_verify }}"
    dnac_debug: "{{ dnac_debug }}"
    dnac_log: True
    dnac_log_level: "{{ dnac_log_level }}"
    state: merged
    config_verify: True
    config:
    - global_credential_details:
        cli_credential:
        - description: CLI1
          username: cli1
          password: '12345'
          enable_password: '12345'
        - description: CLI2
          username: cli2
          password: '12345'
          enable_password: '12345'
        snmp_v2c_read:
        - description: SNMPv2c Read1
          read_community: '123456'
        - description: SNMPv2c Read2
          read_community: '123458'
        snmp_v2c_write:
        - description: SNMPv2c write1
          write_community: '123456'
        - description: SNMPv2c Write1
          write_community: '123466'
        snmp_v3:
        - auth_password: '12345678'
          auth_type: SHA
          snmp_mode: AUTHPRIV
          privacy_password: '12345678'
          privacy_type: AES128
          username: snmpV31
          description: snmpV31
        - auth_password: '12345678'
          auth_type: SHA
          snmp_mode: AUTHPRIV
          privacy_password: '12345644'
          privacy_type: AES128
          username: snmpV32
          description: snmpV32
        https_read:
        - description: HTTP Read1
          username: HTTP Read1
          password: '12345'
          port: 443
        - description: HTTP Read2
          username: HTTP Read2
          password: '12345'
          port: 443
        https_write:
        - description: HTTP_Write1
          username: HTTP_Write1
          password: '12345'
          port: 443
        - description: HTTP_Write2
          username: HTTP_Write2
          password: '12345'
          port: 443

  - name: Update global device credential name/description using old name and description.
    cisco.dnac.device_credential_workflow_manager:
    dnac_host: "{{ dnac_host }}"
    dnac_port: "{{ dnac_port }}"
    dnac_username: "{{ dnac_username }}"
    dnac_password: "{{ dnac_password }}"
    dnac_verify: "{{ dnac_verify }}"
    dnac_debug: "{{ dnac_debug }}"
    dnac_log: True
    dnac_log_level: "{{ dnac_log_level }}"
    state: merged
    config_verify: True
    config:
    - global_credential_details:
        cli_credential:
        - description: CLI1
          username: cli1
          password: '12345'
          enable_password: '12345'
          old_description: CLI
          old_username: cli
        snmp_v2c_read:
        - description: SNMPv2c Read1
          read_community: '123456'
          old_description: SNMPv2c Read
        snmp_v2c_write:
        - description: SNMPv2c write1
          write_community: '123456'
          old_description: SNMPv2c write
        snmp_v3:
        - auth_password: '12345678'
          auth_type: SHA
          snmp_mode: AUTHPRIV
          privacy_password: '12345678'
          privacy_type: AES128
          username: snmpV31
          description: snmpV31
          old_description: snmp
        https_read:
        - description: HTTP Read1
          username: HTTP Read1
          password: '12345'
          port: 443
          old_description: HTTP Read
          old_username: HTTP Read
        https_write:
        - description: HTTP_Write1
          username: HTTP_Write1
          password: '12345'
          port: 443
          old_description: HTTP_Write
          old_username: HTTP_Write

  - name: Assign Credentials to sites using old description and username.
    cisco.dnac.device_credential_workflow_manager:
    dnac_host: "{{ dnac_host }}"
    dnac_port: "{{ dnac_port }}"
    dnac_username: "{{ dnac_username }}"
    dnac_password: "{{ dnac_password }}"
    dnac_verify: "{{ dnac_verify }}"
    dnac_debug: "{{ dnac_debug }}"
    dnac_log: True
    dnac_log_level: "{{ dnac_log_level }}"
    state: merged
    config_verify: True
    config:
    - assign_credentials_to_site:
        cli_credential:
            description: CLI6
            username: cli6
        snmp_v2c_read:
            description: SNMPv2c Read1
        snmp_v2c_write:
            description: SNMPv2c Write1
        snmp_v3:
            description: snmpV31
        https_read:
            description: HTTP Read1
            username: HTTP_Read1
        https_write:
            description: HTTP Write1
            username: HTTP_Write1
        site_name:
            - Global/USA

  - name: Sync global device credentials to a site.
    cisco.dnac.device_credential_workflow_manager:
    dnac_host: "{{ dnac_host }}"
    dnac_port: "{{ dnac_port }}"
    dnac_username: "{{ dnac_username }}"
    dnac_password: "{{ dnac_password }}"
    dnac_verify: "{{ dnac_verify }}"
    dnac_version: "{{dnac_version}}"
    dnac_debug: "{{ dnac_debug }}"
    dnac_log_level: "{{ dnac_log_level }}"
    dnac_log: True
    state: merged
    config_verify: True
    config:
    - apply_credentials_to_site:
        cli_credential:
            description: CLI5
            username: cli5
        snmp_v2c_read:
            description: SNMPv2c Read2
        snmp_v2c_write:
            description: SNMPv2c Write1
        snmp_v3:
            description: snmp
        site_name:
            - Global/Vietnam/halong/Hanoi

返回值

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

描述

dnac_response1

字典

包含 Cisco Catalyst Center Python SDK 返回的响应的字典或列表。

返回:始终返回

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

dnac_response2

字典

包含 Cisco Catalyst Center Python SDK 返回的响应的字典或列表。

返回:始终返回

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

作者

  • Muthu Rakesh (@MUTHU-RAKESH-27) Madhan Sankaranarayanan (@madhansansel) Megha Kandari (@kandarimegha)