allow config of dyndomains

This commit is contained in:
2021-03-07 13:07:32 -05:00
parent 00f8657e09
commit 82660b4c70
+10 -9
View File
@@ -253,10 +253,10 @@ def pushmattermost(msg):
# nsupdate: set the DNS A record for a fqdn # nsupdate: set the DNS A record for a fqdn
# return: None if ok, else error text # return: None if ok, else error text
def nsupdate(hostname, newip): def nsupdate(hostname, newip, dyndomain):
D = {} D = {}
D['domain'] = dyndomain D['domain'] = dyndomain
D['fqdn'] = dynfqdn % hostname D['fqdn'] = "%s.dy.%s" % (hostname, dyndomain)
D['dnsttl'] = '5' D['dnsttl'] = '5'
D['newip'] = newip D['newip'] = newip
D['ts'] = time.strftime('%Y-%m-%d.%H:%M:%S', time.gmtime()) D['ts'] = time.strftime('%Y-%m-%d.%H:%M:%S', time.gmtime())
@@ -280,7 +280,7 @@ answer
""" % D """ % D
if DEBUG > 0: log(None, "DBG: nsup %s" % nsup) if DEBUG > 0: log(None, "DBG: nsup %s" % nsup)
cmd = [nsupdate_bin, "-k", "/etc/dhcpc/K%(domain)s.+157+00000." % D, "-v"] cmd = [nsupdate_bin, "-k", "/etc/dhcpc/Kdy.%(domain)s.+157+00000." % D, "-v"]
if DEBUG > 0: log(None, "DBG: cmd %s" % cmd) if DEBUG > 0: log(None, "DBG: cmd %s" % cmd)
try: try:
p = Popen(cmd, shell=False, bufsize=1, stdin=PIPE, stdout=PIPE, stderr=STDOUT) p = Popen(cmd, shell=False, bufsize=1, stdin=PIPE, stdout=PIPE, stderr=STDOUT)
@@ -389,12 +389,13 @@ def dnsupdatethread():
while True: while True:
name, addr = hbdclass.Host.dnsQ.get() name, addr = hbdclass.Host.dnsQ.get()
m = "changed address to %s" % (addr) m = "changed address to %s" % (addr)
err = nsupdate(name, addr) for dyndomain in dyndomains:
if err: err = nsupdate(name, addr, dyndomain)
m += ", DNS update failed: %s" % err if err:
email("error: nsupdate failed", "%s: %s" % (name, m)) m += ", DNS update failed: %s" % err
else: email("error: nsupdate failed", "%s.dy.%s: %s" % (name, dyndomain, m))
m += ", DNS updated." else:
m += ", DNS updated."
hbdclass.Host.dnsQ.task_done() hbdclass.Host.dnsQ.task_done()
log(name, m) log(name, m)