#!/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 and mysql 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; }