support PE for CS11A release.

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@9168 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
sjing 2011-03-28 03:26:55 +00:00
parent ff25280c22
commit 082b23b1c9

View File

@ -0,0 +1,175 @@
#!/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
##############
### TEMPORARY FOR xCAT 2.6 Beta:
#rpm -Uvh --force ibm_pami*.rpm ibm_pe*.rpm ppe_*.rpm
rpm -Uvh --force ibm_openshmem*.rpm ppe_rte*.rpm --nodeps
##############
cd /
rm -Rf /tmp/pe
fi
if [ $NODESETSTATE == "genimage" ]; then
# Being called from <image>.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
##############
### TEMPORARY FOR xCAT 2.6 Beta:
#yum --installroot $installroot --nogpgcheck install $PE_DIR/IBM_pe_license*.rpm
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
##############
### TEMPORARY FOR xCAT 2.6 Beta:
#chroot $installroot /opt/ibmhpc/install/sbin/accept_ppe_license.sh
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
chroot $installroot mkdir -p /tmp/pe
chroot $installroot rm -f -R /tmp/pe/*
download_dir=`echo $PE_DIR | cut -d '/' -f3-`
echo $download_dir
### we had to set SITEMASTER to MN IP explicitly in our test cluster
#SITEMASTER=10.0.0.1
chroot $installroot wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=5 ftp://$SITEMASTER/$download_dir/*.rpm --directory-prefix=/tmp/pe
chroot $installroot /bin/rpm -ivh /tmp/pe/s*.rpm /tmp/pe/p*.rpm /tmp/pe/ibm_*.rpm --nodeps
chroot $installroot /bin/rm -r /tmp/pe
##############
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