community.network.cnos_image 模块 – 在运行 Lenovo CNOS 的设备上执行来自远程服务器的固件升级/下载

注意

此模块是 community.network 集合 (版本 5.1.0) 的一部分。

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

要安装它,请使用: ansible-galaxy collection install community.network

要在剧本中使用它,请指定: community.network.cnos_image

注意

community.network 集合已弃用,并将从 Ansible 12 中删除。有关更多信息,请参阅 讨论主题

已弃用

在以下版本中移除:

6.0.0 版本

原因:

此集合及其中的所有内容均未维护且已弃用。

替代方案:

未知。

概要

  • 此模块允许您使用交换机固件镜像。它提供了一种使用 FTP、SFTP、TFTP 或 SCP 从远程服务器将固件镜像下载到网络设备的方法。第一步是从远程服务器可以访问的位置创建一个目录。下一步是提供镜像位置的完整文件路径。还必须提供远程服务器所需的认证详细信息。默认情况下,此方法将新下载的固件镜像设置为活动镜像,交换机将在下次重启时使用此镜像。此模块使用 SSH 管理网络设备配置。操作结果将放置在一个名为“results”的目录中,用户必须在其本地目录(运行剧本的位置)中创建此目录。

别名:network.cnos.cnos_image

参数

参数

注释

deviceType

字符串 / 必填

这指定了执行方法的设备类型。自 Ansible 2.4 起添加了 NE1072T、NE1032、NE1032T、NE10032、NE2572 选项。自 2.8 起添加了 NE0152T 选项。

选项

  • "g8272_cnos"

  • "g8296_cnos"

  • "g8332_cnos"

  • "NE0152T"

  • "NE1072T"

  • "NE1032"

  • "NE1032T"

  • "NE10032"

  • "NE2572"

enablePassword

字符串

配置用于在交换机上进入全局配置命令模式的密码。如果交换机不需要此密码,则忽略此参数。虽然通常应从清单文件获取值,但您也可以将其指定为变量。此参数是可选的。如果未指定,则不使用默认值。

host

字符串 / 必填

这是用于搜索 /etc/ansible/hosts 中的主机文件并识别将应用模板的设备的 IP 地址的变量。通常,Ansible 关键字 {{ inventory_hostname }} 在剧本中指定为需要配置的网络元素组的抽象。

imgpath

字符串 / 必填

这指定了位于远程服务器上的镜像的完整文件路径。如果使用相对路径作为变量值,则需要指定服务器用户的根文件夹。

imgtype

字符串 / 必填

这指定了要下载的固件镜像类型。

选项

  • "all"

  • "boot"

  • "os"

  • "onie"

outputfile

字符串 / 必填

这指定了保存每个命令执行输出的文件路径。合并的模板文件中指定的每个命令和来自设备的每个响应都将保存在此处。通常位置是 results 文件夹,但您可以根据您的写入权限选择其他位置。

password

字符串 / 必填

配置用于验证与远程设备连接的密码。password 参数的值用于验证 SSH 会话。虽然通常应从清单文件获取值,但您也可以将其指定为变量。此参数是可选的。如果未指定,则不使用默认值。

protocol

字符串 / 必填

这指的是网络设备用来与远程服务器(从中下载固件镜像)交互的协议。选项为 FTP、SFTP、TFTP 或 SCP。任何其他协议都将导致错误。如果未指定此参数,则不使用默认值。

选项

  • "SFTP"

  • "SCP"

  • "FTP"

  • "TFTP"

serverip

字符串 / 必填

这指定了将从中下载软件镜像的远程服务器的 IP 地址。

serverpassword

字符串

指定与所用协议相关的服务器密码。

serverusername

字符串 / 必填

指定与所用协议相关的服务器用户名。

username

字符串 / 必填

配置用于验证到远程设备连接的用户名。用户名参数的值用于验证 SSH 会话。虽然通常情况下该值应来自清单文件,但您也可以将其指定为变量。此参数是可选的。如果未指定,则不会使用默认值。

备注

注意

示例

Tasks : The following are examples of using the module cnos_image. These are
  written in the main.yml file of the tasks directory.
---
- name: Test Image transfer
  community.network.cnos_image:
      deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
      outputfile: "./results/test_image_{{ inventory_hostname }}_output.txt"
      protocol: "sftp"
      serverip: "10.241.106.118"
      imgpath: "/root/cnos_images/G8272-10.1.0.112.img"
      imgtype: "os"
      serverusername: "root"
      serverpassword: "root123"

- name: Test Image tftp
  community.network.cnos_image:
      deviceType: "{{ hostvars[inventory_hostname]['deviceType'] }}"
      outputfile: "./results/test_image_{{ inventory_hostname }}_output.txt"
      protocol: "tftp"
      serverip: "10.241.106.118"
      imgpath: "/anil/G8272-10.2.0.34.img"
      imgtype: "os"
      serverusername: "root"
      serverpassword: "root123"

返回值

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

描述

msg

字符串

成功或失败消息

返回:始终

示例: "Image file transferred to device"

状态

  • 此模块将在 6.0.0 版本中移除。[已弃用]

  • 更多信息请参见 已弃用

作者

  • Anil Kumar Muraleedharan (@amuraleedhar)