#!/usr/bin/env perl # IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html BEGIN { $::XCATROOT = $ENV{'XCATROOT'} ? $ENV{'XCATROOT'} : -d '/opt/xcat' ? '/opt/xcat' : '/usr'; } use lib "$::XCATROOT/lib/perl"; use File::Basename; use Getopt::Long; use xCAT::MsgUtils; use xCAT::Utils; my $bname = basename($0); #----------------------------------------------------------------------------- =head1 copycerts This updates the service node with files necessary to access the database on the MasterNode and restarts the xcat daemon run from servicenode postinstall script =cut #----------------------------------------------------------------------------- ©CertstoSN; exit 0; #----------------------------------------------------------------------------- =head3 copyCertstoSN Copy from the mounted /xcatpost/ directory to the MS /install/postscripts directory the /install/postscripts/ca install/postscripts/cert and /install/postscripts/_xcat into the local file system. These certificate are needed for the postresql db setup for the service node to be able to access the DB from the service node. =cut #----------------------------------------------------------------------------- sub copyCertstoSN { my $rc = 0; `touch /etc/xCATSN`; # get roots home directory my $homedir=xCAT::Utils->getHomeDir(); if (-d "/xcatpost/_xcat") { if (!(-d "$homedir/.xcat")) { `mkdir -p $homedir/.xcat`; `chmod 0600 $homedir/.xcat`; } `cp -f -rp /xcatpost/_xcat/* $homedir/.xcat`; `chmod 0600 $homedir/.xcat/*`; } else { xCAT::MsgUtils->message('S', "/xcatpost/_xcat directory does not exist\n"); } if (-d "/xcatpost/ca") { if (!(-d "/etc/xcat")) { mkdir("/etc/xcat", 0755); } if (!(-d "/etc/xcat/ca")) { mkdir("/etc/xcat/ca", 0755); } if (!(-d "/etc/xcat/ca/certs")) { mkdir("/etc/xcat/ca/certs", 0755); } `cp -f -rp /xcatpost/ca/* /etc/xcat/ca`; `chmod 0600 /etc/xcat/ca/*`; `chmod 0600 /etc/xcat/ca/certs/*`; } else { xCAT::MsgUtils->message('S', "/xcatpost/ca directory does not exist\n"); } if (xCAT::Utils->isAIX()) { if (-d "/xcatpost/cert") { if (!(-d "/etc/xcat")) { mkdir("/etc/xcat", 0755); } if (!(-d "/etc/xcat/cert")) { mkdir("/etc/xcat/cert", 0755); } `cp -f -rp /xcatpost/cert/* /etc/xcat/cert`; `chmod 0600 /etc/xcat/cert/*`; } else { xCAT::MsgUtils->message('S', "/xcatpost/cert directory does not exist\n"); } } return $rc; }