cisco.dnac.lan_automation_workflow_manager 模块 – 使用 Cisco Catalyst Center 中的 LAN 自动化来自动执行网络发现、部署和设备配置。

注意

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

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

要安装它,请使用: ansible-galaxy collection install cisco.dnac。您需要其他要求才能使用此模块,请参阅 要求 获取详细信息。

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

cisco.dnac 6.20.0 中的新增功能

概要

  • 在 Cisco Catalyst Center 中配置 LAN 自动化会话,以自动发现设备并将其集成到网络中。

  • 更新 LAN 自动化设备配置,包括环回地址、主机名和链路配置。

  • 根据超时或发现设备列表完成等条件自动停止正在进行的 LAN 自动化会话,无需显式调用停止 API。

  • 此外,它还提供停止正在进行的 LAN 自动化会话和处理 PnP 设备授权的功能。

要求

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

  • dnacentersdk >= 2.9.2

  • python >= 3.9

参数

参数

注释

config

列表 / 元素=字典 / 必需

包含用于创建和停止 LAN 自动化会话以及更新 LAN 自动化设备的环回地址、主机名和链路配置的详细配置的列表。列表中的每个元素都表示要在 LAN 自动化基础设施上执行的特定操作。

lan_automated_device_update

字典

用于更新通过 LAN 自动化发现的设备设置的配置。

hostname_update_devices

列表 / 元素=字典

要更新新主机名的设备列表。

device_management_ip_address

字符串 / 必需

设备的管理 IP 地址。

new_host_name

字符串 / 必需

设备的新主机名。

字典

在两台设备之间添加新链路。

字符串 / 必需

目标设备上的接口名称。

字符串 / 必需

目标设备的管理 IP 地址。

字符串 / 必需

在 LAN 自动化中配置的 IP 池的名称,从中将为新链路分配 IP 地址。

字符串 / 必需

源设备上的接口名称。

字符串 / 必需

源设备的管理 IP 地址。

字典

删除两台设备之间现有的链路。

字符串 / 必需

目标设备上的接口名称。

字符串 / 必需

目标设备的管理 IP 地址。

字符串 / 必需

源设备上的接口名称。

字符串 / 必需

源设备的管理 IP 地址。

loopback_update_device_list

列表 / 元素=字典

要更新新环回 IP 地址的设备列表。

device_management_ip_address

字符串 / 必需

设备的管理 IP 地址。

new_loopback0_ip_address

字符串 / 必需

设备的新 Loopback0 IP 地址,来自与设备发现站点关联的 LAN 池。

lan_automation

字典

用于启动或停止 LAN 自动化会话的配置。

device_serial_number_authorization

列表 / 元素=字符串

要在会话期间授权的设备序列号列表。

discovered_device_site_name_hierarchy

字符串 / 必需

将发现的设备放置到的站点层次结构。

discovery_devices

列表 / 元素=字典

在 LAN 自动化会话期间要发现的设备列表。如果只提供设备列表而没有超时,则一旦发现列表中的所有设备,停止处理就会发生。可以为会话提供的最大设备数量为 50 个。如果同时提供发现设备列表和超时,则将尝试哪一个先发生停止处理。用户可以选择使用 LAN 自动化“已删除”状态随时停止处理。

device_host_name

字符串

要发现的设备的主机名。

device_management_ip_address

字符串

设备的管理 IP 地址。

device_serial_number

字符串 / 必需

要发现的设备的序列号。

device_site_name_hierarchy

字符串

发现后设备将被放置到的站点层次结构。

discovery_level

整数

LAN 自动化期间发现的深度(例如,主种子设备下方的 1-5 级)。

默认值: 2

discovery_timeout

整数

LAN 自动化期间设备发现的超时时间(以分钟为单位)。在此时间之前,不会触发停止处理。在此发现超时后联系的任何设备都不会被处理,并且将尝试重置和重新加载设备以将其恢复到 PnP 代理状态,然后才能完成处理。支持的超时范围(以分钟为单位)为 [20-10080]。如果同时提供了“discovery_timeout”和“discovery_devices”,则处理将根据先发生的情况停止。用户始终可以使用 LAN 自动化已删除状态强制停止处理。

host_name_prefix

字符串

在 LAN 自动化会话期间用于自动生成主机名的前缀。

ip_pools

列表 / 元素=字典 / 必需

在 LAN 自动化会话期间使用的 IP 池列表。

ip_pool_name

字符串 / 必需

IP 池的名称。

ip_pool_role

字符串 / 必需

