Sample cust script for setting up nimsh support.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@5597 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
parent
580ce97aa1
commit
88e9572c32
91
xCAT/postscripts/confignimsh
Executable file
91
xCAT/postscripts/confignimsh
Executable file
@ -0,0 +1,91 @@
|
||||
#!/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;
|
||||
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 0;
|
||||
|
||||
sub runcmd {
|
||||
my $cmd = shift @_;
|
||||
$cmd .= ' 2>&1';
|
||||
my @output = `$cmd`;
|
||||
my $rc = $? >> 8;
|
||||
if ($rc) {
|
||||
system("logger -t xcat 'confignimsh: command $cmd failed with rc $rc: " . join('',@output) . "'");
|
||||
exit $rc;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user