forked from FF-RGB/ansible
dns_resolver: new role for resolver only
This commit is contained in:
parent
f882c6e41a
commit
bf1b7e434d
1
hosts
1
hosts
@ -3,6 +3,7 @@ gw11.regensburg.freifunk.net
|
|||||||
gw21.regensburg.freifunk.net
|
gw21.regensburg.freifunk.net
|
||||||
gw31.regensburg.freifunk.net
|
gw31.regensburg.freifunk.net
|
||||||
ns1.regensburg.freifunk.net
|
ns1.regensburg.freifunk.net
|
||||||
|
resolver.regensburg.freifunk.net
|
||||||
stats.regensburg.freifunk.net
|
stats.regensburg.freifunk.net
|
||||||
web.regensburg.freifunk.net
|
web.regensburg.freifunk.net
|
||||||
stats.ffrgb ansible_host=10.90.224.100
|
stats.ffrgb ansible_host=10.90.224.100
|
||||||
|
10
roles/dns_resolver/handlers/main.yml
Normal file
10
roles/dns_resolver/handlers/main.yml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Run acertmgr
|
||||||
|
command: /usr/bin/acertmgr
|
||||||
|
|
||||||
|
- name: Restart powerdns
|
||||||
|
service: name=pdns-recursor state=restarted
|
||||||
|
|
||||||
|
- name: Restart dnsdist
|
||||||
|
service: name=dnsdist state=restarted
|
4
roles/dns_resolver/meta/main.yml
Normal file
4
roles/dns_resolver/meta/main.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
dependencies:
|
||||||
|
- { role: acertmgr }
|
41
roles/dns_resolver/tasks/main.yml
Normal file
41
roles/dns_resolver/tasks/main.yml
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Enable powerdns apt-key
|
||||||
|
apt_key: url='https://repo.powerdns.com/FD380FBB-pub.asc'
|
||||||
|
|
||||||
|
- name: Enable powerdns repository
|
||||||
|
apt_repository: repo='deb http://repo.powerdns.com/debian buster-dnsdist-15 main'
|
||||||
|
|
||||||
|
- name: Install powerdns
|
||||||
|
apt:
|
||||||
|
name:
|
||||||
|
- dnsdist
|
||||||
|
- pdns-recursor
|
||||||
|
|
||||||
|
- name: Ensure certificates are available
|
||||||
|
command:
|
||||||
|
cmd: >
|
||||||
|
openssl req -x509 -nodes -newkey rsa:2048
|
||||||
|
-keyout /etc/dnsdist/{{ ansible_fqdn }}.key
|
||||||
|
-out /etc/dnsdist/{{ ansible_fqdn }}.crt
|
||||||
|
-days 730 -subj "/CN={{ ansible_fqdn }}"
|
||||||
|
creates: /etc/dnsdist/{{ ansible_fqdn }}.crt
|
||||||
|
notify: Restart dnsdist
|
||||||
|
|
||||||
|
- name: Configure certificate manager
|
||||||
|
template: src=certs.j2 dest=/etc/acertmgr/{{ ansible_fqdn }}_dns.conf
|
||||||
|
notify: Run acertmgr
|
||||||
|
|
||||||
|
- name: Configure powerdns
|
||||||
|
template: src=recursor.conf.j2 dest=/etc/powerdns/recursor.conf
|
||||||
|
notify: Restart powerdns
|
||||||
|
|
||||||
|
- name: Configure dnsdist
|
||||||
|
template: src=dnsdist.conf.j2 dest=/etc/dnsdist/dnsdist.conf
|
||||||
|
notify: Restart dnsdist
|
||||||
|
|
||||||
|
- name: Start the dns services
|
||||||
|
service: name={{ item }} state=started enabled=yes
|
||||||
|
with_items:
|
||||||
|
- dnsdist
|
||||||
|
- pdns-recursor
|
15
roles/dns_resolver/templates/certs.j2
Normal file
15
roles/dns_resolver/templates/certs.j2
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
{{ ansible_fqdn }}:
|
||||||
|
- path: /etc/dnsdist/{{ ansible_fqdn }}.crt
|
||||||
|
user: _dnsdist
|
||||||
|
group: _dnsdist
|
||||||
|
perm: '400'
|
||||||
|
format: crt,ca
|
||||||
|
action: '/usr/sbin/service dnsdist restart'
|
||||||
|
- path: /etc/dnsdist/{{ ansible_fqdn }}.key
|
||||||
|
user: _dnsdist
|
||||||
|
group: _dnsdist
|
||||||
|
perm: '400'
|
||||||
|
format: key
|
||||||
|
action: '/usr/sbin/service dnsdist restart'
|
16
roles/dns_resolver/templates/dnsdist.conf.j2
Normal file
16
roles/dns_resolver/templates/dnsdist.conf.j2
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
-- {{ ansible_managed }}
|
||||||
|
|
||||||
|
setLocal('127.0.0.1')
|
||||||
|
addLocal('::1')
|
||||||
|
addLocal('{{ ansible_default_ipv4.address }}')
|
||||||
|
addLocal('{{ ansible_default_ipv6.address }}')
|
||||||
|
|
||||||
|
newServer({address="127.0.0.1:5300", qps=1, name="localhost"})
|
||||||
|
|
||||||
|
addTLSLocal('127.0.0.1','/etc/dnsdist/{{ ansible_fqdn }}.crt', '/etc/dnsdist/{{ ansible_fqdn }}.key')
|
||||||
|
addTLSLocal('::1','/etc/dnsdist/{{ ansible_fqdn }}.crt', '/etc/dnsdist/{{ ansible_fqdn }}.key')
|
||||||
|
addTLSLocal('{{ ansible_default_ipv4.address }}','/etc/dnsdist/{{ ansible_fqdn }}.crt', '/etc/dnsdist/{{ ansible_fqdn }}.key')
|
||||||
|
addTLSLocal('{{ ansible_default_ipv6.address }}','/etc/dnsdist/{{ ansible_fqdn }}.crt', '/etc/dnsdist/{{ ansible_fqdn }}.key')
|
||||||
|
|
||||||
|
-- disable security status polling via DNS
|
||||||
|
setSecurityPollSuffix("")
|
55
roles/dns_resolver/templates/recursor.conf.j2
Normal file
55
roles/dns_resolver/templates/recursor.conf.j2
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
# {{ ansible_managed }}
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# allow-from If set, only allow these comma separated netmasks to recurse
|
||||||
|
#
|
||||||
|
#allow-from=127.0.0.0/8
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# config-dir Location of configuration directory (recursor.conf)
|
||||||
|
#
|
||||||
|
config-dir=/etc/powerdns
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# dnssec DNSSEC mode: off/process-no-validate (default)/process/log-fail/validate
|
||||||
|
#
|
||||||
|
# dnssec=process-no-validate
|
||||||
|
dnssec=off
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# local-address IP addresses to listen on, separated by spaces or commas. Also accepts ports.
|
||||||
|
#
|
||||||
|
local-address=127.0.0.1
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# local-port port to listen on
|
||||||
|
#
|
||||||
|
local-port=5300
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# query-local-address6 Send out local IPv6 queries from this address or addresses. Disabled by default, which also disables outgoing
|
||||||
|
#
|
||||||
|
{% if global_ipv6 is defined %}
|
||||||
|
query-local-address6={{ global_ipv6 | ipaddr('address') }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# quiet Suppress logging of questions and answers
|
||||||
|
#
|
||||||
|
quiet=yes
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# security-poll-suffix Domain name from which to query security update notifications
|
||||||
|
#
|
||||||
|
# security-poll-suffix=secpoll.powerdns.com.
|
||||||
|
security-poll-suffix=
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# setgid If set, change group id to this gid for more security
|
||||||
|
#
|
||||||
|
setgid=pdns
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# setuid If set, change user id to this uid for more security
|
||||||
|
#
|
||||||
|
setuid=pdns
|
Loading…
Reference in New Issue
Block a user