community.general.redfish_config 模块 – 使用 Redfish API 管理带外控制器

注意

此模块是 community.general 集合(版本 10.1.0)的一部分。

如果您正在使用 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general

要在 playbook 中使用它,请指定:community.general.redfish_config

概要

  • 在本地构建 Redfish URI 并将其发送到远程 OOB 控制器,以设置或更新配置属性。

  • 管理 BIOS 配置设置。

  • 管理 OOB 控制器配置设置。

参数

参数

注释

auth_token

字符串

在 community.general 2.3.0 中添加

用于向 OOB 控制器进行身份验证的安全令牌。

baseuri

字符串 / 必需

OOB 控制器的基本 URI。

bios_attributes

字典

在 community.general 0.2.0 中添加

要更新的 BIOS 属性字典。

默认值: {}

boot_order

列表 / 元素=字符串

在 community.general 0.2.0 中添加

指定启动顺序的 BootOptionReference 字符串列表。

默认值: []

category

字符串 / 必需

要在 OOB 控制器上执行的类别。

ciphers

列表 / 元素=字符串

在 community.general 9.2.0 中添加

用于请求的 SSL/TLS 密码。

当提供列表时,所有密码按顺序用 : 连接。

有关更多详细信息,请参阅 OpenSSL 密码列表格式

可用密码取决于 Python 和 OpenSSL/LibreSSL 版本。

command

列表 / 元素=字符串 / 必需

要在 OOB 控制器上执行的命令列表。

hostinterface_config

字典

在 community.general 4.1.0 中添加

OOB 控制器上 HostInterface 的设置字典。

默认值: {}

hostinterface_id

字符串

在 community.general 4.1.0 中添加

如果存在多个 HostInterface,则为 Redfish HostInterface 实例 ID。

network_protocols

字典

在 community.general 0.2.0 中添加

要更新的管理器服务设置字典。

默认值: {}

nic_addr

字符串

在 community.general 0.2.0 中添加

OOB 控制器上的 EthernetInterface 地址字符串。

默认值: "null"

nic_config

字典

在 community.general 0.2.0 中添加

OOB 控制器上 EthernetInterface 的设置字典。

默认值: {}

password

字符串

用于向 OOB 控制器进行身份验证的密码。

resource_id

字符串

在 community.general 0.2.0 中添加

要修改的系统、管理器或机箱的 ID。

secure_boot_enable

布尔值

在 community.general 7.5.0 中添加

用于启用或禁用安全启动的设置参数。

选择

  • false

  • true ← (默认)

service_id

字符串

在 community.general 8.4.0 中添加

要更新的管理器的 ID。

sessions_config

字典

在 community.general 5.7.0 中添加

会话的设置字典。

默认值: {}

storage_none_volume_deletion

布尔值

在 community.general 9.5.0 中添加

指示是否在创建新卷之前自动删除所有非 RAID 卷。

选择

  • false ← (默认)

  • true

storage_subsystem_id

字符串

在 community.general 7.3.0 中添加

要在其上创建卷的存储子系统的 ID。

默认值: ""

strip_etag_quotes

布尔值

在 community.general 3.7.0 中添加

删除 PATCH 请求的 If-Match 标头中使用的 etag 的周围引号。

仅当 If-Match 仅匹配未加引号的 etag 字符串时,才使用此选项来解决不良的供应商实现。

选择

  • false ← (默认)

  • true

timeout

整数

对 OOB 控制器的 HTTP 请求的超时时间(以秒为单位)。

此参数的默认值在 community.general 9.0.0 中从 10 更改为 60

默认值: 60

username

字符串

用于向 OOB 控制器进行身份验证的用户名。

volume_details

字典

在 community.general 7.5.0 中添加

设置要创建的卷的字典。

如果此字典中未指定 CapacityBytes 键,则卷的大小将由 Redfish 服务确定。大小可能不是最大可用大小。

默认值: {}

volume_ids

列表 / 元素=字符串

在 community.general 7.3.0 中添加

要删除的卷的 ID 列表。

默认值: []

属性

属性

支持

描述

check_mode

支持:

可以在 check_mode 中运行并返回更改状态预测,而无需修改目标。

diff_mode

支持:

在差异模式下,将返回有关已更改(或可能需要在 check_mode 中更改)的内容的详细信息。

示例

- 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 }}"

- name: Disable Host Interface
  community.general.redfish_config:
    category: Manager
    command: SetHostInterface
    hostinterface_config:
      InterfaceEnabled: false
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"

- name: Enable Host Interface for HostInterface resource ID '2'
  community.general.redfish_config:
    category: Manager
    command: SetHostInterface
    hostinterface_config:
      InterfaceEnabled: true
    hostinterface_id: "2"
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"

- name: Set SessionService Session Timeout to 30 minutes
  community.general.redfish_config:
    category: Sessions
    command: SetSessionService
    sessions_config:
      SessionTimeout: 1800
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"

- name: Enable SecureBoot
  community.general.redfish_config:
    category: Systems
    command: EnableSecureBoot
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"

- name: Set SecureBoot
  community.general.redfish_config:
    category: Systems
    command: SetSecureBoot
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    secure_boot_enable: True

- name: Delete All Volumes
  community.general.redfish_config:
    category: Systems
    command: DeleteVolumes
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    storage_subsystem_id: "DExxxxxx"
    volume_ids: ["volume1", "volume2"]

- name: Create Volume
  community.general.redfish_config:
    category: Systems
    command: CreateVolume
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"
    storage_subsystem_id: "DExxxxxx"
    volume_details:
      Name: "MR Volume"
      RAIDType: "RAID0"
      Drives:
        - "/redfish/v1/Systems/1/Storage/DE00B000/Drives/1"

- name: Set service identification to {{ service_id }}
  community.general.redfish_config:
    category: Manager
    command: SetServiceIdentification
    service_id: "{{ service_id }}"
    baseuri: "{{ baseuri }}"
    username: "{{ username }}"
    password: "{{ password }}"

返回值

常见的返回值记录在这里,以下是此模块特有的字段

描述

msg

字符串

带有操作结果或错误描述的消息

返回:总是

示例: "操作 成功"

作者

  • Jose Delarosa (@jose-delarosa)

  • T S Kushal (@TSKushal)