IP 池在自动化会话中的角色,可以是 MAIN_POOL 或 PHYSICAL_LINK_POOL。

选项

  • "MAIN_POOL"

  • "PHYSICAL_LINK_POOL"

isis_domain_pwd

字符串

IS-IS 域配置的密码。

launch_and_wait

布尔值

指示任务是否应暂停,直到 LAN 自动化会话完成才能继续执行后续任务的标志。如果设置为 false,则进程将立即移动到下一个任务。

选项

  • false ← (默认)

  • true

multicast_enabled

布尔值

启用 LAN 自动化会话中多播路由的标志。

选项

  • false ← (默认)

  • true

peer_device_management_ip_address

字符串

LAN 自动化会话中对等设备的管理 IP 地址。

pnp_authorization

布尔值

启用会话期间发现的设备的即插即用 (PnP) 授权的标志。

选项

  • false ← (默认)

  • true

primary_device_interface_names

列表 / 元素=字符串 / 必需

要在 LAN 自动化中使用的主设备上的接口名称列表。

primary_device_management_ip_address

字符串 / 必需

LAN 自动化会话中主设备或种子设备的管理 IP 地址。

redistribute_isis_to_bgp

布尔值

启用将 IS-IS 路由重新分发到 BGP 的标志。

选项

  • false ← (默认)

  • true

config_verify

布尔值

应用 playbook 配置后,设置为 true 以验证 LAN 自动化配置。

选项

  • false ← (默认)

  • true

dnac_api_task_timeout

整数

等待 Cisco DNA Center LAN 自动化任务完成的最大时间。

默认值: 604800

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

整数

轮询任务完成的间隔(秒)。

默认值: 30

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 ← (默认)

注释

注意

  • 等待 LAN 自动化会话完成时,将首先考虑超时和要发现的设备列表。如果既未提供超时也未提供设备列表,则 LAN 自动化将持续运行直到停止。

  • 要停止 LAN 自动化会话,请使用“deleted”状态执行相同的详细信息。仅需要种子设备 IP 即可终止会话。

  • 如果在 Catalyst Center 中选择了设备授权,则将执行 PnP 授权。LAN 自动化将持续运行,直到提供的序列号获得授权,并持续检查设备的状态。如果启用了 PnP 授权,而没有用于授权或发现的设备列表,则模块将不会等待 LAN 自动化任务完成。但是,如果设备处于错误状态或在 Catalyst Center 上未选中授权,则 playbook 将持续运行,直到设备状态变为活动状态或达到超时值。

  • 使用的 SDK 方法为 ccc_lan_automation.lanautomation.lan_automation_start_v2 ccc_lan_automation.lanautomation.lan_automation_stop ccc_lan_automation.lanautomation.lan_automation_device_update ccc_lan_automation.lanautomation.lan_automation_active_sessions ccc_lan_automation.lanautomation.lan_automation_status ccc_lan_automation.lanautomation.lan_automation_log ccc_lan_automation.devices.get_device_list ccc_lan_automation.devices.get_interface_details ccc_lan_automation.deviceonboardingpnp.authorize_device ccc_lan_automation.deviceonboardingpnp.get_device_list

  • 不支持 check_mode

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

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

示例

- name: Start a LAN Automation session without waiting for it to finish
  cisco.dnac.lan_automation_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
    config_verify: false
    state: merged
    config:
      - lan_automation:
          discovered_device_site_name_hierarchy: "Global/USA/SAN JOSE"
          peer_device_management_ip_address: "204.1.1.2"
          primary_device_management_ip_address: "204.1.1.1"
          primary_device_interface_names:
            - "HundredGigE1/0/2"
            - "HundredGigE1/0/29"
          ip_pools:
            - ip_pool_name: "underlay_sub"
              ip_pool_role: "MAIN_POOL"
            - ip_pool_name: "underlay_sub_sj"
              ip_pool_role: "PHYSICAL_LINK_POOL"
          multicast_enabled: true
          redistribute_isis_to_bgp: true
          host_name_prefix: "San-Jose"
          isis_domain_pwd: "cisco"
          discovery_level: 5
          discovery_timeout: 40
          discovery_devices:
            - device_serial_number: "FJC27172JDW"
              device_host_name: "SR-LAN-9300-IM1"
              device_site_name_hierarchy: "Global/USA/SAN JOSE/BLD23"
              device_management_ip_address: "204.1.1.10"
            - device_serial_number: "FJC2721261A"
              device_host_name: "SR-LAN-9300-IM2"
              device_site_name_hierarchy: "Global/USA/SAN JOSE/BLD20"
              device_management_ip_address: "204.1.1.11"
          launch_and_wait: false
          pnp_authorization: false

