Greetings!

You can do this with Ironic. In fact, it is the very same tool deep under the hood in OpenShift to deploy bare metal to be used as part of the cluster using Metal3.

The biggest question, and realistically this is more a process question is if you have the BMC address/credential details already sorted and readily available. The next question beyond that is "how would you like to proceed", which requires gaining some context and determining what path you'd prefer to take.

1) Generally speaking, you would enroll the nodes into ironic[0] utilizing the ilo5[1] hardware type (Hardware types are ironic "speak" for drivers).
2) You would Utilize the cleaning process to set BIOS[2] and RAID[3] settings.
3) You can then deploy the nodes in an automated fashion. The question will be how do you want to pre-provide configuration details, if you want to at all. Generally you'll want to use whole disk images, but if your looking for something like OpenShift, you may just want to have Metal3[4] do it as part of the installer provisioned infrastructure deployment path. If you just choose to deploy an ISO, all configuration has to be able to be self determined. This is available through the "ramdisk" deploy interface[5], which is also usable with Virtual Media depending on the "boot_interface" setting, but can also be used with the "ipxe" boot interface. The "direct" deploy interface[6] is for deploying whole disk images[7]. There is also an anaconda[8] deploy interface, but it is most definitely the more advanced path to take as well.

Generally speaking, the reason tools like Bifrost[9] exist, is to ease the process of getting Ironic stood up, since it does it for you, and also enabling some common patterns to be followed, but I don't think there is explicit support in the playbook modeling of Bifrost to enable application of Firmware and Bios settings. Then again, if you are comfortable with Ansible, that might be easy as well. Patches are also welcome!

Hopefully I didn't overload you with information, because it is a lot of context and links! Ironic is all about empowering the bare metal machine operator's desired use cases in common patterns which exist when your managing fleets of bare metal machines. If you have any questions, I would highly encourage joining in in #openstack-ironic on irc.oftc.net where questions can also be answered.

Hope this helps!

-Julia


[0]: General Enrollment Documentation: https://docs.openstack.org/ironic/latest/install/enrollment.html
[1]: iLO driver documentation - iLO Enrollment examples: https://docs.openstack.org/ironic/latest/admin/drivers/ilo.html#hardware-type
[2]: Bios Configuration with iLO - https://docs.openstack.org/ironic/latest/admin/drivers/ilo.html#bios-configuration-support
[3]: RAID configuration - General - https://docs.openstack.org/ironic/latest/admin/raid.html#raid
[4]: Metal3 project - https://metal3.io/
[5]: Ramdisk deployment interface documentation - https://docs.openstack.org/ironic/latest/admin/ramdisk-boot.html
[6]: Direct Deploy Interface Documentation - https://docs.openstack.org/ironic/latest/admin/interfaces/deploy.html#direct-deploy
[7] Disk Image Builder - An image building utility - https://docs.openstack.org/diskimage-builder/latest/
[8]: Anaconda Deployment interface configuration and use - https://docs.openstack.org/ironic/latest/admin/anaconda-deploy-interface.html
[9] Bifrost installation - https://docs.openstack.org/bifrost/latest/install/index.html

On Fri, Nov 3, 2023 at 6:10 AM Leszek Szczepanowski <twinsen@mspanc.net> wrote:
Hi all,

I have the following use case: I need to install Openshift on 100 HP ProLiant servers, those are HP DL360 Gen10+. They are mounted in the racks, with factory settings. So, BIOS settings are default, as well as RBSU, RAID configs and ILO (ILO5). Is it possible to provision them using Openstack? Set a few parameters into ILO, into RBSU/BIOS, set up RAID controller disks (MegaRAID), and then put some ISO image and boot it? Or, maybe even better: create an Openshift cluster similar to how we do it with cloud providers? I have done this for years manually, via ILO WebUI + HTML5 console, but I'm actually tired of this. Can it be somehow automated?
-- 
Leszek A. Szczepanowski
twinsen@mspanc.net