Linux – How to automate RAID configuration, BIOS configs during PXE installs

linuxpxe-boot

Ok, since this got put on hold, trying to reword it to fit the format better.

Business problem: As part of our automated install process of baremetal machines, we need to do some basic pre-work on the system before it can be configured. This mostly consists of configuring the hardware raid and talking to the light's out management. We have a large mix of hardware – everywhere from HPDL170's to blades, to Dell R6 and R8 series to FC630's.

Process so far: Currently, the automated process registers the system with one of our Cobbler servers and assigns it a maintenance profile. It then PXE boots into the RHEL6u5 boot iso and run some scripts via anaconda and kickstart. It then talks to the Cobbler server and flips the profile to the real OS profile we wish to install. Then the goal is to tell the system to rePXE via IPMI and reboot, which it'll then go install itself with the given OS. The end installation OS can either be Linux or Windows, depending on the customer. This is all part of a larger automated process for deployments of new baremetal environments.

There are, however, issues with this.

  1. Putting packages into anaconda's stage2 image isn't always the
    easiest, especially if those packages have lots of dependencies.

  2. Anaconda's %pre and %post environment don't work well with certain kernel modules.

  3. Trying to do RAID during Anaconda's %pre is problematic because rescanning the bus during the pre generally results in an out-of-order disk layout.

My idea was to try and use a livecd type distro to do these tasks, like Tiny Core or RancherOS and a utility container ( much like Hanlon works ). However, getting things like IPMI to work in those isn't always the easiest and some of them are preconfigured for specific tasks, like Hanlon. We may have need, in the future, to keep extending this to include more things ( like firmware updates, BIOS settings, etc ).

Has anyone done something similar and how did you solve it?

Best Answer

Use the specific tools for the platforms in your environment.

For HP, that's going to be hponcfg, hpssacli, and the HP Smart Scripting Toolkit.

You can load HP bios settings via XML config.

I'd suggest some hardware detection... at my last environment, we even had a simple process for the datacenter folks where they choose the vendor/server type and initiated the proper environment prep.