- name: Start a LAN Automation session with device authorization and waiting for the task to complete
  cisco.dnac.lan_automation_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
    config_verify: false
    state: merged
    config:
      - lan_automation:
          discovered_device_site_name_hierarchy: "Global/USA/SAN JOSE"
          peer_device_management_ip_address: "204.1.1.2"
          primary_device_management_ip_address: "204.1.1.1"
          primary_device_interface_names:
            - "HundredGigE1/0/2"
            - "HundredGigE1/0/29"
          ip_pools:
            - ip_pool_name: "underlay_sub"
              ip_pool_role: "MAIN_POOL"
            - ip_pool_name: "underlay_sub_sj"
              ip_pool_role: "PHYSICAL_LINK_POOL"
          multicast_enabled: true
          redistribute_isis_to_bgp: true
          host_name_prefix: "San-Jose"
          isis_domain_pwd: "cisco"
          discovery_level: 5
          discovery_timeout: 40
          discovery_devices:
            - device_serial_number: "FJC27172JDW"
              device_host_name: "SR-LAN-9300-IM1"
              device_site_name_hierarchy: "Global/USA/SAN JOSE/BLD23"
              device_management_ip_address: "204.1.1.10"
            - device_serial_number: "FJC2721261A"
              device_host_name: "SR-LAN-9300-IM2"
              device_site_name_hierarchy: "Global/USA/SAN JOSE/BLD20"
              device_management_ip_address: "204.1.1.11"
          launch_and_wait: true
          pnp_authorization: true
          device_serial_number_authorization:
            - "FJC27172JDW"
            - "FJC2721261A"

- name: Stop a LAN Automation session
  cisco.dnac.lan_automation_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
    config_verify: false
    state: deleted
    config:
      - lan_automation:
          discovered_device_site_name_hierarchy: "Global/USA/SAN JOSE"
          primary_device_management_ip_address: "204.1.1.1"

- name: Update loopback for LAN Automated devices
  cisco.dnac.lan_automation_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
    config_verify: false
    state: merged
    config:
      - lan_automated_device_update:
          loopback_update_device_list:
            - device_management_ip_address: "204.1.3.160"
              new_loopback0_ip_address: "91.1.2.6"
            - device_management_ip_address: "204.1.2.163"
              new_loopback0_ip_address: "91.1.2.5"

- name: Update hostname for LAN Automated devices
  cisco.dnac.lan_automation_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
    config_verify: false
    state: merged
    config:
      - lan_automated_device_update:
          hostname_update_devices:
            - device_management_ip_address: "204.1.1.1"
              new_host_name: "SR-LAN-9300-im1"
            - device_management_ip_address: "91.1.1.6"
              new_host_name: "Test"

- name: Add link for LAN Automated devices
  cisco.dnac.lan_automation_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
    config_verify: false
    state: merged
    config:
      - lan_automated_device_update:
          link_add:
            source_device_management_ip_address: "204.1.1.1"
            source_device_interface_name: "HundredGigE1/0/2"
            destination_device_management_ip_address: "204.1.1.4"
            destination_device_interface_name: "HundredGigE1/0/5"
            ip_pool_name: "underlay_sj"

- name: Delete link between LAN Automated devices
  cisco.dnac.lan_automation_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
    config_verify: false
    state: merged
    config:
      - lan_automated_device_update:
          link_delete:
            source_device_management_ip_address: "204.1.1.1"
            source_device_interface_name: "HundredGigE1/0/2"
            destination_device_management_ip_address: "204.1.1.4"
            destination_device_interface_name: "HundredGigE1/0/5"

- name: Apply loopback and hostname updates for LAN Automated devices
  cisco.dnac.lan_automation_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
    config_verify: false
    state: merged
    config:
      - lan_automated_device_update:
          loopback_update_device_list:
            - device_management_ip_address: "204.1.1.160"
              new_loopback0_ip_address: "10.4.18.101"
          hostname_update_devices:
            - device_management_ip_address: "91.1.3.2"
              new_host_name: "SR-LAN-9300-SJ"
            - device_management_ip_address: "204.1.1.5"
              new_host_name: "SR-LAN-9500-SJ"

返回值

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

描述

dnac_response

字典

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

返回: 始终

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

作者

  • Luna Aliaj (@majlona)

  • Madhan Sankaranarayanan (@madhansansel)