files = { '/etc/unbound/unbound.conf': { 'content_type': 'mako', 'context': node.metadata['unbound'], 'triggers': { 'svc_systemd:unbound:restart', }, }, '/usr/local/sbin/unbound-auto-restart': { 'mode': '0755', }, } actions = { 'unbound_generate_certificates': { 'command': 'unbound-control-setup && chmod 0644 /etc/unbound/unbound_control.*', 'unless': 'test -f /etc/unbound/unbound_server.key', 'needs': { 'pkg_apt:unbound', 'pkg_apt:unbound-anchor', }, }, 'unbound_download_root_hints': { 'command': 'wget -O/etc/unbound/root-hints.txt https://www.internic.net/domain/named.root', 'unless': 'test -f /etc/unbound/root-hints.txt', 'needs': { 'pkg_apt:unbound', }, }, } svc_systemd = { 'unbound': { 'needs': { 'action:unbound_generate_certificates', 'action:unbound_download_root_hints', 'file:/etc/unbound/unbound.conf', 'pkg_apt:unbound', 'pkg_apt:unbound-anchor', }, }, } directories['/usr/share/dns'] = { 'before': { 'pkg_apt:unbound', 'pkg_apt:unbound-anchor', }, } if node.has_bundle('systemd-networkd'): svc_systemd['unbound']['needed_by'] = { 'file:/etc/resolv.conf', } if node.has_bundle('pppd'): files['/etc/systemd/system/unbound.service.d/bundlewrap.conf'] = { 'source': 'override.conf', 'triggers': { 'action:systemd-reload', 'svc_systemd:unbound:restart', }, }