cisco.dnac.swim_intent 模块 – 用于 SWIM 相关功能的意图模块
注意
此模块是 cisco.dnac 集合 (版本 6.25.0) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install cisco.dnac
。您需要其他要求才能使用此模块,请参阅 要求 获取详细信息。
要在 playbook 中使用它,请指定:cisco.dnac.swim_intent
。
cisco.dnac 6.6.0 中的新增功能
概要
管理与镜像导入、分发、激活和将镜像标记为黄金镜像相关的操作
使用 HTTP/FTP 的 URL 从远程文件系统获取软件镜像并将其上传到 Catalyst Center 的 API。支持的镜像文件扩展名为 bin、img、tar、smu、pie、aes、iso、ova、tar_gz 和 qcow2。
从本地文件系统获取软件镜像并将其上传到 Catalyst Center 的 API。支持的镜像文件扩展名为 bin、img、tar、smu、pie、aes、iso、ova、tar_gz 和 qcow2。
为给定设备系列标记/取消标记镜像为黄金镜像的 API。
在给定设备上分发软件镜像的 API。软件镜像必须成功导入到 Catalyst Center 后才能分发。
在给定设备上激活软件镜像的 API。软件镜像必须存在于设备闪存中。
要求
执行此模块的主机需要以下要求。
dnacentersdk == 2.4.5
python >= 3.9
参数
参数 |
注释 |
---|---|
正在管理的 SWIM 镜像的详细信息列表 |
|
SWIM 镜像激活的详细信息。可以使用以下任何参数指定需要激活镜像的设备 - deviceSerialNumber、deviceIPAddress、deviceHostname 或 deviceMacAddress。 |
|
ActivateLowerImageVersion 标志。 选项
|
|
指定设备系列名称,例如交换机和集线器等。 |
|
需要激活镜像的设备主机名 |
|
需要激活镜像的设备 IP 地址 |
|
需要激活镜像的设备 MAC 地址 |
|
定义设备角色,允许的值包括 ALL、UNKNOWN、ACCESS、BORDER ROUTER、DISTRIBUTION 和 CORE。ALL - 此角色通常表示网络中的所有设备,无论其特定角色或功能如何。UNKNOWN - 此角色分配给未识别或未分类其角色或功能的设备。如果平台无法根据可用信息确定设备的角色,则可能会发生这种情况。ACCESS - 此角色通常表示用作最终用户设备连接到网络的接入点的交换机或接入点。这些设备通常位于网络边缘,并为最终用户设备提供连接。BORDER ROUTER - 这些是连接不同网络域或网段的设备。它们通常充当不同网络之间的网关,例如将企业网络连接到互联网或连接多个分支机构。DISTRIBUTION - 此角色表示在分层网络设计中充当分发交换机或路由器的功能。它们聚合来自接入交换机的流量,并将其路由到网络的核心或其他分发交换机。CORE - 此角色通常表示构成网络主干的高容量交换机或路由器。它们处理大量流量,并在网络的不同部分之间提供连接,例如连接分发交换机或在不同网络段之间提供互连。 |
|
需要激活镜像的设备序列号 |
|
它指定要应用于设备的升级模式,其值包括“install”、“bundle”和“currentlyExists”。install - 此模式指示 Cisco Catalyst Center 对目标设备执行新镜像的全新安装。选择此模式时,升级过程中设备上的现有镜像将被新镜像完全替换。这确保设备在升级完成后仅运行新镜像版本。bundle - 此模式指示 Cisco Catalyst Center 将新镜像与设备上的现有镜像捆绑在一起,然后再启动升级过程。此模式允许通过保留设备上的现有镜像并将新镜像添加为附加捆绑包来实现更有效的升级过程。升级后,设备可以运行现有镜像或新的捆绑镜像,具体取决于配置。currentlyExists - 此模式指示 Cisco Catalyst Center 检查目标设备是否已安装所需的镜像版本。如果设备上已存在镜像,则不执行任何操作,并跳过这些设备的升级过程。此模式可用于避免对已安装正确镜像版本的设备进行不必要的升级,从而节省时间。 |
|
激活 SWIM 镜像时启用 distribute_if_needed 选项。 选项
|
|
SWIM 镜像的名称 |
|
ScheduleValidate 查询参数。ScheduleValidate 在计划之前验证数据(可选)。 选项
|
|
用于获取与此站点关联的设备详细信息。 |
|
SWIM 镜像分发的详细信息。可以使用以下任何参数指定需要分发镜像的设备 - deviceSerialNumber、deviceIPAddress、deviceHostname 或 deviceMacAddress。 |
|
指定设备系列名称,例如交换机和集线器等。 |
|
需要分发镜像的设备主机名 |
|
需要分发镜像的设备 IP 地址 |
|
需要分发镜像的设备 MAC 地址 |
|
定义设备角色,允许的值包括 ALL、UNKNOWN、ACCESS、BORDER ROUTER、DISTRIBUTION 和 CORE。ALL - 此角色通常表示网络中的所有设备,无论其特定角色或功能如何。UNKNOWN - 此角色分配给未识别或未分类其角色或功能的设备。如果平台无法根据可用信息确定设备的角色,则可能会发生这种情况。ACCESS - 此角色通常表示用作最终用户设备连接到网络的接入点的交换机或接入点。这些设备通常位于网络边缘,并为最终用户设备提供连接。BORDER ROUTER - 这些是连接不同网络域或网段的设备。它们通常充当不同网络之间的网关,例如将企业网络连接到互联网或连接多个分支机构。DISTRIBUTION - 此角色表示在分层网络设计中充当分发交换机或路由器的功能。它们聚合来自接入交换机的流量,并将其路由到网络的核心或其他分发交换机。CORE - 此角色通常表示构成网络主干的高容量交换机或路由器。它们处理大量流量,并在网络的不同部分之间提供连接,例如连接分发交换机或在不同网络段之间提供互连。 |
|
需要分发镜像的设备序列号 |
|
此参数指定设备系列的名称。它用于识别 Cisco Catalyst Center 中的特定系列设备,例如 Cisco Catalyst 9300 系列交换机。 |
|
SWIM 镜像的名称 |
|
用于获取与此站点关联的设备详细信息。 |
|
正在导入的镜像的详细信息 |
|
要导入的镜像的本地路径的详细信息。 |
|
提供从本地系统导入图像所需的绝对文件路径(例如,“/path/to/your/file”)。接受的文件格式为-.gz,.bin,.img,.tar,.smu,.pie,.aes,.iso,.ova,.tar_gz,.qcow2,.nfvispkg,.zip,.spa,.rpm。 |
|
查询参数,用于确定图像是否来自第三方(可选)。 选项
|
|
指定 ThirdPartyApplicationType 查询参数以指示第三方应用程序的类型。允许的值包括 WLC、LINUX、FIREWALL、WINDOWS、LOADBALANCER、THIRDPARTY 等(可选)。WLC(无线局域网控制器)- 一种以集中方式管理和控制多个无线接入点 (AP) 的网络设备。LINUX - 一种开源操作系统,提供完整的软件包和实用程序集。FIREWALL - 一种网络安全设备,根据预定的安全规则监控和控制进出网络流量。它充当受信任内部网络和不受信任外部网络(如互联网)之间的屏障,防止未经授权的访问。WINDOWS - 一种以其图形用户界面 (GUI) 支持、广泛的硬件和软件兼容性以及在各种应用程序中的广泛使用而闻名的操作系统。LOADBALANCER - 一种网络设备或软件应用程序,可将传入的网络流量分配到多个服务器或资源。THIRDPARTY - 指不属于核心系统的一部分的第三方映像或应用程序。NAM(网络访问管理器)- 一种网络管理工具或软件应用程序,提供对网络访问策略、用户身份验证和设备合规性的集中控制和监控。WAN 优化 - 指用于提高广域网性能和效率的技术和方法。它包括各种优化技术,例如数据压缩、缓存、协议优化和流量优先级,以减少延迟,增加吞吐量并改善广域网连接的用户体验。Unknown - 指未指定的或无法识别的应用程序类型。Router - 一种在计算机网络之间转发数据包的网络设备。它们对于连接多个网络以及在它们之间引导流量至关重要。 |
|
提供 ThirdPartyImageFamily 查询参数以标识第三方映像的系列。映像系列名称,例如 PALOALTO、RIVERBED、FORTINET、CHECKPOINT、SILVERPEAK 等(可选)。 |
|
包含 ThirdPartyVendor 查询参数以指定第三方的供应商。 |
|
指定导入源,支持本地文件导入 (local) 或远程 URL 导入 (remote)。 |
|
用于 SWIM 导入的 URL 详细信息 |
|
通过 URL 的 SWIM 导入的有效负载。 |
|
一个可选参数,用于指定应用程序的类型。允许的值包括 WLC、LINUX、FIREWALL、WINDOWS、LOADBALANCER、THIRDPARTY 等。这只适用于第三方映像类型(可选)。WLC(无线局域网控制器)- 一种以集中方式管理和控制多个无线接入点 (AP) 的网络设备。LINUX - 一种开源操作系统,提供各种软件包和实用程序。FIREWALL - 一种网络安全设备,根据预定的安全规则监控和控制进出网络流量。它充当受信任内部网络和不受信任外部网络(如互联网)之间的屏障,防止未经授权的访问。WINDOWS - 一种提供各种应用程序的 GUI 支持以及与硬件和软件的广泛兼容性的操作系统。LOADBALANCER - 一种网络设备或软件应用程序,可将传入的网络流量分配到多个服务器或资源。THIRDPARTY - 指不属于核心系统的一部分的第三方映像或应用程序。NAM(网络访问管理器)- 一种网络管理工具或软件应用程序,提供对网络访问策略、用户身份验证和设备合规性的集中控制和监控。WAN 优化 - 指用于提高广域网性能和效率的技术和方法。它包括各种优化技术,例如数据压缩、缓存、协议优化和流量优先级,以减少延迟,增加吞吐量并改善广域网连接的用户体验。Unknown - 指未指定的或无法识别的应用程序类型。Router - 一种在计算机网络之间转发数据包的网络设备。它们对于连接多个网络以及在它们之间引导流量至关重要。 |
|
表示映像系列的名称,仅在上传第三方映像时适用。映像系列名称,例如 PALOALTO、RIVERBED、FORTINET、CHECKPOINT、SILVERPEAK 等(可选)。 |
|
标志指示映像是否由第三方上传(可选)。 选项
|
|
通过远程 URL 导入 SWIM 映像的必填参数。使用 URL 导入映像时,此参数是必需的。(例如,http://{host}/swim/cat9k_isoxe.16.12.10s.SPA.bin, ftp://user:password@{host}/swim/cat9k_isoxe.16.12.10s.SPA.iso) |
|
供应商的名称,仅在通过 URL 导入第三方映像类型时适用(可选)。 |
|
ScheduleAt 查询参数。纪元时间(自 1970 年 1 月 1 日 UTC 以来的毫秒数),应安排分发的时间(可选)。 |
|
ScheduleDesc 查询参数。自定义描述(可选)。 |
|
ScheduleOrigin 查询参数。此调用的发起者(可选)。 |
|
将映像标记或取消标记为黄金映像的详细信息 |
|
设备映像系列名称(例如 Cisco Catalyst 9300 交换机) |
|
定义设备角色,允许的值包括 ALL、UNKNOWN、ACCESS、BORDER ROUTER、DISTRIBUTION 和 CORE。ALL - 此角色通常表示网络中的所有设备,无论其特定角色或功能如何。UNKNOWN - 此角色分配给未识别或未分类其角色或功能的设备。如果平台无法根据可用信息确定设备的角色,则可能会发生这种情况。ACCESS - 此角色通常表示用作最终用户设备连接到网络的接入点的交换机或接入点。这些设备通常位于网络边缘,并为最终用户设备提供连接。BORDER ROUTER - 这些是连接不同网络域或网段的设备。它们通常充当不同网络之间的网关,例如将企业网络连接到互联网或连接多个分支机构。DISTRIBUTION - 此角色表示在分层网络设计中充当分发交换机或路由器的功能。它们聚合来自接入交换机的流量,并将其路由到网络的核心或其他分发交换机。CORE - 此角色通常表示构成网络主干的高容量交换机或路由器。它们处理大量流量,并在网络的不同部分之间提供连接,例如连接分发交换机或在不同网络段之间提供互连。 |
|
此参数指定设备系列的名称。它用于识别 Cisco Catalyst Center 中的特定系列设备,例如 Cisco Catalyst 9300 系列交换机。 |
|
将被标记或取消标记为黄金映像的 SWIM 映像名称。 |
|
将 SWIM 映像标记/取消标记为黄金映像的站点名称。如果未提供,SWIM 映像将映射到全局站点。 |
|
布尔值,用于将 SWIM 映像标记/取消标记为黄金映像。如果为 True,则给定的映像将被标记为黄金映像。如果为 False,则给定的映像将被取消标记为黄金映像。 选项
|
|
设置为 True 以在应用 playbook 配置后验证 Cisco Catalyst Center 配置。 选项
|
|
定义用于检索任务详细信息的 API 调用的超时时间(秒)。如果在此期间未收到任务详细信息,则进程将结束,并记录超时通知。 默认值: |
|
用于 Cisco DNA Center SDK 的标志,用于启用调试。 选项
|
|
Cisco DNA Center 主机名。 |
|
标志,用于启用/禁用 playbook 执行日志记录。 如果为 true 且提供了 dnac_log_file_path,则 - 在执行位置创建具有指定名称的日志文件。 如果为 true 且未提供 dnac_log_file_path,则 - 在执行位置创建名为“dnac.log”的日志文件。 如果为 false,则 - 日志记录被禁用。 如果日志文件不存在,则 - 它将根据“dnac_log_append”标志以追加或写入模式创建。 如果日志文件存在,则 - 它将根据“dnac_log_append”标志被覆盖或追加。 选项
|
|
确定文件的模式。设置为 True 表示“追加”模式。设置为 False 表示“写入”模式。 选项
|
|
控制日志记录。如果 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。 默认值: |
|
设置日志级别的阈值。级别等于或高于此级别的消息将被记录。级别按严重性顺序排列 [CRITICAL、ERROR、WARNING、INFO、DEBUG]。 CRITICAL 指的是会停止程序的严重错误。仅显示 CRITICAL 消息。 ERROR 指的是阻止功能出现的问题。显示 ERROR 和 CRITICAL 消息。 WARNING 指的是潜在的未来问题。显示 WARNING、ERROR、CRITICAL 消息。 INFO 跟踪正常操作。显示 INFO、WARNING、ERROR、CRITICAL 消息。 DEBUG 提供详细的诊断信息。显示所有日志消息。 默认值: |
|
用于身份验证的 Cisco DNA Center 密码。 |
|
Cisco DNA Center 端口。 默认值: |
|
指定连续调用 API 以检索任务详细信息之间的间隔(秒)。 默认值: |
|
用于身份验证的 Cisco DNA Center 用户名。 默认值: |
|
标志,用于启用或禁用 SSL 证书验证。 选项
|
|
通知 SDK 使用哪个版本的 Cisco DNA Center。 默认值: |
|
模块完成后的 Catalyst Center 状态。 选项
|
|
用于 Cisco DNA Center SDK 的标志,用于根据 JSON 模式验证请求正文。 选项
|
注释
注意
使用的 SDK 方法为 software_image_management_swim.SoftwareImageManagementSwim.import_software_image_via_url、software_image_management_swim.SoftwareImageManagementSwim.tag_as_golden_image、software_image_management_swim.SoftwareImageManagementSwim.trigger_software_image_distribution、software_image_management_swim.SoftwareImageManagementSwim.trigger_software_image_activation。
使用的路径为 post /dna/intent/api/v1/image/importation/source/url、post /dna/intent/api/v1/image/importation/golden、post /dna/intent/api/v1/image/distribution、post /dna/intent/api/v1/image/activation/device。
在 v6.13.2 版本中添加了参数 ‘dnac_api_task_timeout’、’dnac_task_poll_interval’ 选项。
不支持
check_mode
插件在控制节点上运行,不使用任何 Ansible 连接插件,而是使用 Cisco DNAC SDK 中的嵌入式连接管理器。
以 dnac_ 开头的参数由 Cisco DNAC Python SDK 用于建立连接。
示例
- name: Import an image from a URL, tag it as golden and load it on device
cisco.dnac.swim_intent:
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_level: "{{dnac_log_level}}"
dnac_log: True
config:
- import_image_details:
type: remote
url_details:
payload:
- source_url: "http://10.10.10.10/stda/cat9k_iosxe.17.12.01.SPA.bin"
is_third_party: False
tagging_details:
image_name: cat9k_iosxe.17.12.01.SPA.bin
device_role: ACCESS
device_image_family_name: Cisco Catalyst 9300 Switch
site_name: Global/USA/San Francisco/BGL_18
tagging: True
image_distribution_details:
image_name: cat9k_iosxe.17.12.01.SPA.bin
device_serial_number: FJC2327U0S2
image_activation_details:
image_name: cat9k_iosxe.17.12.01.SPA.bin
schedule_validate: False
activate_lower_image_version: False
distribute_if_needed: True
device_serial_number: FJC2327U0S2
- name: Import an image from local, tag it as golden.
cisco.dnac.swim_intent:
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_level: "{{dnac_log_level}}"
dnac_log: True
config:
- import_image_details:
type: local
local_image_details:
file_path: /Users/Downloads/cat9k_iosxe.17.12.01.SPA.bin
is_third_party: False
tagging_details:
image_name: cat9k_iosxe.17.12.01.SPA.bin
device_role: ACCESS
device_image_family_name: Cisco Catalyst 9300 Switch
site_name: Global/USA/San Francisco/BGL_18
tagging: True
- name: Tag the given image as golden and load it on device
cisco.dnac.swim_intent:
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_level: "{{dnac_log_level}}"
dnac_log: True
config:
- tagging_details:
image_name: cat9k_iosxe.17.12.01.SPA.bin
device_role: ACCESS
device_image_family_name: Cisco Catalyst 9300 Switch
site_name: Global/USA/San Francisco/BGL_18
tagging: True
- name: Un-tagged the given image as golden and load it on device
cisco.dnac.swim_intent:
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_level: "{{dnac_log_level}}"
dnac_log: True
config:
- tagging_details:
image_name: cat9k_iosxe.17.12.01.SPA.bin
device_role: ACCESS
device_image_family_name: Cisco Catalyst 9300 Switch
site_name: Global/USA/San Francisco/BGL_18
tagging: False
- name: Distribute the given image on devices associated to that site with specified role.
cisco.dnac.swim_intent:
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_level: "{{dnac_log_level}}"
dnac_log: True
config:
- image_distribution_details:
image_name: cat9k_iosxe.17.12.01.SPA.bin
site_name: Global/USA/San Francisco/BGL_18
device_role: ALL
device_family_name: Switches and Hubs
device_series_name: Cisco Catalyst 9300 Series Switches
- name: Activate the given image on devices associated to that site with specified role.
cisco.dnac.swim_intent:
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_level: "{{dnac_log_level}}"
dnac_log: True
config:
- image_activation_details:
image_name: cat9k_iosxe.17.12.01.SPA.bin
site_name: Global/USA/San Francisco/BGL_18
device_role: ALL
device_family_name: Switches and Hubs
device_series_name: Cisco Catalyst 9300 Series Switches
scehdule_validate: False
activate_lower_image_version: True
distribute_if_needed: True
返回值
常见的返回值已在 此处 记录,以下是此模块特有的字段:
键 |
描述 |
---|---|
包含 Catalyst Center Python SDK 返回的激活详细信息的字典。 返回值:始终返回 示例: |
作者
Madhan Sankaranarayanan (@madhansansel) Rishita Chowdhary (@rishitachowdhary) Abhishek Maheshwari (@abmahesh)