summaryrefslogtreecommitdiff
path: root/modules/nsupdate/templates/nsupdate.epp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/nsupdate/templates/nsupdate.epp')
-rw-r--r--modules/nsupdate/templates/nsupdate.epp18
1 files changed, 18 insertions, 0 deletions
diff --git a/modules/nsupdate/templates/nsupdate.epp b/modules/nsupdate/templates/nsupdate.epp
new file mode 100644
index 0000000..66fe4b2
--- /dev/null
+++ b/modules/nsupdate/templates/nsupdate.epp
@@ -0,0 +1,18 @@
+<%- |
+ String $iface,
+ String $nameserver,
+ String $keyname,
+ Array[DNSRecord] $records,
+| -%>
+#!/bin/bash
+
+IP=$(ip -j a show dev <%= $iface %> | jq --raw-output '.[0].addr_info[] | select(.family == "inet").local')
+
+nsupdate "$@" -k '/var/lib/nsupdate/<%= $keyname %>.key' << EOF
+server <%= $nameserver %>
+<%- $records.each |$record| { -%>
+update delete <%= $record['domain'] %> <%= $record['type'] %>
+update add <%= $record['domain'] %> <%= $record['ttl'] %> <%= $record['type'] %> ${IP}
+<%- } -%>
+send
+EOF