dellemc.openmanage.redfish_firmware module – To perform a component firmware update using the image file available on the local or remote system

Note

This module is part of the dellemc.openmanage collection (version 4.4.0).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install dellemc.openmanage.

To use it in a playbook, specify: dellemc.openmanage.redfish_firmware.

New in version 2.1.0: of dellemc.openmanage

Synopsis

  • This module allows the firmware update of only one component at a time. If the module is run for more than one component, an error message is returned.

  • Depending on the component, the firmware update is applied after an automatic or manual reboot.

Requirements

The below requirements are needed on the host that executes this module.

  • python >= 2.7.5

  • urllib3

Parameters

Parameter

Comments

baseuri

string / required

IP address of the target out-of-band controller. For example- <ipaddress>:<port>.

image_uri

string / required

Firmware Image location URI or local path.

For example- http://<web_address>/components.exe or /home/firmware_repo/component.exe.

password

string / required

Password of the target out-of-band controller.

transfer_protocol

string

Protocol used to transfer the firmware image file. Applicable for URI based update.

Choices:

  • CIFS

  • FTP

  • HTTP ← (default)

  • HTTPS

  • NSF

  • OEM

  • SCP

  • SFTP

  • TFTP

username

string / required

Username of the target out-of-band controller.

Notes

Note

  • Run this module from a system that has direct access to Redfish APIs.

  • This module does not support check_mode.

Examples

---
- 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"
    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 local path
  dellemc.openmanage.redfish_firmware:
    baseuri: "192.168.0.1"
    username: "user_name"
    password: "user_password"
    image_uri: "/home/firmware_repo/component.exe"

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

error_info

dictionary

Details of http error.

Returned: on http error

Sample: {“error”: {“@Message.ExtendedInfo”: [{“Message”: “Unable to complete the operation because the JSON data format entered is invalid.”, “Resolution”: “Do the following and the retry the operation: 1) Enter the correct JSON data format and retry the operation. 2) Make sure that no syntax error is present in JSON data format. 3) Make sure that a duplicate key is not present in JSON data format.”, “Severity”: “Critical”}, {“Message”: “The request body submitted was malformed JSON and could not be parsed by the receiving service.”, “Resolution”: “Ensure that the request body is valid JSON and resubmit the request.”, “Severity”: “Critical”}], “code”: “Base.1.2.GeneralError”, “message”: “A general error has occurred. See ExtendedInfo for more information.”}}

msg

string

Overall status of the firmware update task.

Returned: always

Sample: “Successfully submitted the firmware update task.”

task

dictionary

Returns ID and URI of the created task.

Returned: success

Sample: {“id”: “JID_XXXXXXXXXXXX”, “uri”: “/redfish/v1/TaskService/Tasks/JID_XXXXXXXXXXXX”}

Authors

  • Felix Stephen (@felixs88)