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。您需要其他要求才能使用此模块,请参阅 要求 以了解详情。

要在 playbook 中使用它,请指定: 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。如果同时提供了 discovery_devices 列表和超时,则将尝试先发生的停止处理。用户可以选择使用 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

整数

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

默认值: 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)