Enroll a bare metal node with Redfish Virtual Media¶
This procedure describes how to enroll and configure an Ironic bare metal node for fully automated UEFI provisioning using Redfish Virtual Media. Use this method when PXE is unavailable or when a more reliable HTTP-based boot process is required.
Prerequisites¶
Before starting the enrollment process, verify that the following images are available in the MOSK Image service (OpenStack Glance):
Deployment kernel
Deployment ramdisk
EFI System Partition (ESP) image
Prepare and enroll a Redfish node¶
Locate the EFI System Partition (ESP) image.
The ESP image is required to create a bootable ISO image with UEFI support. MOSK provides a prebuilt ESP image by default:
Retrieve the UUID of the prebuilt ESP image:
openstack image list --tag rockoon:managed-image --tag rockoon:baremetal-image-esp
Example of a positive system response:
+--------------------------------------+--------------------+--------+ | ID | Name | Status | +--------------------------------------+--------------------+--------+ | ad7adc69-5628-4980-8275-3411463b6c7b | ironic-esp-196c5fb | active | +--------------------------------------+--------------------+--------+
Save the ID as an environment variable for use in the enrollment command. For example:
export IRONIC_ESP_IMAGE=ad7adc69-5628-4980-8275-3411463b6c7b
Note
You can also use a custom ESP image. It must contain a GRUB2 image file and Shim for secure boot. For details, refer to OpenStack official documentation .
Define the following enrollment parameters to establish communication between Ironic and Redfish controller and define the boot path:
Parameter
Requirement
Description
--driverRequired
The default driver to use for the newly enrolled nodes. It must be
redfishfor using Redfish Virtual Media.--driver-info deploy_kernelRequired
UUID (from Glance) of the deployment kernel.
--driver-info deploy_ramdiskRequired
UUID (from Glance) of the ramdisk that is mounted at boot time.
--driver-info redfish_passwordOptional
Password for the Redfish account. Highly recommended for production.
--driver-info redfish_usernameOptional
Account with admin/server-profile access privilege. Highly recommended for production.
--driver-info redfish_addressRequired
The URL of the Redfish controller. It must include the authority portion of the URL. If the scheme is missing,
httpsis assumed. If a path is added, it will be used as the API endpointroot_prefix.--driver-info redfish_system_idOptional
The canonical path to the
ComputerSystemresource that the driver will interact with. It must include the root service, version, and the unique resource path toComputerSystemwithin the same authority as theredfish_addressproperty. For example,/redfish/v1/Systems/1. This property is only required if the target BMC manages more than oneComputerSystem.--driver-info bootloaderOptional
Glance UUID,
http://orfile://URL of the EFI system partition image containing EFI boot loader. Required for UEFI boot mode.--boot-interfaceRequired
The boot interface name that manages booting of both the deployment ramdisk and the user instances on the bare metal node. Must be set to
redfish-virtual-media.Note
To view the full list of available Redfish driver properties, run:
openstack baremetal driver property list redfish
For example, to define the enrollment parameters in the node creation command:
export IRONIC_ESP_IMAGE=ad7adc69-5628-4980-8275-3411463b6c7b openstack baremetal node create \ --driver redfish \ --driver-info deploy_kernel=<DEPLOY_KERNEL_IMAGE_ID> \ --driver-info deploy_ramdisk=<DEPLOY_RAMDISK_IMAGE_ID> \ --driver-info redfish_password=<REDFISH_PASSWORD> \ --driver-info redfish_username=<REDFISH_USERNAME> \ --driver-info redfish_address=http://10.10.0.101:8000 \ --driver-info redfish_system_id=/redfish/v1/Systems/n1 \ --driver-info bootloader=${IRONIC_ESP_IMAGE} \ --boot-interface redfish-virtual-media
Additionally, you can set the majority of these parameters after bare metal node creation:
export IRONIC_ESP_IMAGE=ad7adc69-5628-4980-8275-3411463b6c7b openstack baremetal node create --driver redfish --name test_node_1 openstack baremetal node set test_node_1 --driver-info bootloader=${IRONIC_ESP_IMAGE} openstack baremetal node set test_node_1 --boot-interface redfish-virtual-media ...
After successful enrollment, the node will be in the enroll state.
You must move it to the manageable and then available state
to make it ready for provisioning.