netapp.ontap.na_ontap_firmware_upgrade 模块 – NetApp ONTAP 固件升级,适用于 SP、机架、ACP 和磁盘。

注意

此模块是 netapp.ontap 集合 (版本 22.13.0) 的一部分。

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

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

要在 playbook 中使用它,请指定: netapp.ontap.na_ontap_firmware_upgrade

netapp.ontap 2.9.0 中的新增功能

概要

  • 更新 ONTAP 服务处理器固件

  • 推荐的流程是:1. 从 NetApp 支持网站下载固件包;2. 将包复制到 Web 服务器;3. 使用此模块从 Web 服务器下载包。

  • 下载磁盘鉴定、磁盘、机架或 ACP 固件包后,ONTAP 将自动在后台更新相关的资源。

  • 这可能需要一些时间才能完成。

  • 对于服务处理器,更新需要节点重新启动才能生效。

要求

以下是执行此模块的主机所需的条件。

  • Ansible 2.9 或更高版本 - 建议使用 2.12 或更高版本。

  • Python3 - 建议使用 3.9 或更高版本。

  • 使用 ZAPI 时,需要 netapp-lib 2018.11.13 或更高版本(使用“pip install netapp-lib”安装),强烈建议使用 netapp-lib 2020.3.12,因为它可以为连接问题提供更好的错误报告。

  • 物理或虚拟集群式 Data ONTAP 系统,模块支持 Data ONTAP 9.1 及更高版本,REST 支持需要 ONTAP 9.6 或更高版本。

参数

参数

注释

cert_filepath

字符串

netapp.ontap 20.6.0 中新增

SSL 客户端证书文件(.pem)的路径。

python 2.6 不支持。

clear_logs

布尔值

更新后清除设备上的日志。默认值为 true。

如果 force_disruptive_update 为 False,则不使用。

设置为 false 时,REST 不支持。

选项

  • false

  • true ← (默认)

disk_fw

字符串

要更新到的磁盘固件。

如果 force_disruptive_update 为 False,则不使用(ONTAP 将自动选择固件)

REST 不支持。

fail_on_502_error

布尔值

netapp.ontap 20.6.0 中新增

如果 Web 服务器速度慢且集群中有多个节点,则固件下载可能需要一些时间。

即使下载仍在进行中,ONTAP 也会在 5 分钟后使用 502 错误网关错误中断 ZAPI 连接。

默认情况下,此模块会忽略此错误并假定下载正在进行,因为 ONTAP 没有提供检查状态的方法。

将此选项设置为 true 时,模块会将 502 报告为错误。

设置为 true 时,REST 不支持。

选项

  • false ← (默认)

  • true

feature_flags

字典

netapp.ontap 20.5.0 中新增

启用或禁用新功能。

这可用于启用实验性功能或禁用破坏向后兼容性的新功能。

支持的键和值可能会随时更改,恕不另行通知。未知键将被忽略。

firmware_type

字符串

要升级的固件类型。选项包括 shelf、ACP、service-processor 和 disk。

对于机架固件升级,操作是异步的,因此不会返回下载过程中可能发生的任何错误。

如果提供 shelf_module_fw,则机架固件升级是幂等的。

如果提供 disk_fw,则磁盘固件升级是幂等的。

在检查模式下,SP、ACP、磁盘和机架固件升级不是幂等的。

此操作只会更新固件版本不是最新的机架/磁盘上的固件。

对于正常操作,请选择 storage 或 service-processor 之一。

storage 类型包括 acp、shelf 和 disk,ONTAP 将自动确定该做什么。

使用 REST 时,模块不会验证包是否与固件类型匹配。ONTAP 会自动确定类型。

使用 REST 时,storage 会下载任何固件,包括服务处理器固件。

使用 REST 时,service-processor 会解锁 SP 重新启动选项。

选项

  • "storage" ← (默认)

  • "service-processor"

  • "shelf"

  • "acp"

  • "disk"

force_disruptive_update

布尔值

netapp.ontap 20.5.0 中新增

如果设置为False,并且提供了URL,则升级是非破坏性的。如果没有提供URL,则不执行任何操作。

