23.2. 使用 rhel_mgmt.ipmi_power 模块设置系统电源状态
您可以使用 redhat.rhel_mgmt 集合的 ipmi_power 模块来设置硬件状态。例如,您可以确保主机已加电或被硬重置,而不涉及操作系统。ipmi_power 模块使用智能平台管理接口(IPMI)来执行操作。
当您使用此 Ansible 模块时,会涉及三个主机:控制节点、受管节点和在其上应用实际 IPMI 操作的带有基板管理控制器(BMC)的主机。控制节点在受管节点上执行 playbook。受管主机连接到远程 BMC ,以执行 IPMI 操作。例如,如果您在 playbook 中设置了 hosts: managed-node-01.example.com 和 name: server.example.com,则 managed-node-01.example.com 会使用 server.example.com 上的 IPMI 更改设置。
先决条件
- 您已准备好控制节点和受管节点。
- 您以可在受管主机上运行 playbook 的用户身份登录到控制节点。
-
您用于连接到受管节点的帐户对它们具有
sudo权限。 -
ansible-collection-redhat-rhel_mgmt软件包已安装在控制节点上。 - 您有访问 BMC 的凭证,这些凭证有更改设置的权限。
- 受管节点可以通过网络访问远程 BMC。
流程
将敏感变量存储在加密的文件中:
创建 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! Toggle word wrap Toggle overflow 在
ansible-vault create命令打开编辑器后,以<key>: <value>格式输入敏感数据:ipmi_usr: <username> ipmi_pwd: <password>
ipmi_usr: <username> ipmi_pwd: <password>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存更改,并关闭编辑器。Ansible 加密 vault 中的数据。
创建一个包含以下内容的 playbook 文件,如
~/playbook.yml:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例 playbook 中指定的设置包括如下:
name: <bmc_hostname_or_ip_address>- 定义 BMC 的主机名或 IP 地址。这是受管节点在其上执行操作的主机的 BMC。
port: <bmc_port_number>-
设置远程管理控制协议(RMCP)端口号。默认值为
623。 state: <value>设置设备应处于的状态。您可以选择以下值之一:
-
on:打开系统的电源。 -
ff:在不通知操作系统的情况下关闭系统。 -
shutdown:从操作系统请求关闭。 -
reset:执行硬重置。 -
boot: 如果系统已关闭,打开系统电源,或如果系统已关闭,重置系统。
-
如需关于 playbook 中使用的所有变量的详细信息,请在控制节点上使用
ansible-doc redhat.rhel_mgmt.ipmi_power命令显示模块的文档。验证 playbook 语法:
ansible-playbook --ask-vault-pass --syntax-check ~/playbook.yml
$ ansible-playbook --ask-vault-pass --syntax-check ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,这个命令只验证语法,不能防止错误的、但有效的配置。
运行 playbook:
ansible-playbook --ask-vault-pass ~/playbook.yml
$ ansible-playbook --ask-vault-pass ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow