diff options
author | Patrick Spek <p.spek@tyil.nl> | 2022-10-17 12:34:56 +0200 |
---|---|---|
committer | Patrick Spek <p.spek@tyil.nl> | 2022-10-17 12:34:56 +0200 |
commit | 0647b54b62ed7969f55c07a05b2d05ac53ea5b66 (patch) | |
tree | 3282506ea6f2103d7f93fe2fe9a810642f167ca5 /playbooks.d/dns-dnsmasq/playbook.bash | |
parent | fbb7e8511be3b590f0cd8a915ef8ef62cae67f65 (diff) |
Add playbook for dnsmasq
Diffstat (limited to 'playbooks.d/dns-dnsmasq/playbook.bash')
-rw-r--r-- | playbooks.d/dns-dnsmasq/playbook.bash | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/playbooks.d/dns-dnsmasq/playbook.bash b/playbooks.d/dns-dnsmasq/playbook.bash new file mode 100644 index 0000000..f4be8cd --- /dev/null +++ b/playbooks.d/dns-dnsmasq/playbook.bash @@ -0,0 +1,48 @@ +#!/usr/bin/env bash + +playbook_add() { + info "$BASHTARD_PLAYBOOK" "Installing packages" + pkg install dnsmasq + + playbook_sync + + info "$BASHTARD_PLAYBOOK" "Enabling services" + svc enable dnsmasq + svc start dnsmasq +} + +playbook_sync() { + mkdir -pv -- "$(config "fs.etcdir")/dnsmasq.d" + + info "$BASHTARD_PLAYBOOK" "Writing config" + file_template "dnsmasq.conf" \ + "host=$(config "dns.host")" \ + "port=$(config "dns.port")" \ + "domain=$(config "dns.domain")" \ + "confd=$(config "fs.etcdir")/dnsmasq.d" \ + > "$(config "fs.etcdir")/dnsmasq.conf" + + while read -r key + do + printf "server=%s\n" "$(config "dns.upstream.$key")" + done < <(config_subkeys "dns.upstream") > "$(config "fs.etcdir")/dnsmasq.d/servers.conf" + + while read -r key + do + printf "address=/$(config "dns.address.$key" | sed s@:@/@)\n" + done < <(config_subkeys "dns.address") > "$(config "fs.etcdir")/dnsmasq.d/addresses.conf" + + [[ "$BASHTARD_COMMAND" == "add" ]] && return + + info "$BASHTARD_PLAYBOOK" "Restarting services" + svc restart dnsmasq +} + +playbook_del() { + info "$BASHTARD_PLAYBOOK" "Disabling services" + svc stop dnsmasq + svc disable dnsmasq + + info "$BASHTARD_PLAYBOOK" "Uninstalling packages" + pkg uninstall dnsmasq +} |