Repos with recipes to deploy some infrastructure services
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

42 line
1.7 KiB

  1. ---
  2. - import_playbook: playbook_ssh_known_host.yml
  3. - name: Configure PowerDNS auth server
  4. hosts:
  5. - all
  6. gather_facts: yes
  7. vars_files:
  8. - vars/powerdns.yml
  9. pre_tasks:
  10. - apt:
  11. name: '*'
  12. update_cache: true
  13. only_upgrade: true
  14. state: latest
  15. when: ansible_facts.os_family == "Debian"
  16. become: true
  17. become_method: sudo
  18. - yum:
  19. name: '*'
  20. update_cache: true
  21. security: true
  22. state: latest
  23. update_only: true
  24. when: ansible_facts.os_family == "RedHat"
  25. become: true
  26. become_method: sudo
  27. - set_fact:
  28. managed_domains: "{{ query('fileglob', '*.zone') | map('regex_replace', '(.*/)(.*).zone$', '\\2') | list | default([], true) }}"
  29. - set_fact:
  30. auth_ip_addresses: "{{ (slave_ip_addresses | default([], true)) | union(master_ip_addresses | default([], true)) | default(['127.0.0.0/8'], true) }}"
  31. - set_fact:
  32. delegated_managed_domains: "{{ delegated_managed_domains | default({}, true) | combine({item:auth_ip_addresses}) }}"
  33. loop: "{{ managed_domains | default([], true) }}"
  34. - set_fact:
  35. pdns_rec_forward_zones: "{{ (pdns_rec_forward_zones | default([])) + [[item.key, ((item.value | map('regex_replace', '/.*$')) | join(';'))] | join('=')] }}"
  36. loop: "{{ lookup('dict', (delegated_domains | default({}, true) | combine(delegated_managed_domains | default({}, true))), wantlist=true) }}"
  37. roles:
  38. - {role: powerdns.pdns, tags: ["auth"], become: true, become_method: sudo}
  39. - {role: powerdns.pdns_recursor, tags: ["recursor"], become: true, become_method: sudo}
  40. - {role: iptables, become: true, become_method: sudo}
  41. ...