Chapter 4. Ansible IPMI modules in RHEL
Chapter 4. Ansible IPMI modules in RHEL 4.1. The rhel_mgmt collection The Intelligent Platform Management Interface (IPMI) is a specification for a set of standard protocols to communicate with baseboard management controller (BMC) devices. The IPMI modules allow you to enable and support hardware management automation. The IPMI modules are available in: The rhel_mgmt Collection. The package name is ansible-collection-redhat-rhel_mgmt . The RHEL 7.9 AppStream, as part of the new ansible-collection-redhat-rhel_mgmt package. The following IPMI modules are available in the rhel_mgmt collection: ipmi_boot : Management of boot device order ipmi_power : Power management for machine The mandatory parameters used for the IPMI Modules are: ipmi_boot parameters: Module name Description name Hostname or ip address of the BMC password Password to connect to the BMC bootdev Device to be used on boot * network * floppy * hd * safe * optical * setup * default User Username to connect to the BMC ipmi_power parameters: Module name Description name BMC Hostname or IP address password Password to connect to the BMC user Username to connect to the BMC State Check if the machine is on the desired status * on * off * shutdown * reset * boot 4.2. Installing the rhel mgmt Collection using the CLI You can install the rhel_mgmt Collection using the command line. Prerequisites The ansible-core package is installed. Procedure Install the collection via RPM package: # yum install ansible-collection-redhat-rhel_mgmt After the installation is finished, the IPMI modules are available in the redhat.rhel_mgmt Ansible collection. Additional resources The ansible-playbook man page. 4.3. Example using the ipmi_boot module The following example shows how to use the ipmi_boot module in a playbook to set a boot device for the boot. For simplicity, the examples use the same host as the Ansible control host and managed host, thus executing the modules on the same host where the playbook is executed. Prerequisites The rhel_mgmt collection is installed. The pyghmi library in the python3-pyghmi package is installed in one of the following locations: The host where you execute the playbook. The managed host. If you use localhost as the managed host, install the python3-pyghmi package on the host where you execute the playbook instead. The IPMI BMC that you want to control is accessible via network from the host where you execute the playbook, or the managed host (if not using localhost as the managed host). Note that the host whose BMC is being configured by the module is generally different from the host where the module is executing (the Ansible managed host), as the module contacts the BMC over the network using the IPMI protocol. You have credentials to access BMC with an appropriate level of access. Procedure Create a new playbook.yml file with the following content: --- - name: Sets which boot device will be used on boot hosts: localhost tasks: - redhat.rhel_mgmt.ipmi_boot: name: bmc.host.example.com user: admin_user password: basics bootdev: hd Execute the playbook against localhost: As a result, the output returns the value "success". 4.4. Example using the ipmi_power module This example shows how to use the ipmi_boot module in a playbook to check if the system is turned on. For simplicity, the examples use the same host as the Ansible control host and managed host, thus executing the modules on the same host where the playbook is executed. Prerequisites The rhel_mgmt collection is installed. The pyghmi library in the python3-pyghmi package is installed in one of the following locations: The host where you execute the playbook. The managed host. If you use localhost as the managed host, install the python3-pyghmi package on the host where you execute the playbook instead. The IPMI BMC that you want to control is accessible via network from the host where you execute the playbook, or the managed host (if not using localhost as the managed host). Note that the host whose BMC is being configured by the module is generally different from the host where the module is executing (the Ansible managed host), as the module contacts the BMC over the network using the IPMI protocol. You have credentials to access BMC with an appropriate level of access. Procedure Create a new playbook.yml file with the following content: --- - name: Turn the host on hosts: localhost tasks: - redhat.rhel_mgmt.ipmi_power: name: bmc.host.example.com user: admin_user password: basics state: on Execute the playbook: The output returns the value "true".
yum install ansible-collection-redhat-rhel_mgmt --- - name: Sets which boot device will be used on next boot hosts: localhost tasks: - redhat.rhel_mgmt.ipmi_boot: name: bmc.host.example.com user: admin_user password: basics bootdev: hd ansible-playbook playbook.yml --- - name: Turn the host on hosts: localhost tasks: - redhat.rhel_mgmt.ipmi_power: name: bmc.host.example.com user: admin_user password: basics state: on ansible-playbook playbook.yml