deploy-dns.yml 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. ---
  2. - name: make sure required software is installed
  3. hosts: all
  4. become: yes
  5. tasks:
  6. - name: ensure the software is there
  7. yum:
  8. name: "{{ packages }}"
  9. state: latest
  10. - name: deploy corresponding dns service and configuration
  11. hosts: dnsservers,caching_ns
  12. become: yes
  13. tasks:
  14. - name: process any templates and publish them
  15. template:
  16. src: "{{ item.src }}"
  17. dest: "{{ item.dest }}"
  18. owner: "{{ item.owner }}"
  19. group: "{{ item.group }}"
  20. mode: "{{ item.mode }}"
  21. notify:
  22. - test configuration validity
  23. - reload or restart the service
  24. loop: "{{ configs }}"
  25. - name: deploy the static files as well
  26. copy:
  27. src: "{{ item.src }}"
  28. dest: "{{ item.dest }}"
  29. owner: "{{ item.owner }}"
  30. group: "{{ item.group }}"
  31. mode: "{{ item.mode }}"
  32. notify: them handlerz
  33. loop: "{{ staticfiles }}"
  34. - name: execute handlers if necessary
  35. meta: flush_handlers
  36. - name: ensure the service is started and enabled to start automatically
  37. service:
  38. name: "{{ service }}"
  39. state: started
  40. enabled: yes
  41. - name: ensure firewall is open for the service
  42. firewalld:
  43. service: "{{ fwsvc }}"
  44. state: enabled
  45. immediate: yes
  46. permanent: yes
  47. handlers:
  48. - name: test configuration validity
  49. listen: them handlerz
  50. command: "{{ item }}"
  51. changed_when: false
  52. loop: "{{ test_programs }}"
  53. - name: restart the service
  54. listen: them handlerz
  55. service:
  56. name: "{{ service }}"
  57. state: restarted