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 3.2.0).

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)