#!/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`; if (-d "/xcatpost/_xcat") { if (!(-d "/root/.xcat")) { mkdir("/root/.xcat", 0600); } `cp -f -rp /xcatpost/_xcat/* /root/.xcat`; `chmod 0600 /root/.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); } `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 (-d "/xcatpost/etc/xcat") { `cp -f /xcatpost/etc/xcat/cfgloc /etc/xcat/cfgloc`; chmod 0600, "/etc/xcat/cfgloc"; } else { xCAT::MsgUtils->message('S', "/xcatpost/etc/xcat directory does not exit\n"); } return $rc; }