23.5. 使用 rhel_mgmt.redfish_config 模块来管理 BIOS、UEFI 和带外控制器
您可以使用 redhat.rhel_mgmt
集合的 redfish_config
模块,通过 Redfish API 配置 BIOS、UEFI 和带外(OOB)控制器设置。这可让您使用 Ansible 远程修改设置。
当您使用此 Ansible 模块时,会涉及三个主机:控制节点、受管节点和在其上执行实际操作的带有 OOB 控制器的主机。控制节点在受管节点上执行 playbook,受管主机使用 Redfish API 连接到远程 OOB 控制器来执行操作。例如,如果您在 playbook 中设置了 hosts: managed-node-01.example.com
和 baseuri: server.example.com
,则 managed-node-01.example.com
对 server.example.com
执行操作。
先决条件
- 您已准备好控制节点和受管节点。
- 您以可在受管主机上运行 playbook 的用户身份登录到控制节点。
-
您用于连接到受管节点的帐户对它们具有
sudo
权限。 -
ansible-collection-redhat-rhel_mgmt
软件包已安装在控制节点上。 - 您有访问 OOB 控制器的凭证,这些凭证有更改设置的权限。
- 受管节点可以通过网络访问远程 OOB 控制器。
流程
将敏感变量存储在加密的文件中:
创建 vault :
ansible-vault create ~/vault.yml
$ ansible-vault create ~/vault.yml New Vault password: <vault_password> Confirm New Vault password: <vault_password>
Copy to Clipboard Copied! 在
ansible-vault create
命令打开编辑器后,以<key>: <value>
格式输入敏感数据:redfish_usr: <username> redfish_pwd: <password>
redfish_usr: <username> redfish_pwd: <password>
Copy to Clipboard Copied! - 保存更改,并关闭编辑器。Ansible 加密 vault 中的数据。
创建一个包含以下内容的 playbook 文件,如
~/playbook.yml
:--- - name: Configure BIOS/UEFI settings by using the Redfish API hosts: managed-node-01.example.com vars_files: - ~/vault.yml tasks: - name: Change the boot mode to UEFI redhat.rhel_mgmt.redfish_config: baseuri: <uri> username: "{{ redfish_usr }}" password: "{{ redfish_pwd }}" category: Systems command: SetBiosAttributes bios_attributes: BootMode: "Uefi"
--- - name: Configure BIOS/UEFI settings by using the Redfish API hosts: managed-node-01.example.com vars_files: - ~/vault.yml tasks: - name: Change the boot mode to UEFI redhat.rhel_mgmt.redfish_config: baseuri: <uri> username: "{{ redfish_usr }}" password: "{{ redfish_pwd }}" category: Systems command: SetBiosAttributes bios_attributes: BootMode: "Uefi"
Copy to Clipboard Copied! 示例 playbook 中指定的设置包括如下:
baseuri: <uri>
- 定义 OOB 控制器的 URI。这是受管节点在其上执行操作的主机的 OOB 控制器。
category: <value>
设置要执行的命令的类别。可用的类别如下:
-
Accounts
:管理 OOB 控制器的用户帐户。 -
Chassis
:管理与机箱相关的设置。 -
Manager
:提供对 Redfish 服务的访问。 -
Session
:管理 Redfish 登录会话。 -
Systems
(默认):管理与机器相关的设置。 -
Update
:管理与固件更新相关的操作。
-
command: <command>
- 设置要执行的命令。根据命令,可能需要设置额外的变量。
如需有关 playbook 中使用的所有变量的详细信息,请在控制节点上使用
ansible-doc redhat.rhel_mgmt.redfish_config
命令显示模块的文档。验证 playbook 语法:
ansible-playbook --ask-vault-pass --syntax-check ~/playbook.yml
$ ansible-playbook --ask-vault-pass --syntax-check ~/playbook.yml
Copy to Clipboard Copied! 请注意,这个命令只验证语法,不能防止错误的、但有效的配置。
运行 playbook:
ansible-playbook --ask-vault-pass ~/playbook.yml
$ ansible-playbook --ask-vault-pass ~/playbook.yml
Copy to Clipboard Copied!