BIOS tool
This tool simplifies managing BIOS settings across multiple servers, ensuring consistency and reducing manual configuration efforts.
BIOS tool overview
The bios_tool
is a command-line utility designed to manage BIOS settings on WEKA servers. It lets administrators view, set, and correct BIOS configurations across multiple servers. This tool is crucial for ensuring that servers in a cluster are properly configured and compliant with desired BIOS settings, using pre-defined configuration files or command-line inputs.
You can find the BIOS tool on GitHub at: https://github.com/weka/tools/tree/master/bios_tool.
Features
View and set BIOS settings: Inspect and apply BIOS settings across multiple servers.
BMC configuration: Configure BMC (Baseboard Management Controller) to allow RedFish and IPMI Over LAN access.
Fix BIOS settings: Correct any BIOS settings that deviate from specified configurations.
Reboot control: Optionally reboot servers after applying BIOS changes.
Compare settings: Diff the BIOS configurations between two servers to identify mismatches.
Support for multiple manufacturers: Compatible with servers from manufacturers like Dell, HPE, Lenovo, and Supermicro.
Usage
The bios_tool
offers several command-line options to customize its behavior:
Parameters
-h, --help
Displays the help message.
-c, --hostconfigfile [HOSTCONFIGFILE]
Specify the host configuration file (YAML/CSV) containing server details.
-b, --bios [BIOS]
Specify the BIOS settings configuration file (YAML).
--bmc_config
Enables RedFish and IPMI Over LAN on all servers.
--fix
Corrects BIOS settings based on the configuration file.
--reboot
Reboots the server after applying any changes to the BIOS settings. Only a server with modifications will be rebooted.
--dump
Displays BIOS settings without making changes.
--reset_bios
Resets BIOS to default settings. Use --reboot
for automatic reboot after resetting.
--diff DIFF DIFF
Compares BIOS settings between two servers.
--bmc_ips [BMC_IPS ...]
List of BMC IP addresses (space-separated) to configure servers without a config file.
For example, --bmc_ips 192.168.1.1 192.168.1.2
.
Combined with --bmc_username
and --bmc_password
, this option enables quick configuration of multiple servers with identical credentials, eliminating the need for a configuration file.
--bmc_username
--bmc_password
Credentials for BMC access.
-v, --verbose
Provides verbose output.
--version
Displays the current version of BIOS tool.
Getting started
The bios_tool requires two configuration files:
Host configuration file (
host_config.yml
orhost_config.csv
)BIOS settings configuration file (
bios_config.yml
)
You can use the default filenames or specify custom ones using the command-line options -c/--hostconfigfile
for the host configuration file and -b/--bios
or --bmc_ips
for BIOS settings.
Host configuration (host_config.yml
or .csv
)
The host configuration file defines the servers (hosts) and their corresponding BMC credentials (IPMI, iLO, iDRAC). You can use either YAML or CSV format, indicated by the file extension (.yml
or .csv
).
The default format is CSV, which can be easily edited in spreadsheet tools like Excel. Example CSV format:
Alternatively, you can use YAML for more structured data:
Define all the servers you plan to manage in this file.
BIOS configuration (bios_config.yml
and others)
The BIOS settings configuration file (bios_config.yml
) specifies the BIOS configurations you want applied to the servers listed in the host configuration file.
There are additional preset files available, such as Dell-Genoa-bios.yml
for Dell servers with Genoa AMD processors, and WEKApod.yml
for WEKApod servers (which come pre-configured but can be applied to similar servers).
The BIOS configuration file follows standard YAML format. Example:
The server-manufacturer
corresponds to the Oem
field in RedFish data, allowing compatibility with most RedFish-supported manufacturers. Supported manufacturers include Dell, HPE, Lenovo, and Supermicro, and defaults for these are included in the sample file.
The architecture
can be either AMD
or Intel
(no other architectures are supported).
For a detailed example, refer to the provided bios_config.yml
. Here’s a sample snippet:
Default mode
When run without command-line options, bios_tool operates in a read-only mode, scanning the hosts listed in the host_config.csv
and comparing their current BIOS settings with those specified in the bios_settings.yml
file. No changes are applied to the servers during this process.
Example output:
In this mode, the tool provides a detailed report on any discrepancies between the current BIOS configurations and the desired settings, allowing you to review changes without affecting the servers.
Optional modes
BMC configuration mode
Using the --bmc_config
option, bios_tool will SSH into each server to enable both RedFish and IPMI Over LAN. RedFish is required for the tool’s operation, while IPMI Over LAN is necessary for WMS deployment, so it is automatically enabled.
Fix mode
The --fix
option allows bios_tool to apply the BIOS settings specified in the bios_settings.yml
file. The tool does not reboot the servers unless the --reboot
option is also specified.
Reboot mode
When used with the --fix
option, --reboot
will instruct bios_tool to reboot the servers after applying any BIOS changes. Only servers that have been modified will be rebooted, ensuring the changes take effect.
Dump mode
The --dump
option provides a read-only output of all current BIOS settings for each server. No changes are made to the servers in this mode.
Diff mode
Using --diff
compares BIOS settings between two servers and highlights any discrepancies.
Example diff output:
Last updated