community.general.redfish_config – Manages Out-Of-Band controllers using Redfish APIs

Note

This plugin is part of the community.general collection (version 3.8.1).

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 community.general.

To use it in a playbook, specify: community.general.redfish_config.

Synopsis

  • Builds Redfish URIs locally and sends them to remote OOB controllers to set or update a configuration attribute.
  • Manages BIOS configuration settings.
  • Manages OOB controller configuration settings.

Parameters

Parameter Choices/Defaults Comments
auth_token
string
added in 2.3.0 of community.general
Security token for authentication with OOB controller
baseuri
string / required
Base URI of OOB controller
bios_attributes
dictionary
added in 0.2.0 of community.general
Default:
{}
dictionary of BIOS attributes to update
boot_order
list / elements=string
added in 0.2.0 of community.general
Default:
[]
list of BootOptionReference strings specifying the BootOrder
category
string / required
Category to execute on OOB controller
command
list / elements=string / required
List of commands to execute on OOB controller
network_protocols
dictionary
added in 0.2.0 of community.general
setting dict of manager services to update
nic_addr
string
added in 0.2.0 of community.general
Default:
"null"
EthernetInterface Address string on OOB controller
nic_config
dictionary
added in 0.2.0 of community.general
setting dict of EthernetInterface on OOB controller
password
string
Password for authentication with OOB controller
resource_id
string
added in 0.2.0 of community.general
The ID of the System, Manager or Chassis to modify
strip_etag_quotes
boolean
added in 3.7.0 of community.general
    Choices:
  • no
  • yes
Removes surrounding quotes of etag used in If-Match header of PATCH requests.
Only use this option to resolve bad vendor implementation where If-Match only matches the unquoted etag string.
timeout
integer
Default:
10
Timeout in seconds for URL requests to OOB controller
username
string
User for authentication with OOB controller

Examples

- name: Set BootMode to UEFI
  community.general.redfish_config:
    category: Systems
    command: SetBiosAttributes
    resource_id: 437XR1138R2
    bios_attributes:
      BootMode: "Uefi"
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"

- name: Set multiple BootMode attributes
  community.general.redfish_config:
    category: Systems
    command: SetBiosAttributes
    resource_id: 437XR1138R2
    bios_attributes:
      BootMode: "Bios"
      OneTimeBootMode: "Enabled"
      BootSeqRetry: "Enabled"
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"

- name: Enable PXE Boot for NIC1
  community.general.redfish_config:
    category: Systems
    command: SetBiosAttributes
    resource_id: 437XR1138R2
    bios_attributes:
      PxeDev1EnDis: Enabled
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"

- name: Set BIOS default settings with a timeout of 20 seconds
  community.general.redfish_config:
    category: Systems
    command: SetBiosDefaultSettings
    resource_id: 437XR1138R2
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    timeout: 20

- name: Set boot order
  community.general.redfish_config:
    category: Systems
    command: SetBootOrder
    boot_order:
      - Boot0002
      - Boot0001
      - Boot0000
      - Boot0003
      - Boot0004
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"

- name: Set boot order to the default
  community.general.redfish_config:
    category: Systems
    command: SetDefaultBootOrder
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"

- name: Set Manager Network Protocols
  community.general.redfish_config:
    category: Manager
    command: SetNetworkProtocols
    network_protocols:
      SNMP:
        ProtocolEnabled: True
        Port: 161
      HTTP:
        ProtocolEnabled: False
        Port: 8080
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"

- name: Set Manager NIC
  community.general.redfish_config:
    category: Manager
    command: SetManagerNic
    nic_config:
      DHCPv4:
        DHCPEnabled: False
      IPv4StaticAddresses:
        Address: 192.168.1.3
        Gateway: 192.168.1.1
        SubnetMask: 255.255.255.0
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"

Return Values

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

Key Returned Description
msg
string
always
Message with action result or error description

Sample:
Action was successful


Authors

  • Jose Delarosa (@jose-delarosa)

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/general/redfish_config_module.html