|
- ---
- - import_playbook: playbook_ssh_known_host.yml
- - name: Configure PowerDNS auth server
- hosts:
- - all
- gather_facts: yes
- vars_files:
- - vars/powerdns.yml
- pre_tasks:
- - apt:
- name: '*'
- update_cache: true
- only_upgrade: true
- state: latest
- when: ansible_facts.os_family == "Debian"
- become: true
- become_method: sudo
- - yum:
- name: '*'
- update_cache: true
- security: true
- state: latest
- update_only: true
- when: ansible_facts.os_family == "RedHat"
- become: true
- become_method: sudo
- - set_fact:
- managed_domains: "{{ query('fileglob', '*.zone') | map('regex_replace', '(.*/)(.*).zone$', '\\2') | list | default([], true) }}"
- - set_fact:
- auth_ip_addresses: "{{ (slave_ip_addresses | default([], true)) | union(master_ip_addresses | default([], true)) | default(['127.0.0.0/8'], true) }}"
- - set_fact:
- delegated_managed_domains: "{{ delegated_managed_domains | default({}, true) | combine({item:auth_ip_addresses}) }}"
- loop: "{{ managed_domains | default([], true) }}"
- - set_fact:
- pdns_rec_forward_zones: "{{ (pdns_rec_forward_zones | default([])) + [[item.key, ((item.value | map('regex_replace', '/.*$')) | join(';'))] | join('=')] }}"
- loop: "{{ lookup('dict', (delegated_domains | default({}, true) | combine(delegated_managed_domains | default({}, true))), wantlist=true) }}"
- roles:
- - {role: powerdns.pdns, tags: ["auth"], become: true, become_method: sudo}
- - {role: powerdns.pdns_recursor, tags: ["recursor"], become: true, become_method: sudo}
- - {role: iptables, become: true, become_method: sudo}
- ...
|