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

Note

This plugin is part of the dellemc.openmanage collection (version 4.3.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 Choices/Defaults 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
    Choices:
  • CIFS
  • FTP
  • HTTP ←
  • HTTPS
  • NSF
  • OEM
  • SCP
  • SFTP
  • TFTP
Protocol used to transfer the firmware image file. Applicable for URI based update.
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 Returned Description
error_info
dictionary
on http error
Details of 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
always
Overall status of the firmware update task.

Sample:
Successfully submitted the firmware update task.
task
dictionary
success
Returns ID and URI of the created task.

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


Authors

  • Felix Stephen (@felixs88)