mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-31 11:22:27 +00:00 
			
		
		
		
	remove xcatdsklspost.aix
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@14526 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
		| @@ -1,187 +0,0 @@ | ||||
| #!/usr/bin/env perl | ||||
| # IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html | ||||
| ##################################################### | ||||
| # | ||||
| #   Generic xCAT post script for diskless nodes | ||||
| # | ||||
| ##################################################### | ||||
|  | ||||
| use File::Path; | ||||
|  | ||||
| # since we don't have syslog set up yet we'll | ||||
| # just save msgs in a local log file | ||||
| $logdir = "/var/log/xcat"; | ||||
|  | ||||
| if (!-d $logdir) { | ||||
| 	mkpath($logdir); | ||||
| } | ||||
|  | ||||
| $::sdate = `/bin/date`; | ||||
| chomp $sdate; | ||||
| my $logfile = $logdir . "/xcat.log"; | ||||
|  | ||||
| # this log should not contain much so it might be ok to let it grow? | ||||
| # at least we'll have the errors preserved | ||||
| open(LOGFILE,">>",$logfile); | ||||
| $::LOG_FILE = \*LOGFILE; | ||||
|  | ||||
| # get hostname | ||||
| $::shorthost = `hostname -s`; | ||||
| chomp $::shorthost; | ||||
|  | ||||
| # get platform | ||||
| my $osname = `uname`; | ||||
| chomp $osname; | ||||
|  | ||||
| # get the postscript tar file from the server and unwrap it | ||||
| if ($osname eq "Linux") { | ||||
| 	if (&getLinuxpostfile() != 0 ) { | ||||
| 		close($::LOG_FILE_HANDLE); | ||||
|         	exit 1; | ||||
|     	} | ||||
| } else { | ||||
| 	if (&getAIXpostfile() != 0 ) { | ||||
| 		close($::LOG_FILE_HANDLE); | ||||
| 		exit 1; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| # check & run the postscript | ||||
| my $scriptname = "/xcatpost/".$shorthost; | ||||
| if ($osname eq "Linux") { | ||||
|    $scriptname = "/tmp/mypostscript"; | ||||
| } | ||||
| if (-f $scriptname) | ||||
| { | ||||
| 	my $rc = system("$scriptname"); | ||||
|     if ($rc >> 8) | ||||
|     { | ||||
| 		print $::LOG_FILE "$::sdate  xcatdsklspost: Could not run $scriptname.\n"; | ||||
|     } | ||||
| } else { | ||||
| 	print $::LOG_FILE "$::sdate  xcatdsklspost: Could not find post script for $::shorthost.\n"; | ||||
| } | ||||
|  | ||||
| close($::LOG_FILE_HANDLE); | ||||
|  | ||||
| exit 0; | ||||
|  | ||||
| ##################################################### | ||||
| # | ||||
| #   getLinuxpostfile | ||||
| #		Get the linux post scripts from the server | ||||
| # | ||||
| ##################################################### | ||||
| sub  getLinuxpostfile { | ||||
|  | ||||
| 	# look in the dhcp leases file for the name of the server | ||||
| 	my $dhclientfile="/var/lib/dhclient/dhclient-eth0.leases"; | ||||
|  | ||||
| 	my @lines; | ||||
| 	if (open(DHCLIENT, "<$dhclientfile")) { | ||||
|     	@lines = <DHCLIENT>; | ||||
|     	close(DHCLIENT); | ||||
| 	} else { | ||||
| 		print $::LOG_FILE "$::sdate  xcatdsklspost: Could not open $dhclientfile.\n"; | ||||
|     	return 1; | ||||
| 	} | ||||
|  | ||||
| 	my $ip;  # IP of server | ||||
| 	foreach my $l (@lines) | ||||
| 	{ | ||||
|     	if ($l =~ /dhcp-server-identifier/) { | ||||
|         	my ($junk, $junk2, $s) = split(" ", $l); | ||||
|         	($ip, $junk) =  split("\;", $s); | ||||
|     	} | ||||
| 	} | ||||
|  | ||||
| 	# get postscripts tar file from the server | ||||
|    my $stunconf; | ||||
|    mkpath "/etc/stunnel"; | ||||
|    open($stunconf,">","/etc/stunnel/stunnel.conf"); | ||||
|    print $stunconf "client=yes\n"; | ||||
|    print $stunconf "foreground=no\n"; | ||||
|    print $stunconf "output=/dev/null\n"; | ||||
|    print $stunconf "verify=0\n"; | ||||
|    print $stunconf "[xcatd]\n"; | ||||
|    print $stunconf "accept=400\n"; | ||||
|    print $stunconf "connect=$ip:3001\n"; | ||||
|    close($stunconf); | ||||
| 	my $getcmd = "stunnel; sleep 1; mkdir -p /xcatpost; cd /xcatpost; wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 0 -T 60 ftp://$ip/install/postscripts; mv $ip/install/postscripts/* .; chmod +x /xcatpost/*; /xcatpost/getpostscript.awk | sed  -e 's/<[^>]*>//g'|egrep -v '^ *$'|sed -e 's/^ *//' >  /tmp/mypostscript; chmod +x /tmp/mypostscript"; | ||||
|  | ||||
| 	if (&runcmd($getcmd) != 0) | ||||
|    { | ||||
| 		print $::LOG_FILE "$::sdate  xcatdsklspost: Could not get xcatpost.tar.gz.\n"; | ||||
| 		return 1; | ||||
| 	} | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| ##################################################### | ||||
| # | ||||
| #   getAIXpostfile | ||||
| #               Get the AIX post scripts from the server | ||||
| # | ||||
| ##################################################### | ||||
| sub  getAIXpostfile { | ||||
|  | ||||
| 	# get the name of my service node/NIM master from the /etc/niminfo file | ||||
| 	if (-f "/etc/niminfo") { | ||||
| 		my $cmd = "cat /etc/niminfo | grep 'NIM_NAME'"; | ||||
| 		&runcmd($cmd); | ||||
| 		my $hnline = $::outref; | ||||
| 		my $junk; | ||||
| 		($junk, $::shorthost) = split(/=/, $hnline); | ||||
| 		$::shorthost =~ s/^\s*//;    # delete leading white space | ||||
| 		chomp $::shorthost; | ||||
|  | ||||
| 		$cmd = "cat /etc/niminfo | grep 'NIM_MASTER_HOSTNAME'"; | ||||
| 		&runcmd($cmd); | ||||
| 		my $SNline = $::outref; | ||||
| 		($junk, $sn) =  split(/=/, $SNline); | ||||
| 		$sn =~ s/^\s*//;    # delete leading white space | ||||
| 		chomp $sn; | ||||
|  | ||||
| 	} else { | ||||
| 		print $::LOG_FILE "$::sdate  xcatdsklspost: Could not find /etc/niminfo file.\n"; | ||||
| 		return 1;	 | ||||
| 	} | ||||
|  | ||||
| 	# use tftp to get the tar file | ||||
| 	my $getcmd="mkdir -p /xcatpost; cd /xcatpost; tftp -o xcatpost.tar.gz $sn /install/autoinst/xcatpost.tar.gz"; | ||||
| 	if (&runcmd($getcmd) != 0) | ||||
| 	{ | ||||
| 		print $::LOG_FILE "$::sdate  xcatdsklspost: Could not get xcatpost.tar.gz.\n"; | ||||
| 		return 1; | ||||
| 	} | ||||
|  | ||||
| 	# unwrap the tar file | ||||
| 	my $uncmd = "cd /xcatpost; gunzip xcatpost.tar.gz; tar -xvf xcatpost.tar"; | ||||
| 	if (&runcmd($uncmd) != 0) | ||||
| 	{ | ||||
| 		print $::LOG_FILE "$::sdate  xcatdsklspost: Could not extract from /xcatpost/xcatpost.tar.gz.\n"; | ||||
| 		return 1; | ||||
| 	} | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| # | ||||
| # run the command | ||||
| # | ||||
| sub runcmd | ||||
| { | ||||
|     my ($cmd) = @_; | ||||
| 	my $rc=0; | ||||
|     $cmd .= ' 2>&1' ; | ||||
|     $::outref = []; | ||||
|     $::outref = `$cmd`; | ||||
|     if ($?) | ||||
|     { | ||||
|         $rc = $? >> 8; | ||||
|         if ($rc > 0) | ||||
|         { | ||||
| 			print $::LOG_FILE "$::sdate  xcatdsklspost: $::outref\n"; | ||||
|         } | ||||
|     } | ||||
|  return $rc; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user