21.4. bios - BIOS Configuration

The following documentation is for BIOS Configuration (bios) content package at version v4.8.0-alpha00.13+g64afb10e39a49a71766eaabf3dfd536a3eadf83c.

The bios plugin allows you to get and set BIOS configuration parameters on server systems from the following manufacturers:

  • Dell, which requires the dell-support content bundle.
  • HPE, which requires the hpe-support content bundle.
  • Lenovo, which requires the lenovo-support content bundle.

In all cases, bios configuration management is implemented as a set of tasks designed to be run in the Sledgehammer boot environment.

In addition to this documentation, please see the Using the bios plugin documentation.

21.4.1. Object Specific Documentation

21.4.1.1. tasks

The content package provides the following tasks.

21.4.1.1.1. bios-set-baseline

This task gets the current BIOS configuration for the system and places it in the bios-target-configuration parameter on the system. It is intended to be used to gather baseline and golden master BIOS configurations to be applied to other systems.

21.4.1.1.2. bios-current-config

This task populates the bios-current-configuration parameter on the machine it runs on with a dump on the current configuration settings. Depending on what the underlying bios-driver supports, this may include various read-only settings, additional documentation on each setting, and allowable types and ranges that values can take. As such, the format of the bios-current-configuration parameter is deliberatly left undefined.

This task is not required for correct operation of the system – it is present for informational purposes only.

21.4.1.1.3. bios-tools-install

This task is responsible for installing the apprpriate vendor tooling on a system and setting bios-driver appropriately. It is a prerequisite to all the other tasks provided by the bios plugin, and will be automatically added to the system task list as needed.

Depending on the systems you anticipate managing, you may also need to install the dell-support, hpe-support, and lenovo-support content bundles.

21.4.1.1.4. bios-configure

This task is responsible for setting BIOS settings on a machine. The bios-target-configuration parameter on the machine must be populated with a sane set of settings for the machine, and the bios-driver parameter must be set to one appropriate to the system. This task takes several steps:

  1. If the bios-skip-config param is true, the task exits succesfully.
  2. The task compares the current settings to the ones from bios-target-configuration If the values that need to be changed are the same as the ones listed in bios-last-attempted-configuration, then the task prints out an error message indicating that the bios configuration process cannot make progress and exits with failure.
  3. The bios-last-attempted-configuration param is set to the settings from bios-target-configuration that need to be changed.
  4. The settings from bios-target-configuration are applied to the machine, and the task indicates success, failure, or a need to reboot depending on what the underlying tooling returns.

21.4.1.1.5. bios-difference

This task determines the difference between the current bios settings and the bios-target-configuration parameter on the machine. The bios-driver parameter must be set to one appropriate to the system.

The results are stored in tthe bios-configuration-difference parameter.

This task respects the bios-skip-config flag. If true, nothing is done.

21.4.1.2. params

The content package provides the following params.

21.4.1.2.1. bios-configuration-difference

The output from the bios-difference task is stored here.

21.4.1.2.2. bios-file-base-url

This url defines the path to find files needed by the custom configuration tasks.

This is currently only used by the lenovo tooling.

This is an expanding parameter. Template expansions can be added to the string.

The string should NOT end in a ‘/’.

21.4.1.2.3. bios-target-configuration-compose

If bios-target-configuration-compose is set to true, the system will attempt to build the bios-target-configuration from all the layers of profiles and parameters with the layers closer to the machine object overriding the other layers.

This parameter defaults to false for backwards compatability.

21.4.1.2.4. bios-last-attempted-configuration

This parameter keeps track of the last BIOS settings that the BIOS configuration tools tried to set. The bios-configure task uses it to keep from entering an infinite loop of trying to set the same settings by failing with an informative error instead.

21.4.1.2.5. bios-lenovo-configuration

This is a list of strings (to be files) to apply to the system through onecli in batch mode.

If a line contains –file=<file> or –file <file>, the system will attempt to make sure that file is present and, if not present, retrieve it from the bios-file-base-url location. Paths are maintained.

These are applied after bios-configure.

21.4.1.2.6. bios-lenovo-pre-configuration

This is a list of strings (to be files) to apply to the system through onecli in batch mode.

If a line contains –file=<file> or –file <file>, the system will attempt to make sure that file is present and, if not present, retrieve it from the bios-file-base-url location. Paths are maintained.

These are applied before bios-configure.

21.4.1.2.7. bios-driver

This parameter lets the bioscfg command know what tooling it should use to get and set BIOS configuration values on a machine. The current options are :

  • dell which will use racadm to get and set BIOS settings via racadm get.
  • hp which will use conrep to get and set BIOS settings.
  • lenovo which will use onecli to get and set BIOS via onecli config.
  • supermicro whicl will use sum to get and set BIOS settings.
  • none which does nothing.

Support for other BIOS configuration tooling is welcome.

21.4.1.2.8. bios-ilo-pre-configuration

This is a list of xml strings to apply to the system through hponcfg.

These are applied before bios-configure.

21.4.1.2.9. bios-target-configuration

The desired target configuration that the bios-configure task should try to apply to the system. Valid settings for this field vary depending on system manufacturer, model, BIOS and firmware revision, and even on the current system settings. You can use the bios-set-baseline task to populate this param with the current BIOS settings from a machine in a form that can be edited for reuse on other compatible machines.

21.4.1.2.10. bios-current-configuration

The current configuration that the various tasks have gathered about the system. Valid settings for this field vary depending on system manufacturer, model, BIOS and firmware revision, and even on the current system settings.

21.4.1.2.11. bios-idrac-configuration

This is currently unspecified.

These are run applied after bios-configure.

21.4.1.2.12. bios-idrac-pre-configuration

This is currently unspecified.

These are run before bios-configure.

21.4.1.2.13. bios-ilo-configuration

This is a list of xml strings to apply to the system through hponcfg.

These are applied after bios-configure.

21.4.1.2.14. bios-skip-config

If this parameter is true, then all BIOS config tasks will succeed without doing anything.

21.4.1.3. stages

The content package provides the following stages.

21.4.1.3.1. bios-inventory

This stage inventories the current BIOS configuration with the `` bios-current-config`` task.

21.4.1.3.2. bios-baseline

This stage extracts the current BIOS configuration from a target system and saves it to the bios-target-configuration parameter on that system. You can then use modify and use that configuration on other similar systems.

21.4.1.3.3. bios-configure

This stage inventories the current BIOS configuration with the `` bios-current-config`` task, then attempts to set the BIOS configuration using the bios-configure task.