dellemc.openmanage.redfish_firmware 模块 – 使用本地或远程系统上的映像文件执行组件固件更新

注意

此模块是 dellemc.openmanage 集合 (版本 9.9.0)的一部分。

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

要安装它,请使用:ansible-galaxy collection install dellemc.openmanage。您需要进一步的要求才能使用此模块,请参阅 要求 了解详细信息。

要在 playbook 中使用它,请指定:dellemc.openmanage.redfish_firmware

dellemc.openmanage 2.1.0 中的新功能

概要

  • 此模块一次只允许一个组件的固件更新。如果为多个组件运行该模块,则会返回错误消息。

  • 根据组件的不同,固件更新会在自动或手动重启后应用。

要求

执行此模块的主机需要以下要求。

  • python >= 3.9.6

  • urllib3

参数

参数

注释

baseuri

字符串 / 必需

目标带外控制器的 IP 地址。例如 - <ipaddress>:<port>。

ca_path

路径

在 dellemc.openmanage 5.0.0 中添加

包含用于验证的 CA 证书的隐私增强邮件 (PEM) 文件。

image_uri

字符串 / 必需

固件映像位置 URI 或本地路径。

例如 - http://<web_address>/components.exe 或 /home/firmware_repo/component.exe。

job_wait

布尔值

提供等待作业完成的选项。

选项

  • false

  • true ← (默认)

job_wait_timeout

整数

job_wait 的最长等待时间,以秒为单位。作业仅在此期间跟踪。

job_waittrue 时,此选项适用。

注意:如果固件更新需要重启,则作业将被安排并等待 job_wait_time 中指定的秒数。要减少等待时间,请将 job_wait_time 设置为最小值,或将 job_wait 设置为 false 并重新触发。

默认值: 3600

password

字符串

目标带外控制器的密码。

如果未提供密码,则使用环境变量 IDRAC_PASSWORD

示例:export IDRAC_PASSWORD=password

timeout

整数

在 dellemc.openmanage 5.0.0 中添加

套接字级别的超时时间,以秒为单位。

默认值: 30

transfer_protocol

字符串

用于传输固件映像文件的协议。适用于基于 URI 的更新。

选项

  • "CIFS"

  • "FTP"

  • "HTTP" ← (默认)

  • "HTTPS"

  • "NSF"

  • "OEM"

  • "SCP"

  • "SFTP"

  • "TFTP"

username

字符串

目标带外控制器的用户名。

如果未提供用户名,则使用环境变量 IDRAC_USERNAME

示例:export IDRAC_USERNAME=username

validate_certs

布尔值

在 dellemc.openmanage 5.0.0 中添加

如果为 false,则不会验证 SSL 证书。

仅在个人控制的站点中使用自签名证书时配置 false

在集合版本 5.0.0 之前,validate_certs 默认为 false

选项

  • false

  • true ← (默认)

x_auth_token

字符串

在 dellemc.openmanage 9.3.0 中添加

身份验证令牌。

如果未提供 x_auth_token,则使用环境变量 IDRAC_X_AUTH_TOKEN

示例:export IDRAC_X_AUTH_TOKEN=x_auth_token

注意

注意

  • 从可以直接访问 Redfish API 的系统运行此模块。

  • 此模块支持 IPv4 和 IPv6 地址。

  • 此模块仅支持 iDRAC9 及更高版本。

  • 此模块不支持 check_mode

示例

---
- name: Update the firmware from a single executable file available in a HTTP protocol
  dellemc.openmanage.redfish_firmware:
    baseuri: "192.168.0.1"
    username: "user_name"
    password: "user_password"
    ca_path: "/path/to/ca_cert.pem"
    image_uri: "http://192.168.0.2/firmware_repo/component.exe"
    transfer_protocol: "HTTP"

- name: Update the firmware from a single executable file available in a HTTP protocol with job_Wait
  dellemc.openmanage.redfish_firmware:
    baseuri: "192.168.0.1"
    username: "user_name"
    password: "user_password"
    ca_path: "/path/to/ca_cert.pem"
    image_uri: "http://192.168.0.2/firmware_repo/component.exe"
    transfer_protocol: "HTTP"
    job_wait: true
    job_wait_timeout: 600

- name: Update the firmware from a single executable file available in a local path
  dellemc.openmanage.redfish_firmware:
    baseuri: "192.168.0.1"
    username: "user_name"
    password: "user_password"
    ca_path: "/path/to/ca_cert.pem"
    image_uri: "/home/firmware_repo/component.exe"

返回值

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

描述

error_info

字典

http 错误的详细信息。

返回:在 http 错误时

示例: {"error": {"@Message.ExtendedInfo": [{"Message": "由于输入的JSON数据格式无效,无法完成操作。", "Resolution": "执行以下操作并重试操作:1) 输入正确的JSON数据格式并重试操作。 2) 确保JSON数据格式中没有语法错误。 3) 确保JSON数据格式中没有重复的键。", "Severity": "Critical"}, {"Message": "提交的请求正文是格式错误的JSON,无法被接收服务解析。", "Resolution": "确保请求正文是有效的JSON,然后重新提交请求。", "Severity": "Critical"}], "code": "Base.1.2.GeneralError", "message": "发生了一个通用错误。有关更多信息,请参阅ExtendedInfo。"}}

msg

字符串

固件更新任务的总体状态。

返回: 总是

示例: "固件已成功更新。"

task

字典

返回创建的任务的ID和URI。

返回: 成功

示例: {"id": "JID_XXXXXXXXXXXX", "uri": "/redfish/v1/TaskService/Tasks/JID_XXXXXXXXXXXX"}

作者

  • Felix Stephen (@felixs88)

  • Husniya Hameed (@husniya_hameed)

  • Shivam Sharma (@Shivam-Sharma)

  • Kritika Bhateja (@Kritika_Bhateja)

  • Abhishek Sinha (@ABHISHEK-SINHA10)