You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.6 KiB
53 lines
1.6 KiB
---
|
|
|
|
- name: Install packages
|
|
yum:
|
|
name:
|
|
- ndjbdns
|
|
|
|
- name: Deploy dnscache config
|
|
template: src={{ item.src }} dest={{ item.dest }}
|
|
with_items:
|
|
- { src: dnscache.conf.j2, dest: /etc/ndjbdns/dnscache.conf }
|
|
- { src: roots.j2, dest: /etc/ndjbdns/servers/roots }
|
|
notify: restart dnscache
|
|
|
|
- name: Handle DNS port
|
|
iptables_raw:
|
|
name=dnscache_ports
|
|
state={{ (dnscache_src_ip | length > 0) | ternary('present','absent') }}
|
|
rules='-A INPUT -m state --state NEW -p udp -m multiport --dports 53 -s {{ dnscache_src_ip | join(',') }} -j ACCEPT'
|
|
when: iptables_manage | default(True)
|
|
|
|
- name: Allow queries
|
|
copy:
|
|
content: ""
|
|
dest: /etc/ndjbdns/ip/0
|
|
force: no
|
|
group: root
|
|
owner: root
|
|
mode: 0644
|
|
notify: restart dnscache
|
|
|
|
- name: List forwarded zones
|
|
shell: ls -1 /etc/ndjbdns/servers/ | xargs -n1 basename | grep -vP '^roots$' | cat
|
|
register: dnscache_fwd_zones
|
|
changed_when: False
|
|
|
|
- name: Remove unmanaged forwarded zones
|
|
file: path=/etc/ndjbdns/servers/{{ item }} state=absent
|
|
with_items: "{{ dnscache_fwd_zones.stdout_lines | default([]) }}"
|
|
when: item not in dnscache_forwarded_zones | map(attribute='zone')
|
|
|
|
- name: Deploy forwarded zones
|
|
copy:
|
|
content: "{{ item.servers | default([]) | join(\"\n\") }}"
|
|
dest: /etc/ndjbdns/servers/{{ item.zone }}
|
|
with_items: "{{ dnscache_forwarded_zones }}"
|
|
when: dnscache_forwarded_zones is defined and dnscache_forwarded_zones | length > 0
|
|
notify: restart dnscache
|
|
|
|
- name: Start and enable the service
|
|
service: name=dnscache state=started enabled=yes
|
|
|
|
...
|
|
|