files = { '/etc/unbound/unbound.conf': { 'content_type': 'mako', 'context': node.metadata['unbound'], 'triggers': { 'svc_systemd:unbound:restart', }, }, } 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', }, }, } if node.has_bundle('systemd-networkd'): svc_systemd['unbound']['needed_by'] = { 'file:/etc/resolv.conf', } if node.has_bundle('netdata'): files['/etc/netdata/go.d/unbound.conf'] = { 'source': 'netdata-unbound.conf', 'triggers': { 'svc_systemd:netdata:restart', }, }