85 lines
1.8 KiB
YAML
85 lines
1.8 KiB
YAML
- name: load distribution-specific values
|
|
include_vars: '{{ item }}'
|
|
with_first_found:
|
|
- '{{ ansible_distribution }}.yml'
|
|
- defaults.yml
|
|
tags:
|
|
- always
|
|
|
|
- name: ensure packages are installed
|
|
package:
|
|
name={{ named_packages|join(',') }}
|
|
state=present
|
|
tags:
|
|
- install
|
|
|
|
- name: ensure named keys are configured
|
|
template:
|
|
src: named.secrets.j2
|
|
dest: /etc/named.secrets
|
|
mode: '0440'
|
|
owner: root
|
|
group: named
|
|
validate: named-checkconf %s
|
|
notify: reload named
|
|
|
|
- name: ensure zones are configured
|
|
template:
|
|
src: named.zones.j2
|
|
dest: /etc/named.zones
|
|
mode: '0640'
|
|
owner: root
|
|
group: named
|
|
validate: named-checkconf %s
|
|
notify: reload named
|
|
- name: ensure zone files exist
|
|
template:
|
|
src: zone.j2
|
|
dest: /var/named/{{ item.zone_file|d('dynamic/' + item.zone + '.zone') }}
|
|
mode: '0640'
|
|
owner: root
|
|
group: named
|
|
force: no
|
|
with_items: '{{ named_zones|selectattr("type", "eq", "master")|list }}'
|
|
notify: reload named
|
|
|
|
- name: ensure named is configured
|
|
template:
|
|
src: named.conf.j2
|
|
dest: /etc/named.conf
|
|
mode: '0640'
|
|
owner: root
|
|
group: named
|
|
validate: named-checkconf %s
|
|
notify: restart named
|
|
|
|
# TODO: What about other OS/init setups?
|
|
- name: ensure named environment variables are set
|
|
template:
|
|
src=named.sysconfig.j2
|
|
dest=/etc/sysconfig/named
|
|
mode=0644
|
|
when: ansible_os_family == 'RedHat'
|
|
notify: restart named
|
|
|
|
- name: ensure named starts at boot
|
|
service:
|
|
name=named
|
|
enabled=yes
|
|
- meta: flush_handlers
|
|
- name: ensure named is running
|
|
service:
|
|
name=named
|
|
state=started
|
|
|
|
- name: ensure firewall is configured for dns
|
|
firewalld:
|
|
service=dns
|
|
state=enabled
|
|
permanent=no
|
|
immediate=yes
|
|
notify: save firewalld configuration
|
|
when: host_uses_firewalld|d(true)|bool
|
|
tags:
|
|
- firewalld
|