mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-11-04 05:12:30 +00:00 
			
		
		
		
	git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@1561 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
		
			
				
	
	
		
			113 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
      <chroot-scripts config:type="list">
 | 
						|
        <script>
 | 
						|
          <filename>boot.sh</filename>
 | 
						|
          <interpreter>shell</interpreter>
 | 
						|
          <chrooted config:type="boolean">true</chrooted>
 | 
						|
          <source>
 | 
						|
 | 
						|
<![CDATA[
 | 
						|
#!/bin/sh
 | 
						|
 | 
						|
AWK=`find / -name awk | head -1`
 | 
						|
#old awk /mounts/instsys/bin/awk -f
 | 
						|
 | 
						|
cat >/tmp/locktftpdir.awk <<EOF
 | 
						|
#!$AWK -f
 | 
						|
BEGIN {
 | 
						|
	xcatdport = #TABLE:site:key=xcatiport:value#
 | 
						|
	xcatdhost = "#XCATVAR:XCATMASTER#"
 | 
						|
 | 
						|
	ns = "/inet/tcp/0/" xcatdhost "/" xcatdport
 | 
						|
 | 
						|
	 while(1) {
 | 
						|
                if((ns |& getline) > 0)
 | 
						|
                        print \$0 | "logger -t xcat"
 | 
						|
 | 
						|
                if(\$0 == "ready")
 | 
						|
                        print "locktftpdir" |& ns
 | 
						|
                if(\$0 == "done")
 | 
						|
                        break
 | 
						|
        }
 | 
						|
	close(ns)
 | 
						|
 | 
						|
	exit 0
 | 
						|
}
 | 
						|
EOF
 | 
						|
cat >/tmp/setiscsiparms.awk <<EOF
 | 
						|
#!$AWK -f
 | 
						|
BEGIN {
 | 
						|
	xcatdhost = ARGV[1]
 | 
						|
	xcatdport = ARGV[2]
 | 
						|
	kernel = ARGV[3]
 | 
						|
	initrd = ARGV[4]
 | 
						|
	kcmd = ARGV[5]
 | 
						|
	ns = "/inet/tcp/0/" ARGV[1] "/" xcatdport
 | 
						|
 | 
						|
	while(1) {
 | 
						|
                if((ns |& getline) > 0)
 | 
						|
                        print \$0 | "logger -t xcat"
 | 
						|
 | 
						|
                if(\$0 == "ready")
 | 
						|
                        print "setiscsiparms "kernel" "initrd" "kcmd |& ns
 | 
						|
                if(\$0 == "done")
 | 
						|
                        break
 | 
						|
	}
 | 
						|
	close(ns)
 | 
						|
	exit 0
 | 
						|
}
 | 
						|
EOF
 | 
						|
cat >/tmp/unlocktftpdir.awk <<EOF
 | 
						|
#!$AWK -f
 | 
						|
BEGIN {
 | 
						|
	xcatdport = #TABLE:site:key=xcatiport:value#
 | 
						|
	xcatdhost = "#XCATVAR:XCATMASTER#"
 | 
						|
 | 
						|
	ns = "/inet/tcp/0/" xcatdhost "/" xcatdport
 | 
						|
 | 
						|
	 while(1) {
 | 
						|
                if((ns |& getline) > 0)
 | 
						|
                        print \$0 | "logger -t xcat"
 | 
						|
 | 
						|
                if(\$0 == "ready")
 | 
						|
                        print "unlocktftpdir" |& ns
 | 
						|
                if(\$0 == "done")
 | 
						|
                        break
 | 
						|
        }
 | 
						|
	close(ns)
 | 
						|
 | 
						|
	exit 0
 | 
						|
}
 | 
						|
EOF
 | 
						|
 | 
						|
chmod 755 /tmp/unlocktftpdir.awk
 | 
						|
chmod 755 /tmp/locktftpdir.awk
 | 
						|
chmod 755 /tmp/setiscsiparms.awk
 | 
						|
if [ -r /boot/etc/yaboot.conf ]; then
 | 
						|
	KNAME=`grep ^image /boot/etc/yaboot.conf|head -n 1|cut -d= -f 2|sed -e 's!^/!!'`
 | 
						|
	KERNEL=/boot/$KNAME
 | 
						|
	KERNEL=`echo $KERNEL|sed -e 's!//!/!g'`
 | 
						|
	INAME=`grep initrd /boot/etc/yaboot.conf|head -n 1|cut -d= -f 2|sed -e 's!^/!!'`
 | 
						|
	INITRD=/boot/$INAME
 | 
						|
	INITRD=`echo $INITRD|sed -e 's!//!/!g'`
 | 
						|
	KCMDLINE=`grep append= /boot/etc/yaboot.conf|head -n 1|cut -d= -f 2-`
 | 
						|
	KCMDLINE=`echo $KCMDLINE|sed -e 's! rhgb!!'|sed -e 's!"!!g'`
 | 
						|
elif [ -r /boot/grub/menu.lst ]; then
 | 
						|
	KNAME=`grep -v ^# /boot/grub/menu.lst|grep -v title|grep kernel|awk '{print $2}'|sed -e 's!/boot/!!'|head -n 1`
 | 
						|
	KERNEL=/boot/$KNAME
 | 
						|
	KCMDLINE=`grep -v ^# /boot/grub/menu.lst|grep -v title|grep kernel|sed -e 's!^.*kernel[[:space:]]\+[[:graph:]]\+[[:space:]]\+!!'|head -n 1`
 | 
						|
	INAME=`grep -v ^# /boot/grub/menu.lst|grep -v title|grep initrd|awk '{print $2}'|sed -e 's!/boot/!!'|head -n 1`
 | 
						|
	INITRD=/boot/$INAME
 | 
						|
	INITRD=`echo $INITRD|sed -e 's!//!/!g'`
 | 
						|
 | 
						|
fi
 | 
						|
/tmp/unlocktftpdir.awk #XCATVAR:XCATMASTER# 3002
 | 
						|
curl -T $KERNEL tftp://#XCATVAR:XCATMASTER#/xcat/#TABLE:nodelist:$NODE:node#/$KNAME
 | 
						|
curl -T $INITRD tftp://#XCATVAR:XCATMASTER#/xcat/#TABLE:nodelist:$NODE:node#/$INAME
 | 
						|
/tmp/locktftpdir.awk #XCATVAR:XCATMASTER# 3002
 | 
						|
/tmp/setiscsiparms.awk #XCATVAR:XCATMASTER# 3002 $KNAME $INAME "$KCMDLINE"
 | 
						|
]]>
 | 
						|
 | 
						|
          </source>
 | 
						|
        </script>
 | 
						|
      </chroot-scripts>
 |