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.
 
 

111 rivejä
3.2 KiB

  1. ---
  2. - block:
  3. - name: Ensure the override directory exists (systemd)
  4. file:
  5. name: "/etc/systemd/system/{{ pdns_service_name }}.service.d"
  6. state: directory
  7. owner: root
  8. group: root
  9. - name: Override the PowerDNS Authoritative Server unit (systemd)
  10. template:
  11. src: "override-service.systemd.conf.j2"
  12. dest: "/etc/systemd/system/{{ pdns_service_name }}.service.d/override.conf"
  13. owner: root
  14. group: root
  15. notify: reload systemd and restart PowerDNS
  16. when: pdns_service_overrides != {}
  17. and ansible_service_mgr == "systemd"
  18. - name: Ensure that the PowerDNS Authoritative Server configuration directory exists
  19. file:
  20. name: "{{ pdns_config_dir }}"
  21. state: directory
  22. owner: "root"
  23. group: "root"
  24. mode: 0750
  25. - name: Generate the PowerDNS Authoritative Server configuration
  26. template:
  27. src: pdns.conf.j2
  28. dest: "{{ pdns_config_dir }}/{{ pdns_config_file }}"
  29. owner: "root"
  30. group: "root"
  31. mode: 0640
  32. notify: restart PowerDNS
  33. - name: Ensure that the PowerDNS Authoritative Server 'include-dir' directory exists
  34. file:
  35. name: "{{ pdns_config['include-dir'] }}"
  36. state: directory
  37. owner: "root"
  38. group: "root"
  39. mode: 0750
  40. when: "pdns_config['include-dir'] is defined"
  41. - name: Enable Syslog logging for PowerDns
  42. lineinfile:
  43. path: /usr/lib/systemd/system/pdns.service
  44. regexp: 'disable-syslog'
  45. line: "ExecStart=/usr/sbin/pdns_server --guardian=no --daemon=no --log-timestamp=no --write-pid=no"
  46. become: true
  47. become_method: sudo
  48. notify: reload systemd and restart PowerDNS
  49. - name: Configure syslog log rotation
  50. template:
  51. src: syslogrotate.conf.j2
  52. dest: "/etc/logrotate.d/syslog"
  53. become: true
  54. become_method: sudo
  55. - block:
  56. - name: Ensure that the bind backend dir exists
  57. file:
  58. name: "{{ pdns_bind_backend_dir }}"
  59. state: directory
  60. owner: "{{ pdns_user }}"
  61. group: "{{ pdns_group }}"
  62. mode: 0750
  63. - name: Ensure that the bind backend config file exists
  64. template:
  65. src: bind.conf.j2
  66. dest: "{{ pdns_bind_backend_config }}"
  67. owner: "{{ pdns_user }}"
  68. group: "{{ pdns_group }}"
  69. mode: 0640
  70. notify: restart PowerDNS
  71. - name:
  72. copy:
  73. src: "{{ domain | replace('/','-') }}.zone"
  74. dest: "{{ pdns_bind_backend_dir }}/{{ domain | replace('/','-') }}.zone"
  75. owner: "{{ pdns_user }}"
  76. group: "{{ pdns_group }}"
  77. mode: 0444
  78. loop: "{{ managed_domains | default([], true) }}"
  79. loop_control:
  80. loop_var: domain
  81. notify: restart PowerDNS
  82. when:
  83. - managed_domains is defined
  84. - name: Ensure that the dnssec bind db exists
  85. shell:
  86. cmd: "pdnsutil create-bind-db {{ pdns_backends['bind']['dnssec-db'] }}"
  87. creates: "{{ pdns_backends['bind']['dnssec-db'] }}"
  88. when:
  89. - (pdns_backends['bind']['dnssec-db'] | default("", true)) != ""
  90. - name: Set ownership of dnssec db
  91. file:
  92. name: "{{ pdns_backends['bind']['dnssec-db'] }}"
  93. owner: "{{ pdns_user }}"
  94. group: "{{ pdns_group }}"
  95. mode: 0640
  96. when:
  97. - (pdns_backends['bind']['dnssec-db'] | default("", true)) != ""
  98. when:
  99. - "pdns_backends['bind'] is defined"