Compare commits
4 commits
783dbdc986
...
25f85bfc52
Author | SHA1 | Date | |
---|---|---|---|
s3lph | 25f85bfc52 | ||
s3lph | ffc1ed7fde | ||
s3lph | 0d364f3359 | ||
s3lph | f568b38831 |
|
@ -1,5 +1,3 @@
|
|||
---
|
||||
collections:
|
||||
- name: https://gitlab.com/s3lph/ansible-collection-nameserver
|
||||
type: git
|
||||
version: master
|
||||
- name: s3lph.nameserver
|
||||
|
|
|
@ -7,7 +7,7 @@ namespace: s3lph
|
|||
name: nameserver
|
||||
|
||||
# The version of the collection. Must be compatible with semantic versioning
|
||||
version: "0.4.0"
|
||||
version: "0.4.1"
|
||||
|
||||
# The path to the Markdown (.md) readme file. This path is relative to the root of the collection
|
||||
readme: README.md
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
# Collections must specify a minimum required ansible version to upload
|
||||
# to galaxy
|
||||
requires_ansible: '>=2.10'
|
||||
requires_ansible: '>=2.15'
|
||||
|
||||
# Content that Ansible needs to load from another location or that has
|
||||
# been deprecated/removed
|
||||
|
|
|
@ -10,3 +10,51 @@
|
|||
vars:
|
||||
zones: "{{ hostvars[inventory_hostname] | dict2items | selectattr('key', 'match', '^knot_zone_.+$') | map(attribute='value') | list }}"
|
||||
notify: restart knot
|
||||
|
||||
- name: Create knot zone directories
|
||||
ansible.builtin.file:
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
owner: knot
|
||||
group: knot
|
||||
mode: "0750"
|
||||
loop:
|
||||
- "{{ knot_zone_master_storage_path }}"
|
||||
- "{{ knot_zone_replica_storage_path }}"
|
||||
|
||||
- name: Make sure all zones have a name
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- "'name' in item.value"
|
||||
- "item.value.name | type_debug == 'str'"
|
||||
fail_msg: "{{ item.key }} does not have a name"
|
||||
loop: "{{ hostvars[inventory_hostname] | dict2items | selectattr('key', 'match', '^knot_zone_.+$') | list }}"
|
||||
|
||||
- name: Make sure all zones have at least one master defined
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- "'masters' in item.value"
|
||||
- "item.value.masters | type_debug == 'list'"
|
||||
- "item.value.masters | length > 0"
|
||||
fail_msg: "{{ item.key }} does not have a zone master"
|
||||
loop: "{{ hostvars[inventory_hostname] | dict2items | selectattr('key', 'match', '^knot_zone_.+$') | list }}"
|
||||
|
||||
- name: Render knot zone files
|
||||
ansible.builtin.template:
|
||||
src: var/lib/knot/master/zone.j2
|
||||
dest: "{{ knot_zone_master_storage_path }}/{{ item.name }}zone"
|
||||
owner: knot
|
||||
group: knot
|
||||
mode: "0640"
|
||||
validate: /usr/bin/kzonecheck -v %s
|
||||
vars:
|
||||
zone: "{{ item }}"
|
||||
when: "inventory_hostname in item['masters']"
|
||||
loop: "{{ hostvars[inventory_hostname] | dict2items | selectattr('key', 'match', '^knot_zone_.+$') | map(attribute='value') | list }}"
|
||||
notify: reload knot
|
||||
|
||||
- name: Start and enable knot
|
||||
ansible.builtin.service:
|
||||
name: knot
|
||||
state: started
|
||||
enabled: true
|
||||
|
|
|
@ -16,9 +16,3 @@
|
|||
- knot
|
||||
- knot-dnsutils
|
||||
- knot-dnssecutils
|
||||
|
||||
- name: Start and enable knot
|
||||
ansible.builtin.service:
|
||||
name: knot
|
||||
state: started
|
||||
enabled: true
|
||||
|
|
|
@ -6,14 +6,9 @@
|
|||
- "role::knot"
|
||||
- "role::knot:install"
|
||||
|
||||
- name: Render zonefiles
|
||||
ansible.builtin.import_tasks: zones.yml
|
||||
tags:
|
||||
- "role::knot"
|
||||
- "role::knot:zones"
|
||||
|
||||
- name: Configure knot
|
||||
ansible.builtin.import_tasks: config.yml
|
||||
tags:
|
||||
- "role::knot"
|
||||
- "role::knot:config"
|
||||
- "role::knot:zones" # Backwards compat; this used to be a separate file
|
||||
|
|
|
@ -1,43 +0,0 @@
|
|||
---
|
||||
|
||||
- name: Create knot zone directories
|
||||
ansible.builtin.file:
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
owner: knot
|
||||
group: knot
|
||||
mode: "0750"
|
||||
loop:
|
||||
- "{{ knot_zone_master_storage_path }}"
|
||||
- "{{ knot_zone_replica_storage_path }}"
|
||||
|
||||
- name: Make sure all zones have a name
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- "'name' in item.value"
|
||||
- "item.value.name | type_debug == 'str'"
|
||||
fail_msg: "{{ item.key }} does not have a name"
|
||||
loop: "{{ hostvars[inventory_hostname] | dict2items | selectattr('key', 'match', '^knot_zone_.+$') | list }}"
|
||||
|
||||
- name: Make sure all zones have at least one master defined
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- "'masters' in item.value"
|
||||
- "item.value.masters | type_debug == 'list'"
|
||||
- "item.value.masters | length > 0"
|
||||
fail_msg: "{{ item.key }} does not have a zone master"
|
||||
loop: "{{ hostvars[inventory_hostname] | dict2items | selectattr('key', 'match', '^knot_zone_.+$') | list }}"
|
||||
|
||||
- name: Render knot zone files
|
||||
ansible.builtin.template:
|
||||
src: var/lib/knot/master/zone.j2
|
||||
dest: "{{ knot_zone_master_storage_path }}/{{ item.name }}zone"
|
||||
owner: knot
|
||||
group: knot
|
||||
mode: "0640"
|
||||
validate: /usr/bin/kzonecheck -v %s
|
||||
vars:
|
||||
zone: "{{ item }}"
|
||||
when: "inventory_hostname in item['masters']"
|
||||
loop: "{{ hostvars[inventory_hostname] | dict2items | selectattr('key', 'match', '^knot_zone_.+$') | map(attribute='value') | list }}"
|
||||
notify: reload knot
|
Loading…
Reference in a new issue