Saltstack Official Galera Formula
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.

82 satır
2.0KB

  1. {%- if pillar.get('mysql', {}).server is defined %}
  2. {%- set server = pillar.mysql.server %}
  3. {%- for database_name, database in server.get('database', {}).iteritems() %}
  4. mysql_database_{{ database_name }}:
  5. mysql_database.present:
  6. - name: {{ database_name }}
  7. - require:
  8. {% if cluster.enabled %}
  9. - cmd: mysql_cluster_init
  10. {% else %}
  11. - service: mysql_service
  12. {% endif %}
  13. {%- for user in database.users %}
  14. mysql_user_{{ user.name }}_{{ database_name }}_{{ user.host }}:
  15. mysql_user.present:
  16. - host: '{{ user.host }}'
  17. - name: '{{ user.name }}'
  18. - password: {{ user.password }}
  19. - require:
  20. {% if cluster.enabled %}
  21. - cmd: mysql_cluster_init
  22. {% else %}
  23. - service: mysql_service
  24. {% endif %}
  25. mysql_grants_{{ user.name }}_{{ database_name }}_{{ user.host }}:
  26. mysql_grants.present:
  27. - grant: {{ user.rights }}
  28. - database: '{{ database_name }}.*'
  29. - user: '{{ user.name }}'
  30. - host: '{{ user.host }}'
  31. - require:
  32. - mysql_user: mysql_user_{{ user.name }}_{{ database_name }}_{{ user.host }}
  33. - mysql_database: mysql_database_{{ database_name }}
  34. {%- endfor %}
  35. {%- if database.initial_data is defined %}
  36. /root/mysql/scripts/restore_{{ database_name }}.sh:
  37. file.managed:
  38. - source: salt://mysql/conf/restore.sh
  39. - mode: 770
  40. - template: jinja
  41. - defaults:
  42. database_name: {{ database_name }}
  43. - require:
  44. - file: mysql_dirs
  45. - mysql_database: mysql_database_{{ database_name }}
  46. restore_mysql_database_{{ database_name }}:
  47. cmd.run:
  48. - name: /root/mysql/scripts/restore_{{ database_name }}.sh
  49. - unless: "[ -f /root/mysql/flags/{{ database_name }}-installed ]"
  50. - cwd: /root
  51. - require:
  52. - file: /root/mysql/scripts/restore_{{ database_name }}.sh
  53. {%- endif %}
  54. {%- endfor %}
  55. {%- for user in server.get('users', []) %}
  56. mysql_user_{{ user.name }}_{{ user.host }}:
  57. mysql_user.present:
  58. - host: '{{ user.host }}'
  59. - name: '{{ user.name }}'
  60. {%- if user.password is defined %}
  61. - password: {{ user.password }}
  62. {%- else %}
  63. - allow_passwordless: True
  64. {%- endif %}
  65. {%- endfor %}
  66. {%- endif %}