I spend a lot of my time with HP ProLiant systems and Linux installations. Due to the nature of the business I work in, I don't have the luxury of being able to deploy large numbers of identical systems at the same time. In addition, my systems are spread across multiple locations. Many of my servers are similar, but the installs come in spurts, with just enough time in between to see changes in system configs, processor steppings, firmware revisions and other features. So, even though I have a reasonably-speedy kickstart system in place that takes 5-10 minutes, I spend up to 45 minutes staging the server hardware.
1). Assuming I have the disks and physical components where I want them, I begin installs with a Firmware DVD and/or SmartStart to configure the SmartArray logical drives and controller settings. Depending on the application, I need finer control over the SmartArray than what the BIOS utility will allow. Firmware updates are helpful since the servers may have shipped with older revisions. Sometimes, I'll run firmware updates after the operating system is installed.
2). ILO setup. The ILO parameters need to be set. Administrator password changes, ILO keys installed, SNMP parameters modified... I'll typically do this at the console or find the ILO in the DHCP listing and connect remotely.
3). I need specific BIOS changes to be made on the systems I manage. E.g. turn off hyperthreading, set power profile, get into the advanced BIOS menu to enable low-latency settings, reduce ASR timeout, set the time...
Given the above notes, how can I streamline this process? Are all of these things scriptable? How do engineers in larger headless-install environments do this? Even more, how can you keep track of these parameters or force a certain set of changes en masse?