除非NetApp技术支持指示,否则不要将其设置为True

即使资源未准备好,它也会强制更新,并且可能具有破坏性。

设置为 true 时,REST 不支持。

选项

  • false ← (默认)

  • true

force_ontap_version

字符串

在netapp.ontap 21.23.0中添加

使用REST时覆盖集群ONTAP版本。

如果版本与目标集群不匹配,则行为未定义。

这是在由于权限问题无法读取集群版本时的变通方法。请参阅https://github.com/ansible-collections/netapp.ontap/wiki/Known-issues

这应采用9.10或9.10.1的形式,其中每个元素都是整数。

use_rest设置为auto时,这可能会根据版本和平台功能强制切换到ZAPI。

ZAPI中忽略。

hostname

字符串 / 必需

ONTAP实例的主机名或IP地址。

http_port

整数

使用此端口覆盖默认端口(80或443)。

https

布尔值

启用和禁用https。

使用REST时忽略,因为只支持https。

使用SSL证书身份验证时忽略,因为它需要SSL。

选项

  • false ← (默认)

  • true

install_baseline_image

布尔值

如果此参数设置为true,则安装与ONTAP一起打包的版本。否则,必须使用package来指定要安装的软件包。

如果 force_disruptive_update 为 False,则不使用(ONTAP 将自动选择固件)

设置为 true 时,REST 不支持。

选项

  • false ← (默认)

  • true

key_filepath

字符串

netapp.ontap 20.6.0 中新增

SSL客户端密钥文件的路径。

node

字符串

设备所在的节点。

如果存在package_url并且force_disruptive_update为False,则不需要。

如果没有此选项,则固件将下载到集群中的所有节点上,

并且资源将在后台更新所有节点,服务处理器除外。

对于服务处理器,升级将在每个节点重新启动时自动进行。

ontapi

整数

要使用的ontap api版本

package

字符串

包含要安装的固件的软件包文件的名称。当-baseline为true时不需要。

如果 force_disruptive_update 为 False,则不使用。

REST 不支持。

package_url

字符串

netapp.ontap 20.5.0 中新增

包含要下载的固件的软件包文件的URL。

将软件包文件下载到节点后,固件更新将在后台自动进行。

对于SP,升级将在节点重新启动时自动进行。

如果启用了自动更新(这是推荐的设置),则对于SP,升级将自动进行。

password

别名:pass

字符串

指定用户的密码。

reboot_sp

布尔值

在netapp.ontap 20.7.0中添加

下载软件包之前重新启动服务处理器。

仅当“firmware_type”为“service-processor”时才可用。

如果“firmware_type”为“service-processor”且未设置,则默认为True。

明确将其设置为true以避免警告,并设置为false以不重新启动SP。

强烈建议在下载前重新启动SP。

选项

  • false

  • true

reboot_sp_after_download

布尔值

在netapp.ontap 21.15.0中添加

下载软件包后重新启动服务处理器。

仅当“firmware_type”为“service-processor”时才可用。

选项

  • false

  • true

rename_package

字符串

在netapp.ontap 20.7.0中添加

重命名软件包。

仅当“firmware_type”为“service-processor”时才可用。

REST 不支持。

replace_package

布尔值

在netapp.ontap 20.7.0中添加

替换本地软件包。

仅当“firmware_type”为“service-processor”时才可用。

设置为 false 时,REST 不支持。

选项

  • false

  • true

server_password

字符串

在netapp.ontap 21.15.0中添加

用于对固件软件包服务器进行身份验证的密码。

ZAPI中忽略。

server_username

字符串

在netapp.ontap 21.15.0中添加

用于对固件软件包服务器进行身份验证的用户名。

ZAPI中忽略。

shelf_module_fw

字符串

要更新到的机架模块固件。

如果 force_disruptive_update 为 False,则不使用(ONTAP 将自动选择固件)

REST 不支持。

state

字符串

是否应升级指定的ONTAP固件。

默认:"present"

update_type

字符串

要执行的固件更新类型。选项包括serial_full、serial_differential、network_full。

