Saltstack Official Galera Formula
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

9 年前
9 年前
9 年前
9 年前
9 年前
9 年前
9 年前
9 年前
9 年前
9 年前
9 年前
9 年前
9 年前
9 年前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. {%- from "galera/map.jinja" import slave with context %}
  2. {%- if slave.enabled %}
  3. {%- if grains.os_family == 'RedHat' %}
  4. xtrabackup_repo:
  5. pkg.installed:
  6. - sources:
  7. - percona-release: {{ slave.xtrabackup_repo }}
  8. - require_in:
  9. - pkg: galera_packages
  10. # Workaround https://bugs.launchpad.net/percona-server/+bug/1490144
  11. xtrabackup_repo_fix:
  12. cmd.run:
  13. - name: |
  14. sed -i 's,enabled\ =\ 1,enabled\ =\ 1\nexclude\ =\ Percona-XtraDB-\*\ Percona-Server-\*,g' /etc/yum.repos.d/percona-release.repo
  15. - unless: 'grep "exclude = Percona-XtraDB-\*" /etc/yum.repos.d/percona-release.repo'
  16. - watch:
  17. - pkg: xtrabackup_repo
  18. - require_in:
  19. - pkg: galera_packages
  20. {%- endif %}
  21. galera_packages:
  22. pkg.installed:
  23. - names: {{ slave.pkgs }}
  24. - refresh: true
  25. galera_log_dir:
  26. file.directory:
  27. - name: /var/log/mysql
  28. - makedirs: true
  29. - mode: 755
  30. - require:
  31. - pkg: galera_packages
  32. {%- if grains.os_family == 'Debian' %}
  33. galera_run_dir:
  34. file.directory:
  35. - name: /var/run/mysqld
  36. - makedirs: true
  37. - mode: 755
  38. - user: mysql
  39. - group: root
  40. - require:
  41. - pkg: galera_packages
  42. {%- if grains.get('init', None) == "upstart" %}
  43. galera_purge_init:
  44. file.absent:
  45. - name: /etc/init.d/mysql
  46. - require:
  47. - pkg: galera_packages
  48. galera_overide:
  49. file.managed:
  50. - name: /etc/init/mysql.override
  51. - contents: |
  52. limit nofile 102400 102400
  53. exec /usr/bin/mysqld_safe
  54. - require:
  55. - pkg: galera_packages
  56. {%- elif grains.get('init', None) == "systemd" %}
  57. galera_systemd_directory_present:
  58. file.directory:
  59. - name: /etc/systemd/system/mysql.service.d
  60. - user: root
  61. - group: root
  62. - mode: 755
  63. - require:
  64. - pkg: galera_packages
  65. galera_override_limit_no_file:
  66. file.managed:
  67. - name: /etc/systemd/system/mysql.service.d/override.conf
  68. - contents: |
  69. [service]
  70. LimitNOFILE=1024000
  71. - require:
  72. - pkg: galera_packages
  73. - file: galera_systemd_directory_present
  74. - watch_in:
  75. - service: galera_service
  76. mysql_restart_systemd:
  77. module.wait:
  78. - name: service.systemctl_reload
  79. - watch:
  80. - file: /etc/systemd/system/mysql.service.d/override.conf
  81. - require_in:
  82. - service: galera_service
  83. {%- endif %}
  84. galera_conf_debian:
  85. file.managed:
  86. - name: /etc/mysql/debian.cnf
  87. - template: jinja
  88. - source: salt://galera/files/debian.cnf
  89. - mode: 640
  90. - require:
  91. - pkg: galera_packages
  92. {%- endif %}
  93. galera_init_script:
  94. file.managed:
  95. - name: /usr/local/sbin/galera_init.sh
  96. - mode: 755
  97. - source: salt://galera/files/init_bootstrap.sh
  98. - defaults:
  99. service: {{ slave|yaml }}
  100. - template: jinja
  101. galera_bootstrap_script:
  102. file.managed:
  103. - name: /usr/local/sbin/galera_bootstrap.sh
  104. - mode: 755
  105. - defaults:
  106. service: {{ slave|yaml }}
  107. - source: salt://galera/files/bootstrap.sh
  108. - template: jinja
  109. {%- if salt['cmd.run']('test -e /var/lib/mysql/.galera_bootstrap; echo $?') != '0' %}
  110. # Enforce config before package installation
  111. galera_pre_config:
  112. file.managed:
  113. - name: {{ slave.config }}
  114. - source: salt://galera/files/my.cnf.pre
  115. - mode: 644
  116. - template: jinja
  117. - makedirs: true
  118. - require_in:
  119. - pkg: galera_packages
  120. galera_init_start_service:
  121. cmd.run:
  122. - name: /usr/local/sbin/galera_init.sh
  123. - require:
  124. - file: galera_run_dir
  125. - file: galera_init_script
  126. galera_bootstrap_set_root_password:
  127. cmd.run:
  128. - name: mysqladmin password "{{ slave.admin.password }}"
  129. - require:
  130. - cmd: galera_init_start_service
  131. mysql_bootstrap_update_maint_password:
  132. cmd.run:
  133. - name: mysql -u root -p{{ slave.admin.password }} -e "GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '{{ slave.maintenance_password }}';"
  134. - require:
  135. - cmd: galera_bootstrap_set_root_password
  136. galera_bootstrap_stop_service:
  137. service.dead:
  138. - name: {{ slave.service }}
  139. - require:
  140. - cmd: mysql_bootstrap_update_maint_password
  141. galera_bootstrap_init_config:
  142. file.managed:
  143. - name: {{ slave.config }}
  144. - source: salt://galera/files/my.cnf
  145. - mode: 644
  146. - template: jinja
  147. - require:
  148. - service: galera_bootstrap_stop_service
  149. galera_bootstrap_start_service_final:
  150. cmd.run:
  151. - name: /usr/local/sbin/galera_bootstrap.sh
  152. - require:
  153. - file: galera_bootstrap_init_config
  154. - file: galera_bootstrap_script
  155. galera_bootstrap_finish_flag:
  156. file.touch:
  157. - name: /var/lib/mysql/.galera_bootstrap
  158. - require:
  159. - cmd: galera_bootstrap_start_service_final
  160. - watch_in:
  161. - file: galera_config
  162. {%- endif %}
  163. galera_config:
  164. file.managed:
  165. - name: {{ slave.config }}
  166. - source: salt://galera/files/my.cnf
  167. - mode: 644
  168. - template: jinja
  169. - require_in:
  170. - service: galera_service
  171. galera_service:
  172. service.running:
  173. - name: {{ slave.service }}
  174. - enable: true
  175. - reload: true
  176. {%- endif %}