Saltstack Official Galera Formula
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

110 lines
2.5KB

  1. {%- from "galera/map.jinja" import master with context %}
  2. {%- if master.enabled %}
  3. {%- if grains.os_family == 'RedHat' %}
  4. xtrabackup_repo:
  5. pkg.installed:
  6. - sources:
  7. - percona-xtrabackup: {{ master.xtrabackup_repo }}
  8. - require_in:
  9. - pkg: galera_packages
  10. {%- endif %}
  11. galera_packages:
  12. pkg.installed:
  13. - names: {{ master.pkgs }}
  14. galera_log_dir:
  15. file.directory:
  16. - name: /var/log/mysql
  17. - makedirs: true
  18. - mode: 755
  19. - require:
  20. - pkg: galera_packages
  21. galera_init_script:
  22. file.managed:
  23. - name: /etc/init.d/mysql
  24. - source: salt://galera/files/mysql
  25. - mode: 755
  26. - require:
  27. - pkg: galera_packages
  28. {%- if salt['cmd.run']('test -e /root/.galera_bootstrap; echo $?') != '0' %}
  29. galera_bootstrap_temp_config:
  30. file.managed:
  31. - name: {{ master.config }}
  32. - source: salt://galera/files/my.cnf.bootstrap
  33. - mode: 644
  34. - template: jinja
  35. - require:
  36. - pkg: galera_packages
  37. - file: galera_init_script
  38. galera_bootstrap_start_service:
  39. service.running:
  40. - name: {{ master.service }}
  41. - require:
  42. - file: galera_bootstrap_temp_config
  43. galera_bootstrap_set_root_password:
  44. cmd.run:
  45. - name: mysqladmin password "{{ master.admin.password }}"
  46. - require:
  47. - service: galera_bootstrap_start_service
  48. mysql_bootstrap_update_maint_password:
  49. cmd.run:
  50. - name: mysql -u root -p{{ master.admin.password }} -e "GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '{{ master.maintenance_password }}';"
  51. - require:
  52. - cmd: galera_bootstrap_set_root_password
  53. galera_bootstrap_stop_service:
  54. service.dead:
  55. - name: {{ master.service }}
  56. - require:
  57. - cmd: mysql_bootstrap_update_maint_password
  58. galera_bootstrap_init_config:
  59. file.managed:
  60. - name: {{ master.config }}
  61. - source: salt://galera/files/my.cnf.init
  62. - mode: 644
  63. - template: jinja
  64. - require:
  65. - service: galera_bootstrap_stop_service
  66. galera_bootstrap_start_service_final:
  67. service.running:
  68. - name: {{ master.service }}
  69. - require:
  70. - file: galera_bootstrap_init_config
  71. galera_bootstrap_finish_flag:
  72. file.touch:
  73. - name: /root/.galera_bootstrap
  74. - require:
  75. - service: galera_bootstrap_start_service_final
  76. - watch_in:
  77. - file: galera_config
  78. {%- endif %}
  79. galera_config:
  80. file.managed:
  81. - name: {{ master.config }}
  82. - source: salt://galera/files/my.cnf
  83. - mode: 644
  84. - template: jinja
  85. - require_in:
  86. - service: galera_service
  87. galera_service:
  88. service.running:
  89. - name: {{ master.service }}
  90. - enable: true
  91. - reload: true
  92. {%- endif %}