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

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

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

dictionary of BIOS attributes to update

Default: {}

boot_order

list / elements=string

added in 0.2.0 of community.general

list of BootOptionReference strings specifying the BootOrder

Default: []

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

EthernetInterface Address string on OOB controller

Default: “null”

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

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.

Choices:

  • no ← (default)

  • yes

timeout

integer

Timeout in seconds for URL requests to OOB controller

Default: 10

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

Description

msg

string

Message with action result or error description

Returned: always

Sample: “Action was successful”

Authors

  • Jose Delarosa (@jose-delarosa)