nsd/tasks/main.yml
Baptiste Jonglez 34f12ba81c NSD: Allow to configure the name of the TSIG keys
Of course, I forgot that the name of TSIG keys is relevant, since it needs
to be the same on both the master and the slave...

While we're at it, allow to define keys separately and refer them by name
in zone config, which avoids duplication.
2016-03-26 19:14:59 +01:00

86 lines
3.0 KiB
YAML

---
- name: Install nsd3
apt: pkg=nsd3 state=present
- name: Configure nsd3
template: src=config.j2 dest={{ nsd_config_dir }}/nsd.conf owner=root group=root mode=0644
notify:
- restart nsd3
- name: Create zone configuration directory
file: path={{ zones_config_dir }} state=directory owner=root group=root mode=0755
- name: Create primary zone directory
file: path={{ primary_zones_dir }} state=directory owner=root group=root mode=0755
- name: Create secondary zone directory
file: path={{ secondary_zones_dir }} state=directory owner=nsd group=nsd mode=0755
- name: Create keys directory
file: path={{ keys_config_dir }} state=directory owner=root group=root mode=0755
# Unfortunately, nsd doesn't allow to say "include all files in this directory".
# The following implements the inclusion logic: the main config file includes
# a secondary file, in which we add include statements for each zone.
- name: Wipe include file
copy: dest={{ zones_include_file }} content="# Generated automatically by Ansible, do not edit by hand.\n"
- name: Configure primary nsd3 zones
template: src=primary_zone_config.j2 dest="{{ zones_config_dir }}/{{ item.zone_name }}.primary.conf" owner=root group=root mode=0644
notify:
- restart nsd3
with_items: "{{ nsd_primary_zones }}"
- name: Add include lines for primary zones to the include file
lineinfile:
state: present
dest: "{{ zones_include_file }}"
regexp: "^include: {{ zones_config_dir }}/{{ item.zone_name }}.primary.conf"
line: "include: {{ zones_config_dir }}/{{ item.zone_name }}.primary.conf"
with_items: "{{ nsd_primary_zones }}"
notify:
- restart nsd3
- name: Copy primary nsd3 zones
copy: src="files/nsd/{{ item.zone_filename }}" dest="{{ primary_zones_dir }}/{{ item.zone_filename }}" owner=root group=root mode=0644
with_items: "{{ nsd_primary_zones }}"
notify:
- rebuild nsd3 database
- name: Configure secondary nsd3 zones
template: src=secondary_zone_config.j2 dest="{{ zones_config_dir }}/{{ item.zone_name }}.secondary.conf" owner=root group=root mode=0644
notify:
- restart nsd3
with_items: "{{ nsd_secondary_zones }}"
- name: Add include lines for secondary zones to the include file
lineinfile:
state: present
dest: "{{ zones_include_file }}"
regexp: "^include: {{ zones_config_dir }}/{{ item.zone_name }}.secondary.conf"
line: "include: {{ zones_config_dir }}/{{ item.zone_name }}.secondary.conf"
with_items: "{{ nsd_secondary_zones }}"
notify:
- restart nsd3
- name: Configure TSIG keys
template: src=tsigkey_config.j2 dest="{{ keys_config_dir }}/{{ item.tsig_keyname }}.conf" owner=root group=root mode=0644
notify:
- restart nsd3
with_items: "{{ nsd_tsig_keys }}"
- name: Add include lines for TSIG keys
lineinfile:
state: present
dest: "{{ zones_include_file }}"
regexp: "^include: {{ keys_config_dir }}/{{ item.tsig_keyname }}.conf"
line: "include: {{ keys_config_dir }}/{{ item.tsig_keyname }}.conf"
with_items: "{{ nsd_tsig_keys }}"
notify:
- restart nsd3