2018-03-31 15:50:50 +00:00
|
|
|
- name: create zone folder
|
|
|
|
file:
|
|
|
|
path: '/etc/bind/zones/{{ item.key }}'
|
|
|
|
owner: bind
|
|
|
|
group: bind
|
|
|
|
mode: 0755
|
|
|
|
state: directory
|
|
|
|
with_dict: '{{ bind_zones }}'
|
|
|
|
when: item.value.state is not defined or item.value.state != 'absent'
|
|
|
|
|
2018-03-28 15:45:57 +00:00
|
|
|
- name: copy zone files
|
|
|
|
template:
|
|
|
|
src: db.j2
|
2018-03-31 15:50:50 +00:00
|
|
|
dest: '/etc/bind/zones/{{ item.key }}/db'
|
2018-03-28 15:45:57 +00:00
|
|
|
owner: root
|
|
|
|
group: root
|
|
|
|
mode: 0644
|
|
|
|
with_dict: '{{ bind_zones }}'
|
|
|
|
register: zone
|
2018-03-31 15:50:50 +00:00
|
|
|
when: item.value.state is not defined or item.value.state != 'absent'
|
2018-03-28 15:45:57 +00:00
|
|
|
notify: reload bind
|
|
|
|
|
|
|
|
- name: dnssec sign
|
2018-03-31 15:50:50 +00:00
|
|
|
shell: 'dnssec-signzone -3 $(head -n 1000 /dev/urandom | sha1sum | cut -b 1-16) -A -N INCREMENT -o {{ item.item.key }} -t /etc/bind/zones/{{ item.item.key }}/db'
|
2018-03-28 15:45:57 +00:00
|
|
|
args:
|
|
|
|
chdir: /etc/bind/keys
|
|
|
|
with_items: '{{ zone.results }}'
|
|
|
|
when: item.changed and item.item.value.dnssec is defined and item.item.value.dnssec
|
|
|
|
notify: reload bind
|
2018-03-31 15:50:50 +00:00
|
|
|
|
|
|
|
- name: get zones files
|
|
|
|
find:
|
|
|
|
path: /etc/bind/zones
|
|
|
|
file_type: directory
|
|
|
|
recurse: no
|
|
|
|
register: zone_folders
|
|
|
|
|
|
|
|
- name: delete old zone file
|
|
|
|
file:
|
|
|
|
path: '{{ item.path }}'
|
|
|
|
state: absent
|
|
|
|
with_items: '{{ zone_folders.files }}'
|
|
|
|
when: item.path|basename not in bind_zones or ('state' in bind_zones[item.path|basename] and bind_zones[item.path|basename].state == 'absent')
|