如果 force_disruptive_update 为 False,则不使用(ONTAP 将自动选择固件)

REST 不支持。

use_rest

字符串

是否使用REST或ZAPI。

always – 如果模块支持REST,则始终使用REST API。如果模块不支持REST,则会发出警告。如果模块选项在REST中不受支持,则会发出错误。

never – 如果模块支持ZAPI,则始终使用ZAPI。如果REST选项在ZAPI中不受支持,则可能会发出错误。

auto – 如果模块支持REST并且模块选项受支持,则尝试使用REST API。否则恢复到ZAPI。

默认:"auto"

username

别名:user

字符串

这可以是集群范围或SVM范围的帐户,具体取决于是否需要集群级别或SVM级别的API。

有关更多信息,请阅读文档https://mysupport.netapp.com/NOW/download/software/nmsdk/9.4/

支持两种身份验证方法

  1. 基本身份验证,使用用户名和密码,

  2. SSL证书身份验证,使用ssl客户端证书文件,以及可选的私钥文件。

要使用证书,必须已在ONTAP集群中安装证书,并且必须已启用证书身份验证。

validate_certs

布尔值

如果设置为no,则不会验证SSL证书。

这应该只在使用自签名证书的个人控制站点上设置为False

选项

  • false

  • true ← (默认)

备注

注意

  • 以na_ontap为前缀的模块构建为支持ONTAP存储平台。

  • 默认情况下启用https并推荐使用。要在集群上启用http,您必须运行以下命令“set -privilege advanced;” “system services web modify -http-enabled true;”

示例

- name: firmware upgrade
  netapp.ontap.na_ontap_firmware_upgrade:
    state: present
    package_url: "{{ web_link }}"
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"
- name: firmware upgrade, confirm successful download
  netapp.ontap.na_ontap_firmware_upgrade:
    state: present
    package_url: "{{ web_link }}"
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"
    fail_on_502_error: true
- name: SP firmware upgrade
  netapp.ontap.na_ontap_firmware_upgrade:
    state: present
    node: vsim1
    package: "{{ file name }}"
    package_url: "{{ web_link }}"
    clear_logs: True
    install_baseline_image: False
    update_type: serial_full
    force_disruptive_update: False
    firmware_type: service-processor
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"
- name: SP firmware download replace package
  tags:
  - sp_download
  netapp.ontap.na_ontap_firmware_upgrade:
    state: present
    node: vsim1
    package_url: "{{ web_link }}"
    firmware_type: service-processor
    replace_package: true
    reboot_sp: true
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"
    https: true
    validate_certs: false
- name: SP firmware download rename package
  tags:
  - sp_download
  netapp.ontap.na_ontap_firmware_upgrade:
    state: present
    node: vsim1
    package_url: "{{ web_link }}"
    firmware_type: service-processor
    rename_package: SP_FW.zip
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"
    https: true
    validate_certs: false
- name: ACP firmware download and upgrade
  netapp.ontap.na_ontap_firmware_upgrade:
    state: present
    node: vsim1
    firmware_type: acp
    package_url: "{{ web_link }}"
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"
- name: shelf firmware upgrade
  netapp.ontap.na_ontap_firmware_upgrade:
    state: present
    firmware_type: shelf
    package_url: "{{ web_link }}"
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"
- name: disk firmware upgrade
  netapp.ontap.na_ontap_firmware_upgrade:
    state: present
    firmware_type: disk
    package_url: "{{ web_link }}"
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"
- name: any firmware upgrade (REST)
  netapp.ontap.na_ontap_firmware_upgrade:
    state: present
    package_url: "{{ web_link }}"
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"
- name: SP firmware upgrade with reboots (REST)
  netapp.ontap.na_ontap_firmware_upgrade:
    state: present
    package_url: "{{ web_link }}"
    firmware_type: service-processor
    reboot_sp_: true
    reboot_sp_after_download: true
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"

返回值

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

描述

msg

字符串

成功时返回其他信息。

返回:始终

作者

  • NetApp Ansible团队 (@carchi8py)