git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@14402 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
		
			
				
	
	
		
			94 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/perl
 | |
| # IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
 | |
| #(C)IBM Corp
 | |
| 
 | |
| #-----------------------------------------------------------------------------
 | |
| 
 | |
| =head1   confignimsh
 | |
| 
 | |
| 	This sample customization script can be used to automatically configure
 | |
| 	the NIM nimsh (NIM service handler).  It will also configure NIMSH to 
 | |
| 	use OpenSSL in the NIM environment.
 | |
| 
 | |
| 	It assumes that the openssl software has already been installed on the 
 | |
| 	node.
 | |
| 
 | |
| 	This script also assumes that you have run "nimconfig -c" on the NIM 
 | |
| 	master for the nodes.  
 | |
| 
 | |
| 	This script should only be run on AIX standalone (diskfull) cluster compute 
 | |
| 	nodes. It should NOT be run on the xCAT management node, service nodes or
 | |
| 	diskless nodes.
 | |
| 
 | |
| 	Note:  This script will also remove the .rhosts file (actually back it up).
 | |
| 	If you don't want it removed then comment out those lines.
 | |
| 
 | |
| =cut
 | |
| 
 | |
| #-----------------------------------------------------------------------------
 | |
| 
 | |
| use Socket;
 | |
| 
 | |
| # this script gets run from an xCAT post script that sets the MASTER and NODE
 | |
| # environment variables.
 | |
| 
 | |
| # NIM needs the short hostnames
 | |
| #get short hostname for master
 | |
| my $master = $ENV{'MASTER'};
 | |
| my $mhost;
 | |
| my $shortmaster;
 | |
| my $returnval=0;
 | |
| if ($master =~ /\d+\.\d+\.\d+\.\d+/)
 | |
| {
 | |
| 	my $packedaddr = inet_aton($master);
 | |
| 	$mhost = gethostbyaddr($packedaddr, AF_INET);
 | |
| } else {
 | |
| 	$mhost = $master;
 | |
| }
 | |
| ($shortmaster = $mhost) =~ s/\..*$//;
 | |
| chomp $shortmaster;
 | |
| 
 | |
| # get short hostname for node
 | |
| my $name = $ENV{'NODE'};
 | |
| my $nhost;
 | |
| my $shortname;
 | |
| if ($name =~ /\d+\.\d+\.\d+\.\d+/)
 | |
| {
 | |
|     my $packedaddr = inet_aton($name);
 | |
|     $nhost = gethostbyaddr($packedaddr, AF_INET);
 | |
| } else {
 | |
|     $nhost = $name;
 | |
| }
 | |
| ($shortname = $nhost) =~ s/\..*$//;
 | |
| chomp $shortname;
 | |
| 
 | |
| # save off the existing niminfo file
 | |
| if (-f "/etc/niminfo") {
 | |
| 	runcmd("mv /etc/niminfo /etc/niminfo.bak");
 | |
| }
 | |
| 
 | |
| # create new niminfo file and start nimsh daemon etc.
 | |
| runcmd("niminit -a name=$shortname -a master=$shortmaster -a connect='nimsh'");
 | |
| 
 | |
| # configure nimsh to use ssl 
 | |
| runcmd("nimclient -c");
 | |
| 
 | |
| # get rid of the .rhost - ????
 | |
| if (-f "/.rhosts") {
 | |
| 	runcmd("mv /.rhost /.rhost.orig");
 | |
| }
 | |
| 
 | |
| exit $returnval;
 | |
| 
 | |
| sub runcmd {
 | |
| 	my $cmd = shift @_;
 | |
| 	$cmd .= ' 2>&1';
 | |
| 	my @output = `$cmd`;
 | |
| 	my $rc = $? >> 8;
 | |
| 	if ($rc) {
 | |
| 		system("logger -t xcat -p local4.err 'confignimsh: command $cmd failed with rc $rc: " . join('',@output) . "'");
 | |
|                 $returnval=$rc;
 | |
| 		exit $rc;
 | |
| 	}
 | |
| }
 |