From 88e9572c326d53363a0816e9238ea99107959b2e Mon Sep 17 00:00:00 2001 From: nott Date: Mon, 29 Mar 2010 17:07:51 +0000 Subject: [PATCH] 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 --- xCAT/postscripts/confignimsh | 91 ++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100755 xCAT/postscripts/confignimsh diff --git a/xCAT/postscripts/confignimsh b/xCAT/postscripts/confignimsh new file mode 100755 index 000000000..ef6a48869 --- /dev/null +++ b/xCAT/postscripts/confignimsh @@ -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; + } +}