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).