From c0743598d8ca8756554bcaaf71802413e75914af Mon Sep 17 00:00:00 2001 From: sjing Date: Mon, 28 Mar 2011 06:07:04 +0000 Subject: [PATCH] support PE for CS11A release. git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@9170 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd --- xCAT-IBMhpc/share/xcat/IBMhpc/pe/pe.bnd | 20 +++ xCAT-IBMhpc/share/xcat/IBMhpc/pe/pe_install | 153 ++++++++++++++++++++ 2 files changed, 173 insertions(+) create mode 100644 xCAT-IBMhpc/share/xcat/IBMhpc/pe/pe.bnd create mode 100644 xCAT-IBMhpc/share/xcat/IBMhpc/pe/pe_install diff --git a/xCAT-IBMhpc/share/xcat/IBMhpc/pe/pe.bnd b/xCAT-IBMhpc/share/xcat/IBMhpc/pe/pe.bnd new file mode 100644 index 000000000..e7529950a --- /dev/null +++ b/xCAT-IBMhpc/share/xcat/IBMhpc/pe/pe.bnd @@ -0,0 +1,20 @@ +# AIX bundle package list for PE + +# POE +I:ppe.poe +I:ppe.pdb +#I:ppe.man +I:ppe.loc.license + +# needed on login node +#I:ppe.hpct + +# LAPI +I:rsct.lapi +#I:rsct.sci + +# MetaCluster (checkpoint/restore) +I:mcr.rte +I:mdcr + + diff --git a/xCAT-IBMhpc/share/xcat/IBMhpc/pe/pe_install b/xCAT-IBMhpc/share/xcat/IBMhpc/pe/pe_install new file mode 100644 index 000000000..77dd71dc8 --- /dev/null +++ b/xCAT-IBMhpc/share/xcat/IBMhpc/pe/pe_install @@ -0,0 +1,153 @@ +#!/bin/sh +# +# +# Sample script to customize options for PE +# For AIX: +# TBD +# For Linux: +# - For full-disk installs: +# - Copy rpms to node +# - Install and accept PE license rpm +# - Install PE rpms +# - For diskless images: +# - Install PE license on MN if not already installed +# - Install PE license rpm into image, but DO NOT ACCEPT +# (java accept program will hang) +# - Copy PE license files from MN into image +# - Install PE rpms +# - Create a smaller PNSD log file in /tmp +# - Configure poe.limits file + +OS=`uname` +INSTALL_DIR='/install' +PE_DIR=$pedir + +if [ -z "$PE_DIR" ]; then + # try to default + PE_DIR=$INSTALL_DIR/post/otherpkgs/$OSVER/$ARCH/pe +fi + + +if [ $NODESETSTATE != "genimage" ]; then + # running as a postscript in a full-disk install or AIX diskless install + installroot="" +fi + + + +if [ $OS != "AIX" ]; then + if [ $NODESETSTATE == "install" ] || [ $NODESETSTATE == "boot" ]; then + # Being run from a stateful install postscript + # Copy rpms directly from the xCAT management node and install + mkdir -p /tmp/pe + rm -f -R /tmp/pe/* + cd /tmp/pe + download_dir=`echo $PE_DIR | cut -d '/' -f3-` + wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=5 ftp://$SITEMASTER/$download_dir/*.rpm 2> /tmp/wget.log + if [ ! -f /opt/ibmhpc/install/sbin/accept_ppe_license.sh ] ; then + rpm -Uvh IBM_pe_license*.rpm + fi + IBM_PE_LICENSE_PROMPT=N /opt/ibmhpc/install/sbin/accept_ppe_license.sh + rpm -Uvh --force ibm_lapi*.rpm ibm_pe*.rpm ppe_*.rpm + cd / + rm -Rf /tmp/pe + fi + + if [ $NODESETSTATE == "genimage" ]; then + # Being called from .postinstall script + # Assume we are on the same machine + if [[ $OS = sles* ]] || [[ $OS = suse* ]] || [[ -f /etc/SuSE-release ]]; then + # For SLES, assume zypper is available on the system running genimage + if [ ! -d /etc/opt/ibmhpc/license ] ; then + # Install and accept PE license on the MN + IBM_PE_LICENSE_PROMPT=N zypper install $PE_DIR/IBM_pe_license*.rpm + fi + # Install PE license rpm into image, BUT DO NOT ACCEPT + # The java process fails when you try to run in chroot + zypper -R $installroot install $PE_DIR/IBM_pe_license*.rpm + # Copy license files from MN into the image + mkdir -p $installroot/etc/opt/ibmhpc/license + cp -pR /etc/opt/ibmhpc/license/* $installroot/etc/opt/ibmhpc/license + # Install PE product rpms + INUCLIENTS=1 INUBOSTYPE=1 zypper -R $installroot install $PE_DIR/ibm_lapi*.rpm $PE_DIR/ibm_pe*.rpm $PE_DIR/ppe_*.rpm + else + # For Redhat, etc., assume yum is available on the system running genimage + if [ ! -d /etc/opt/ibmhpc/license ] ; then + # Install and accept PE license on the MN + IBM_PE_LICENSE_PROMPT=N yum --nogpgcheck localupdate $PE_DIR/IBM_pe_license*.rpm + #IBM_PE_LICENSE_PROMPT=N yum --nogpgcheck install $PE_DIR/IBM_pe_license*.rpm + fi + # Install PE license rpm into image, BUT DO NOT ACCEPT + # The java process fails when you try to run in chroot + yum --installroot $installroot --nogpgcheck install $PE_DIR/IBM_pe_license*.rpm + # Copy license files from MN into the image + mkdir -p $installroot/etc/opt/ibmhpc/license + cp -pR /etc/opt/ibmhpc/license/* $installroot/etc/opt/ibmhpc/license + #chroot $installroot /opt/ibmhpc/install/sbin/accept_ppe_license.sh + # Install PE product rpms + INUCLIENTS=1 INUBOSTYPE=1 yum --installroot $installroot --nogpgcheck install $PE_DIR/ibm_lapi*.rpm $PE_DIR/ibm_pe*.rpm $PE_DIR/ppe_*.rpm + fi + fi +fi + + + +# Configure the PNSD.cfg to use a smaller log so it doesn't use so much memory +# for a stateless image. Normally, pnsd creates this file if it does not +# exist, but it will not fill it in if it does exist. +if [ ! -f $installroot/etc/PNSD.cfg ]; then + echo "log_file = /tmp/serverlog" > $installroot/etc/PNSD.cfg + echo "log_file_size = 2097152" >> $installroot/etc/PNSD.cfg + echo "socket_file = /tmp/PNSD" >> $installroot/etc/PNSD.cfg +else + if [ "$OS" == "AIX" ]; then + /usr/bin/sed -e 's/log_file_size = .*/log_file_size = 2097152/g' $installroot/etc/PNSD.cfg > $installroot/etc/PNSD.cfg.new + mv $installroot/etc/PNSD.cfg.new $installroot/etc/PNSD.cfg + else + /bin/sed -i 's/log_file_size = .*/log_file_size = 2097152/g' $installroot/etc/PNSD.cfg + fi + if [ $NODESETSTATE == "install" ] || [ $NODESETSTATE == "boot" ]; then + stopsrc -s pnsd + startsrc -s pnsd + fi +fi + +# Configure the poe.limits file +if [ ! -f $installroot/etc/poe.limits ]; then + echo "MP_POE_LAUNCH=all" > $installroot/etc/poe.limits +else + if [ "$OS" == "AIX" ]; then + /usr/bin/sed -e 's/MP_POE_LAUNCH=.*/MP_POE_LAUNCH=all/g' $installroot/etc/poe.limits > $installroot/etc/poe.limits.new + mv $installroot/etc/poe.limits.new $installroot/etc/poe.limits + else + /bin/sed -i 's/MP_POE_LAUNCH=.*/MP_POE_LAUNCH=all/g' $installroot/etc/poe.limits + fi +fi + + +# POE requires rsh to be running +if [ "$OS" == "AIX" ]; then + /usr/bin/sed -e '/\/rshd/s/^#//g' $installroot/etc/inetd.conf > $installroot/etc/inetd.conf.new + mv /etc/inetd.conf.new /etc/inetd.conf + refresh -s inetd +else + /bin/sed -i 's/disable.*/disable = no/g' $installroot/etc/xinetd.d/rsh + if [ $NODESETSTATE == "install" ] || [ $NODESETSTATE == "boot" ]; then + service xinetd restart + fi +fi + + +# The Parallel Debugger on AIX requires a /proc filesystem +if [ "$OS" == "AIX" ]; then + if ! grep "/proc:" /etc/filesystems > /dev/null 2>&1 ; then + echo "/proc: " >> /etc/filesystems + echo " dev = /proc " >> /etc/filesystems + echo " vol = /proc " >> /etc/filesystems + echo " mount = true " >> /etc/filesystems + echo " check = false " >> /etc/filesystems + echo " free = false " >> /etc/filesystems + echo " vfs = procfs " >> /etc/filesystems + fi + mount /proc +fi