mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
ntpdinstance: Do not replace the config files, just add needed options
This commit is contained in:
parent
00217308c5
commit
c2a2ffbe69
@ -27,8 +27,6 @@ app_DATA = \
|
|||||||
krb5.ini.template \
|
krb5.ini.template \
|
||||||
krb.con.template \
|
krb.con.template \
|
||||||
krbrealm.con.template \
|
krbrealm.con.template \
|
||||||
ntp.conf.server.template \
|
|
||||||
ntpd.sysconfig.template \
|
|
||||||
preferences.html.template \
|
preferences.html.template \
|
||||||
referint-conf.ldif \
|
referint-conf.ldif \
|
||||||
dna-posix.ldif \
|
dna-posix.ldif \
|
||||||
|
@ -1,50 +0,0 @@
|
|||||||
# Permit time synchronization with our time source, but do not
|
|
||||||
# permit the source to query or modify the service on this system.
|
|
||||||
restrict default kod nomodify notrap
|
|
||||||
restrict -6 default kod nomodify notrap
|
|
||||||
|
|
||||||
# Permit all access over the loopback interface. This could
|
|
||||||
# be tightened as well, but to do so would effect some of
|
|
||||||
# the administrative functions.
|
|
||||||
restrict 127.0.0.1
|
|
||||||
restrict -6 ::1
|
|
||||||
|
|
||||||
# Hosts on local network are less restricted.
|
|
||||||
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
|
|
||||||
|
|
||||||
# Use public servers from the pool.ntp.org project.
|
|
||||||
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
|
|
||||||
server $SERVERA
|
|
||||||
server $SERVERB
|
|
||||||
server $SERVERC
|
|
||||||
|
|
||||||
#broadcast 192.168.1.255 key 42 # broadcast server
|
|
||||||
#broadcastclient # broadcast client
|
|
||||||
#broadcast 224.0.1.1 key 42 # multicast server
|
|
||||||
#multicastclient 224.0.1.1 # multicast client
|
|
||||||
#manycastserver 239.255.254.254 # manycast server
|
|
||||||
#manycastclient 239.255.254.254 key 42 # manycast client
|
|
||||||
|
|
||||||
# Undisciplined Local Clock. This is a fake driver intended for backup
|
|
||||||
# and when no outside source of synchronized time is available.
|
|
||||||
server 127.127.1.0 # local clock
|
|
||||||
#fudge 127.127.1.0 stratum 10
|
|
||||||
|
|
||||||
# Drift file. Put this in a directory which the daemon can write to.
|
|
||||||
# No symbolic links allowed, either, since the daemon updates the file
|
|
||||||
# by creating a temporary in the same directory and then rename()'ing
|
|
||||||
# it to the file.
|
|
||||||
driftfile /var/lib/ntp/drift
|
|
||||||
|
|
||||||
# Key file containing the keys and key identifiers used when operating
|
|
||||||
# with symmetric key cryptography.
|
|
||||||
keys /etc/ntp/keys
|
|
||||||
|
|
||||||
# Specify the key identifiers which are trusted.
|
|
||||||
#trustedkey 4 8 42
|
|
||||||
|
|
||||||
# Specify the key identifier to use with the ntpdc utility.
|
|
||||||
#requestkey 8
|
|
||||||
|
|
||||||
# Specify the key identifier to use with the ntpq utility.
|
|
||||||
#controlkey 8
|
|
@ -1,8 +0,0 @@
|
|||||||
# Drop root to id 'ntp:ntp' by default.
|
|
||||||
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"
|
|
||||||
|
|
||||||
# Set to 'yes' to sync hw clock after successful ntpdate
|
|
||||||
SYNC_HWCLOCK=yes
|
|
||||||
|
|
||||||
# Additional options for ntpdate
|
|
||||||
NTPDATE_OPTIONS=""
|
|
@ -33,8 +33,10 @@ class NTPInstance(service.Service):
|
|||||||
self.fstore = sysrestore.FileStore('/var/lib/ipa/sysrestore')
|
self.fstore = sysrestore.FileStore('/var/lib/ipa/sysrestore')
|
||||||
|
|
||||||
def __write_config(self):
|
def __write_config(self):
|
||||||
# The template sets the config to point towards ntp.pool.org, but
|
|
||||||
# they request that software not point towards the default pool.
|
self.fstore.backup_file("/etc/ntp.conf")
|
||||||
|
self.fstore.backup_file("/etc/sysconfig/ntpd")
|
||||||
|
|
||||||
# We use the OS variable to point it towards either the rhel
|
# We use the OS variable to point it towards either the rhel
|
||||||
# or fedora pools. Other distros should be added in the future
|
# or fedora pools. Other distros should be added in the future
|
||||||
# or we can get our own pool.
|
# or we can get our own pool.
|
||||||
@ -44,23 +46,88 @@ class NTPInstance(service.Service):
|
|||||||
elif ipautil.file_exists("/etc/redhat-release"):
|
elif ipautil.file_exists("/etc/redhat-release"):
|
||||||
os = "rhel"
|
os = "rhel"
|
||||||
|
|
||||||
sub_dict = { }
|
srv_vals = []
|
||||||
sub_dict["SERVERA"] = "0.%s.pool.ntp.org" % os
|
srv_vals.append("0.%s.pool.ntp.org" % os)
|
||||||
sub_dict["SERVERB"] = "1.%s.pool.ntp.org" % os
|
srv_vals.append("1.%s.pool.ntp.org" % os)
|
||||||
sub_dict["SERVERC"] = "2.%s.pool.ntp.org" % os
|
srv_vals.append("2.%s.pool.ntp.org" % os)
|
||||||
|
srv_vals.append("127.127.1.0")
|
||||||
|
fudge = ["fudge", "127.127.1.0", "stratum", "10"]
|
||||||
|
|
||||||
ntp_conf = ipautil.template_file(ipautil.SHARE_DIR + "ntp.conf.server.template", sub_dict)
|
#read in memory, change it, then overwrite file
|
||||||
ntp_sysconf = ipautil.template_file(ipautil.SHARE_DIR + "ntpd.sysconfig.template", {})
|
file_changed = False
|
||||||
|
fudge_present = False
|
||||||
|
ntpconf = []
|
||||||
|
fd = open("/etc/ntp.conf", "r")
|
||||||
|
for line in fd:
|
||||||
|
opt = line.split()
|
||||||
|
if len(opt) < 1:
|
||||||
|
ntpconf.append(line)
|
||||||
|
continue
|
||||||
|
|
||||||
self.fstore.backup_file("/etc/ntp.conf")
|
if opt[0] == "server":
|
||||||
self.fstore.backup_file("/etc/sysconfig/ntpd")
|
match = False
|
||||||
|
for srv in srv_vals:
|
||||||
|
if opt[1] == srv:
|
||||||
|
match = True
|
||||||
|
break
|
||||||
|
if match:
|
||||||
|
srv_vals.remove(srv)
|
||||||
|
else:
|
||||||
|
file_changed = True
|
||||||
|
line = ""
|
||||||
|
elif opt[0] == "fudge":
|
||||||
|
if opt[0:4] == fudge[0:4]:
|
||||||
|
fudge_present = True
|
||||||
|
else:
|
||||||
|
file_changed = True
|
||||||
|
line = ""
|
||||||
|
|
||||||
|
ntpconf.append(line)
|
||||||
|
|
||||||
|
if file_changed or len(srv_vals) != 0 or not fudge_present:
|
||||||
fd = open("/etc/ntp.conf", "w")
|
fd = open("/etc/ntp.conf", "w")
|
||||||
fd.write(ntp_conf)
|
for line in ntpconf:
|
||||||
|
fd.write(line)
|
||||||
|
fd.write("\n### Added by IPA Installer ###\n")
|
||||||
|
if len(srv_vals) != 0:
|
||||||
|
for srv in srv_vals:
|
||||||
|
fd.write("server "+srv+"\n")
|
||||||
|
if not fudge_present:
|
||||||
|
fd.write("fudge 127.127.1.0 stratum 10\n")
|
||||||
fd.close()
|
fd.close()
|
||||||
|
|
||||||
|
#read in memory, find OPTIONS, check/change it, then overwrite file
|
||||||
|
file_changed = False
|
||||||
|
found_options = False
|
||||||
|
ntpdsysc = []
|
||||||
|
fd = open("/etc/sysconfig/ntpd", "r")
|
||||||
|
for line in fd:
|
||||||
|
sline = line.strip()
|
||||||
|
if sline.find("OPTIONS") == 0:
|
||||||
|
found_options = True
|
||||||
|
opts = sline.split("=", 1)
|
||||||
|
if len(opts) != 2:
|
||||||
|
optvals=""
|
||||||
|
else:
|
||||||
|
optvals = opts[1].strip(' "')
|
||||||
|
if optvals.find("-x") == -1:
|
||||||
|
optvals += " -x"
|
||||||
|
file_changed = True
|
||||||
|
if optvals.find("-g") == -1:
|
||||||
|
optvals += " -g"
|
||||||
|
file_changed = True
|
||||||
|
if file_changed:
|
||||||
|
line = 'OPTIONS="'+optvals+'"\n'
|
||||||
|
ntpdsysc.append(line)
|
||||||
|
fd.close()
|
||||||
|
if not found_options:
|
||||||
|
ntpdsysc.insert(0, 'OPTIONS="-x -g"\n')
|
||||||
|
file_changed = True
|
||||||
|
|
||||||
|
if file_changed:
|
||||||
fd = open("/etc/sysconfig/ntpd", "w")
|
fd = open("/etc/sysconfig/ntpd", "w")
|
||||||
fd.write(ntp_sysconf)
|
for line in ntpdsysc:
|
||||||
|
fd.write(line)
|
||||||
fd.close()
|
fd.close()
|
||||||
|
|
||||||
def __stop(self):
|
def __stop(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user