cisco.dnac.swim_intent 模块 – SWIM 相关功能的意图模块
注意
此模块是 cisco.dnac 集合 (版本 6.25.0) 的一部分。
如果您使用的是 ansible
包,则可能已经安装了此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用: ansible-galaxy collection install cisco.dnac
。您需要其他要求才能使用此模块,请参阅 需求 获取详细信息。
要在剧本中使用它,请指定: 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 - 此角色分配给角色或功能尚未在 Cisco Catalyst Center 中识别或分类的设备。如果平台无法根据可用信息确定设备的角色,则可能会发生这种情况。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 - 此角色分配给角色或功能尚未在 Cisco Catalyst Center 中识别或分类的设备。如果平台无法根据可用信息确定设备的角色,则可能会发生这种情况。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 - 此角色分配给角色或功能尚未在 Cisco Catalyst Center 中识别或分类的设备。如果平台无法根据可用信息确定设备的角色,则可能会发生这种情况。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 schema 验证请求正文。 选项
|
备注
注意
使用的 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)