Overview

There are still old HP Generation 5 (G5) servers around. Unfortunately they are not supported with RHEL 7 anymore and need some tweeking to run. They also have some issues with ILO2 connectivity, which i discuss in a different post.

I’ll describe what i did to deploy RHEL 7 with Satellite 6.

RHEL 7 needs tweeking to run

Issue

 

The RAID controller HP SmartArray P400(cciss) of the G5 Servers are not supported by RHEL 7 provided drivers (kernel modules) by default any more.

These controllers would be addressed through the cciss driver, which is not shipped with RHEL 7. The hpsa driver is only meant for newer versions of this RAID controller family.

Therefore installation (or booting) does not find any disk device to install on or to boot from.

Solution

To enable the hpsa driver to work with the older controller types as well, the driver is told to accept any controller. This is done by adding the following directive to the boot cmd: “hpsa.hpsa_allow_any=1”.

manual installation

In the thread [1] the Post by rusty3995 on 2014/07/22 09:29:18 explains how to proceed, to install RHAL 7 (or centos 7) manually.

[1] https://www.centos.org/forums/viewtopic.php?f=49&t=47011#p201448

——- snip ————-

STEP 1:
At install press tab to get the install options and add “hpsa.hpsa_allow_any=1” to the end
Install as normal
When you reboot it will fail as it now can’t find the hard drives

STEP 2:
Boot from DVD into rescue mode, press tab to get the options and add “hpsa.hpsa_allow_any=1” to the end
change to the installed system

Code: Select all
chroot /mnt/sysimage

Then add “hpsa.hpsa_allow_any=1” to the grub2 cfg file at /etc/default/grub
remake grub 2

Code: Select all
grub2-mkconfig -o /boot/grub2/grub.cfg

reboot and should be fine
you may get a message about selinux relabeling

seems to be stable and updates ok
——- snip ————-

management tools

Doing so, you might still have issues with the management of the RAID controller from within RHEL 7. The management tools might not work correctly. To be honest i did not look into that, as my main goal was to get the servers running at all.

HP recently published MCP repository for CentOS 7. Which i did not look into either.
.. hpssacli might make array fail

installing G5 Server via Satellite 6

I’ve set up Satellite 6 and configured everything needed to discover new hosts which do PXE boot. The integrated capsule provides TFTP, DHCP, DNS, Puppet, Discovery and Pulp.

I tweeked the following provisioning templates (not knowing if they all are needed):

Kickstart default iPXE

kernel <%= "#{@host.url_for_boot(:kernel)}" %> hpsa.hpsa_allow_any=1 ks=<%= foreman_url('provision')%><%= static %> ksdevice=<%= @host.mac %> network kssendmac ip=${netX/ip} netmask=${netX/netmask} gateway=${netX/gateway} dns=${dns}
initrd <%= "#{@host.url_for_boot(:initrd)}" %>

Kickstart default PXELinux

default linux
label linux
kernel <%= @kernel %> 
<% if @host.operatingsystem.name == 'Fedora' and @host.operatingsystem.major.to_i > 16 -%>
append initrd=<%= @initrd %> ks=<%= foreman_url('provision')%> ks.device=bootif network ks.sendmac hpsa.hpsa_allow_any=1
<% elsif @host.operatingsystem.name != 'Fedora' and @host.operatingsystem.major.to_i >= 7 -%>
append initrd=<%= @initrd %> ks=<%= foreman_url('provision')%> network ks.sendmac hpsa.hpsa_allow_any=1
<% else -%>
append initrd=<%= @initrd %> ks=<%= foreman_url('provision')%> ksdevice=bootif network kssendmac hpsa.hpsa_allow_any=1
<% end -%>
IPAPPEND 2

PXELinux global default

I've added the whole discovery part (as this was not provided through separate template (was prior to 6.1.8). 

<%#
kind: PXELinux
name: PXELinux global default
%>

<%# This template has special name (do not change it) and it is used for booting unknown hosts. %>

DEFAULT menu
PROMPT 0
MENU TITLE PXE Menu
TIMEOUT 200
TOTALTIMEOUT 6000
# ONTIMEOUT local
ONTIMEOUT discovery

LABEL discovery
 MENU LABEL Foreman Discovery
 MENU DEFAULT
 KERNEL boot/fdi-image-rhel_7-vmlinuz
 APPEND initrd=boot/fdi-image-rhel_7-img rootflags=loop root=live:/fdi.iso rootfstype=auto ro rd.live.image acpi=force rd.luks=0 rd.md=0 rd.dm=0 rd.lvm=0 rd.bootif=0 rd.neednet=0 nomodeset proxy.url=https://172.16.20.1:9090 proxy.type=proxy hpsa.hpsa_allow_any=1
 IPAPPEND 2

LABEL local
 MENU LABEL (local)
 MENU DEFAULT
 LOCALBOOT 0

<% for profile in @profiles -%>
LABEL <%= "#{profile[:template]} - #{profile[:hostgroup]}" %>
 kernel <%= profile[:hostgroup].operatingsystem.kernel(profile[:hostgroup].architecture) %>
<% case profile[:hostgroup].operatingsystem.pxe_type -%>
<% when 'kickstart' -%>
 append initrd=<%= profile[:hostgroup].operatingsystem.initrd(profile[:hostgroup].architecture) %> ks=<%= default_template_url(profile[:template], profile[:hostgroup]) %> ksdevice=bootif network kssendmac hpsa.hpsa_allow_any=1
<% when 'preseed' -%>
 append initrd=<%= profile[:hostgroup].operatingsystem.initrd(profile[:hostgroup].architecture) %> interface=auto url=<%= default_template_url(profile[:template], profile[:hostgroup]) %> ramdisk_size=10800 root=/dev/rd/0 rw auto hostname=unassigned-hostname locale=<%= profile[:hostgroup].params['lang'] || 'en_US' %> console-setup/ask_detect=false console-setup/layout=USA console-setup/variant=USA hpsa.hpsa_allow_any=1
<% end -%>

<% end -%>

Satellite Kickstart Default G5

As some of the Satellite Templates are locked i’ve cloned this template and made changes to the clone. You need to adjust the provisioning workflow to use the cloned template.

<% if @host.operatingsystem.name == 'Fedora' and os_major <= 16 -%>
# Bootloader exception for Fedora 16:
bootloader --append="nofb quiet splash=quiet <%=ks_console%> hpsa.hpsa_allow_any=1" <%= grub_pass %>part biosboot --fstype=biosboot --size=1
<% else -%>
bootloader --location=mbr --append="nofb quiet splash=quiet hpsa.hpsa_allow_any=1" <%= grub_pass %><% end -%>
<% if os_major == 5 -%>
key --skip
<% end -%>

Discovery Red Hat kexec

I did not change anything in this template (yet) as it did not exist when i started with this project.

moving on

I’ve checked files manually in /var/lib/tftpboot/pxelinux.cfg. If the needed directive was missing on any reason i just added it with vi.

Conclusion

After adding the hpsa controller directive to the PXE templates, you are able to discover and to provision HP G5 Servers with an (old) raid controller SmartArray P400(cciss).