2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2025-05-30 09:36:41 +00:00

Modified configonie --ntp command (#4436)

This commit is contained in:
cxhong 2017-12-05 00:48:33 -05:00 committed by yangsong
parent 9a8d717429
commit ac758a9c9d

View File

@ -350,8 +350,35 @@ sub config_snmp {
sub config_ntp {
my @config_switches;
my $cmd;
my $master;
my $ntpservers;
my $timezone;
#get ntpserver, master and timezone from site table
my @entries = xCAT::TableUtils->get_site_attribute("master");
my $master = $entries[0];
@entries = xCAT::TableUtils->get_site_attribute("timezone");
$timezone = $entries[0];
@entries = xCAT::TableUtils->get_site_attribute("ntpservers");
my $t_entry = $entries[0];
if (defined($t_entry)) {
$ntpservers = $t_entry;
} else {
$ntpservers = $master;
}
my @servers = split(',', $ntpservers);
#use ntpserver from network table if available
my $nettab = xCAT::Table->new("networks");
my @nets;
if ($nettab) {
@nets = $nettab->getAllAttribs('net','mask','ntpservers');
}
my $master = `hostname -i`;
my $file = "temp.txt";
open(FILE , ">$file")
@ -360,7 +387,6 @@ sub config_ntp {
print FILE "driftfile /var/lib/ntp/drift\n";
print FILE "disable auth\n";
print FILE "restrict 127.0.0.1\n";
print FILE "server $master iburst\n";
print FILE "interface listen eth0\n";
foreach my $switch (@nodes) {
@ -371,15 +397,31 @@ sub config_ntp {
xCAT::MsgUtils->message("E","xdsh command to $switch failed");
next;
}
my $cmd_line = "echo 'US/Eastern'>/etc/timezone;dpkg-reconfigure --frontend noninteractive tzdata";
print "$cmd_line\n";
my $cmd_line = "echo $timezone >/etc/timezone;dpkg-reconfigure --frontend noninteractive tzdata";
$cmd = "xdsh $switch $cmd_line";
if ($::RUNCMD_RC != 0) {
print "Failed to update ntp timezone\n";
xCAT::MsgUtils->message("E","Failed to update ntp timezone for $switch");
next;
}
print "$cmd\n";
#use ntpserver from network table if available
my $ntpserver;
foreach my $net (@nets) {
if (xCAT::NetworkUtils::isInSameSubnet( $net->{'net'}, $switch, $net->{'mask'}, 0)) {
$ntpserver=$net->{'ntpservers'};
if (defined $ntpserver) {
if ($ntpserver =~ /xcatmaster/) {
@servers = $master;
} else {
@servers = split(',', $ntpserver);
}
}
last;
}
}
foreach my $server (@servers) {
`echo "server $server iburst" >> $file`;
}
$cmd = "xdcp $switch $file";
$rc= xCAT::Utils->runcmd($cmd, 0);
$cmd = "xdsh $switch 'cp /etc/ntp.conf /etc/ntp.conf.orig;cp $file /etc/ntp.conf;rm -fr $file;systemctl restart ntp;systemctl enable ntp' ";
@ -398,6 +440,7 @@ sub config_ntp {
my $csw = join(",",@config_switches);
$cmd = "chdef $csw status=ntp_configured";
$rc= xCAT::Utils->runcmd($cmd, 0);
print "$csw: ntp configured\n";
}