# idrac_firmware – Firmware update from a repository on a network share (CIFS, NFS)

New in version 2.8.

- Synopsis

- Requirements

- Parameters

- Examples

- Return Values

- Status

## Synopsis

- Update the Firmware by connecting to a network share (either CIFS or NFS) that contains a catalog of available updates.

- Network share should contain a valid repository of Update Packages (DUPs) and a catalog file describing the DUPs.

- All applicable updates contained in the repository are applied to the system.

- This feature is available only with iDRAC Enterprise License.

## Requirements

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

- omsdk

- python >= 2.7.5

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
catalog_file_name string | Default: "Catalog.xml" | Catalog file name relative to the share_name.
idrac_ip string / required |  | iDRAC IP Address.
idrac_password string / required |  | iDRAC user password. aliases: idrac_pwd
idrac_port integer | Default: 443 | iDRAC port.
idrac_user string / required |  | iDRAC username.

job_wait
boolean

Choices:
- no
- yes ←

Whether to wait for job completion or not.

reboot
boolean

Choices:
- no ←
- yes

Whether to reboots after applying the updates or not.

share_mnt string / required |  | Local mount path of the network share with read-write permission for ansible user. This option is mandatory for Network Share.
share_name string / required |  | CIFS or NFS Network share.
share_password string |  | Network share user password. This option is mandatory for CIFS Network Share. aliases: share_pwd
share_user string |  | Network share user in the format 'user@domain' or 'domain\\user' if user is part of a domain else 'user'. This option is mandatory for CIFS Network Share.

## Examples

    ---
    - name: Update firmware from repository on a Network Share
      idrac_firmware:
           idrac_ip: "192.168.0.1"
           idrac_user: "user_name"
           idrac_password: "user_password"
           share_name: "192.168.0.0:/share"
           share_user: "share_user_name"
           share_password: "share_user_pwd"
           share_mnt: "/mnt/share"
           reboot: True
           job_wait: True
           catalog_file_name: "Catalog.xml"

## Return Values

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

Key | Returned | Description
--- | --- | ---
msg string | always | Over all firmware update status. Sample: Successfully updated the firmware.
update_status dictionary | success | Firmware Update job and progress details from the iDRAC. Sample: {'InstanceID': 'JID_XXXXXXXXXXXX', 'JobState': 'Completed', 'Message': 'Job completed successfully.', 'MessageId': 'REDXXX', 'Name': 'Repository Update', 'JobStartTime': 'NA', 'Status': 'Success'}

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]

- This module is maintained by the Ansible Community. [community]

### Authors

- Rajeev Arakkal (@rajeevarakkal)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.