94 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
#Used only by sysclone
 | 
						|
 | 
						|
installmethods=''
 | 
						|
if [ -f "/etc/xcat/xcatinstallinfo" ];then
 | 
						|
    installmethods=`cat /etc/xcat/xcatinstallinfo`
 | 
						|
fi
 | 
						|
 | 
						|
if [ "$installmethods" != "sysclone" ];then
 | 
						|
#    echo "This node didn't be installed by sysclone"
 | 
						|
    exit 0
 | 
						|
fi
 | 
						|
 | 
						|
#update the exclude configuration file
 | 
						|
#do not sync the following files
 | 
						|
for filename in \
 | 
						|
    /boot/efi \
 | 
						|
    /boot/grub \
 | 
						|
    /etc/fstab \
 | 
						|
    /etc/grub.conf \
 | 
						|
    /etc/lilo.conf \
 | 
						|
    /etc/elilo.conf \
 | 
						|
    /etc/xcat \
 | 
						|
    /etc/yaboot.conf \
 | 
						|
    /etc/hosts \
 | 
						|
    /etc/udev/rules.d  \
 | 
						|
    /etc/modprobe.d/bond0.conf \
 | 
						|
    /etc/modprobe.d/bond1.conf \
 | 
						|
    /etc/ssh \
 | 
						|
    /etc/sysconfig/syslog \
 | 
						|
    /etc/syslog-ng/syslog-ng.conf \
 | 
						|
    /opt/xcat \
 | 
						|
    /root/.ssh \
 | 
						|
    /var/cache \
 | 
						|
    /xcatpost 
 | 
						|
do
 | 
						|
    if [ ! -e $filename ];then
 | 
						|
        continue
 | 
						|
    fi
 | 
						|
 | 
						|
    grep -E "^\s*${filename}\s*$" "/etc/systemimager/updateclient.local.exclude"
 | 
						|
    if [ $? -ne 0 ];then
 | 
						|
        echo "$filename" >> "/etc/systemimager/updateclient.local.exclude"
 | 
						|
    fi
 | 
						|
done
 | 
						|
 | 
						|
#get the current image server
 | 
						|
str_server_ip=''
 | 
						|
. /opt/xcat/xcatinfo
 | 
						|
if [ -n "$XCATSERVER" ];then
 | 
						|
    str_server_ip=$XCATSERVER
 | 
						|
else
 | 
						|
    str_server_ip=$MASTER
 | 
						|
fi
 | 
						|
 | 
						|
if [ -z "$str_server_ip" ];then
 | 
						|
    echo "Can not find out the image server."
 | 
						|
    exit 1
 | 
						|
fi
 | 
						|
 | 
						|
str_server_ip=`echo $str_server_ip | sed "s/'//g"`
 | 
						|
#call system imager command to update the image
 | 
						|
echo "si_updateclient --server $str_server_ip --yes"
 | 
						|
export PERL5LIB=/usr/lib/perl5/site_perl/;LANG=C si_updateclient --server $str_server_ip --yes 
 | 
						|
 | 
						|
if [[ -f /sbin/dracut ]]; then
 | 
						|
    # redhat6.x/centos6.x/rhels7.x
 | 
						|
    echo "Running dracut to regenerate the initrd with the drivers needed by this node:"
 | 
						|
    arch=`uname -m`
 | 
						|
    #echo "arch=$arch"
 | 
						|
    initrdfile=`find /boot -name "initramfs-*.$arch.img"`
 | 
						|
    #echo "initrdfile=$initrdfile"
 | 
						|
    kernelversion=`echo $initrdfile |sed -e 's:/boot/initramfs-\(.*\)\.img:\1:g'`
 | 
						|
    #echo "kernelversion=$kernelversion"
 | 
						|
    mv $initrdfile $initrdfile.org
 | 
						|
    echo "dracut $initrdfile $kernelversion"
 | 
						|
    dracut $initrdfile $kernelversion
 | 
						|
else
 | 
						|
    # suse/sles and redhat5.x/centos5.x
 | 
						|
    echo "Running mkinitrd to regenerate the initrd with the drivers needed by this node:"
 | 
						|
    osvers=`cat /etc/*release|sed -e 's/.*\([0-9]\{1,\}\.[0-9]\{1,\}\).*/\1/'`
 | 
						|
    if [[ $osvers == 5\.* ]];then
 | 
						|
        initrdfile=`find /boot -name "initrd-*.img"`
 | 
						|
        #echo "initrdfile=$initrdfile"
 | 
						|
        kernelversion=`echo $initrdfile |sed -e 's:/boot/initrd-\(.*\)\.img:\1:g'`
 | 
						|
        #echo "kernelversion=$kernelversion"
 | 
						|
        mv $initrdfile $initrdfile.org
 | 
						|
        echo "mkinitrd $initrdfile $kernelversion"
 | 
						|
        mkinitrd $initrdfile $kernelversion
 | 
						|
    else
 | 
						|
        mkinitrd
 | 
						|
    fi
 | 
						|
fi
 |