42 lines
1.1 KiB
YAML
42 lines
1.1 KiB
YAML
---
|
|
- name: Install Bind9
|
|
apt:
|
|
update_cache: true
|
|
name: bind9
|
|
register: apt_result
|
|
retries: 3
|
|
until: apt_result is succeeded
|
|
|
|
- name: Lookup DNS servers
|
|
set_fact:
|
|
masters_ipv4: "{{ bind.masters | json_query('servers[].interface[?vlan_id==`2`].ipv4[]') }}"
|
|
masters_ipv6: "{{ bind.masters | json_query('servers[].interface[?vlan_id==`2`].ipv6[][].ipv6') }}"
|
|
slaves_ipv4: "{{ bind.slaves | json_query('servers[].interface[?vlan_id==`2`].ipv4[]') }}"
|
|
slaves_ipv6: "{{ bind.slaves | json_query('servers[].interface[?vlan_id==`2`].ipv6[][].ipv6') }}"
|
|
|
|
- name: Is this the master?
|
|
set_fact:
|
|
is_master: "{{ ansible_all_ipv4_addresses | intersect(masters_ipv4) | bool }}"
|
|
|
|
- name: Deploy Bind9 configuration
|
|
template:
|
|
src: bind/{{ item }}.j2
|
|
dest: /etc/bind/{{ item }}
|
|
mode: 0640
|
|
owner: root
|
|
group: bind
|
|
loop:
|
|
- named.conf
|
|
- named.conf.local
|
|
- named.conf.options
|
|
notify: Reload Bind9
|
|
|
|
- include: dnssec.yml
|
|
when: is_master
|
|
|
|
- name: Indicate role in motd
|
|
template:
|
|
src: update-motd.d/05-service.j2
|
|
dest: /etc/update-motd.d/05-bind
|
|
mode: 0755
|