2010-03-29 17:07:51 +00:00
|
|
|
#!/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;
|
2012-11-22 08:58:21 +00:00
|
|
|
my $returnval=0;
|
2010-03-29 17:07:51 +00:00
|
|
|
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");
|
|
|
|
}
|
|
|
|
|
2012-11-22 08:58:21 +00:00
|
|
|
exit $returnval;
|
2010-03-29 17:07:51 +00:00
|
|
|
|
|
|
|
sub runcmd {
|
|
|
|
my $cmd = shift @_;
|
|
|
|
$cmd .= ' 2>&1';
|
|
|
|
my @output = `$cmd`;
|
|
|
|
my $rc = $? >> 8;
|
|
|
|
if ($rc) {
|
2012-05-15 03:08:29 +00:00
|
|
|
system("logger -t xcat -p local4.err 'confignimsh: command $cmd failed with rc $rc: " . join('',@output) . "'");
|
2012-11-22 08:58:21 +00:00
|
|
|
$returnval=$rc;
|
2010-03-29 17:07:51 +00:00
|
|
|
exit $rc;
|
|
|
|
}
|
|
|
|
}
|