Guest User

Untitled

a guest
Mar 8th, 2016
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.11 KB | None | 0 0
  1. ---
  2. - name: Ensure EPEL repository is enabled
  3. copy: src=../files/epel.repo
  4. dest=/etc/yum.repos.d/
  5. owner=root group=root mode=0644
  6.  
  7. - name: Ensure PowerDNS and dependancies are installed
  8. yum: update_cache=yes name={{ item }} state=latest
  9. with_items:
  10. - mariadb-server
  11. - mariadb
  12. - pdns-backend-mysql
  13. - pdns
  14. - MySQL-python
  15.  
  16. - name: Start the MySQL service
  17. action: service name=mariadb state=started enabled=yes
  18.  
  19. - name: Ensure my.cnf is present
  20. template: src=../templates/my.cnf.j2 dest=/root/.my.cnf owner=root group=root
  21.  
  22. - name: Ensure SQL setup file is present
  23. copy: src=../templates/setup.sql.j2 dest=~/setup.sql
  24. register: mysqlsetup
  25.  
  26. - name: Create PowerDNS Database
  27. mysql_db: name=powerdns state=present
  28. when: mysqlsetup.changed
  29.  
  30. - name: Import default database
  31. mysql_db: name=powerdns state=import target=~/setup.sql
  32. when: mysqlsetup.changed
  33.  
  34. #- name: Ensure MYSQLDB Python module is installed
  35. # pip: name=MySQL-python
  36.  
  37. - name: Ensure MYSQL root password is set
  38. mysql_user: name=root host={{ item }} password=rsi!lus
  39. with_items:
  40. - 127.0.0.1
  41. - "{{ ansible_hostname }}"
  42. - ::1
  43. - localhost
  44.  
  45. - name: Ensure MySQL powerdns users exist
  46. mysql_user: name=powerdns password={{ mysql_powerdns_password }} host={{ item }} state=present
  47. with_items:
  48. - localhost
  49.  
  50. - name: Ensure PowerDNS user can access PowerDNS database
  51. mysql_user: name=powerdns
  52. priv=powerdns.*:ALL,GRANT
  53. state=present
  54.  
  55. - name: Ensure Hostbill user exists
  56. mysql_user: name=pdnshostbill password={{ mysql_hostbill_password }} host={{ hostbill_private_ip }} priv=powerdns.*:ALL state=present
  57.  
  58. #- name: Ensure Hostbill user can access PowerDNS database
  59. # mysql_user: name=pdnshostbill priv=powerdns.*:ALL state=present
  60.  
  61.  
  62. - name: Ensure powerdns directory exists
  63. command: mkdir /etc/pdns
  64. args:
  65. creates: /etc/pdns
  66.  
  67. - name: Ensure powerdns distributed config directory exists
  68. command: mkdir /etc/pdns/pdns.d
  69. args:
  70. creates: /etc/pdns/pdns.d
  71.  
  72.  
  73. - name: Ensure pdns.conf exists
  74. command: touch /etc/pdns/pdns.conf
  75. args:
  76. creates: /etc/pdns/pdns.conf
  77.  
  78.  
  79. - name: Ensure common elements are in pdns.conf
  80. lineinfile: "dest=/etc/pdns/pdns.conf line={{ item.line }} regexp={{ item.regexp }}"
  81. notify: Restart powerdns
  82. with_items:
  83. - { regexp: '^launch=', line: ' ' }
  84. - { regexp: '^loglevel=', line: 'loglevel=7' }
  85. - { regexp: '^setgid=', line: 'setgid=pdns' }
  86. - { regexp: '^setuid=', line: 'setuid=pdns' }
  87. - { regexp: '^version-string=', line: 'version-string=powerdns' }
  88. - { regexp: '^include-dir=', line: 'include-dir=/etc/pdns/pdns.d' }
  89.  
  90. - name: Ensure master elements are in pdns.conf
  91. lineinfile: "dest=/etc/pdns/pdns.conf line={{ item.line }} regexp={{ item.regexp }}"
  92. notify: Restart powerdns
  93. when: ansible_fqdn == 'custns1.rsi-green.com'
  94. with_items:
  95. - { regexp: '^allow-axfr-ips=', line: 'allow-axfr-ips=66.194.167.0/24' }
  96. - { regexp: '^disable-axfr=', line: 'disable-axfr=no' }
  97. - { regexp: '^master=', line: 'master=yes' }
  98. - { regexp: '^slave=', line: 'slave=no' }
  99.  
  100. - name: Ensure slave elements are in pdns.conf
  101. lineinfile: "dest=/etc/pdns/pdns.conf line={{ item.line }} regexp={{ item.regexp }}"
  102. notify: Restart powerdns
  103. when: ansible_fqdn != 'custns1.rsi-green.com'
  104. with_items:
  105. - { regexp: '^disable-axfr=', line: 'disable-axfr=yes' }
  106. - { regexp: '^master=', line: 'master=no' }
  107. - { regexp: '^slave=', line: 'slave=yes' }
  108. - { regexp: '^slave-cycle-interval=', line: 'slave-cycle-interval=60' }
  109.  
  110. - name: Ensure PowerDNS is configured to access database
  111. template: src=../templates/pdns.local.gmysql.conf dest=/etc/pdns/pdns.d/pdns.local.gmysql.conf
  112. notify: Restart powerdns
  113.  
  114. - name: Ensure powerdns is started
  115. service: name=pdns state=started enabled=yes
  116.  
  117. - name: Ensure firewalld is configured to pass dns traffic
  118. firewalld: service=dns zone=public permanent=true state=enabled
  119.  
  120. - name: Ensure firewalld is configured to pass mysql traffic
  121. firewalld: service=mysql zone=public permanent=true state=enabled
Add Comment
Please, Sign In to add comment