blob: cd99dd6919d4bd66b9304d30357eb1214c4ffb43 [file] [log] [blame]
{%- from "galera/map.jinja" import master with context %}
{%- if master.enabled %}
{%- if grains.os_family == 'RedHat' %}
xtrabackup_repo:
pkg.installed:
- sources:
- percona-release: {{ master.xtrabackup_repo }}
- require_in:
- pkg: galera_packages
# Workaround https://bugs.launchpad.net/percona-server/+bug/1490144
xtrabackup_repo_fix:
cmd.run:
- name: |
sed -i 's,enabled\ =\ 1,enabled\ =\ 1\nexclude\ =\ Percona-XtraDB-\*\ Percona-Server-\*,g' /etc/yum.repos.d/percona-release.repo
- unless: 'grep "exclude = Percona-XtraDB-\*" /etc/yum.repos.d/percona-release.repo'
- watch:
- pkg: xtrabackup_repo
- require_in:
- pkg: galera_packages
{%- endif %}
galera_packages:
pkg.installed:
- names: {{ master.pkgs }}
- refresh: true
galera_log_dir:
file.directory:
- name: /var/log/mysql
- makedirs: true
- mode: 755
- require:
- pkg: galera_packages
{%- if grains.os_family == 'Debian' %}
galera_run_dir:
file.directory:
- name: /var/run/mysqld
- makedirs: true
- mode: 755
- user: mysql
- group: root
- require:
- pkg: galera_packages
- require_in:
- service: galera_bootstrap_start_service
{%- endif %}
galera_init_script:
file.managed:
- name: /etc/init.d/mysql
- source: salt://galera/files/mysql
- mode: 755
- require:
- pkg: galera_packages
{%- if salt['cmd.run']('test -e /var/lib/mysql/.galera_bootstrap; echo $?') != '0' %}
galera_bootstrap_temp_config:
file.managed:
- name: {{ master.config }}
- source: salt://galera/files/my.cnf.bootstrap
- mode: 644
- template: jinja
- require:
- pkg: galera_packages
- file: galera_init_script
galera_bootstrap_start_service:
cmd.script:
- name: master_initial_bootstrap
- source: salt://galera/files/bootstrap.sh
- template: jinja
- require:
- file: galera_bootstrap_temp_config
- file: galera_run_dir
galera_bootstrap_set_root_password:
cmd.run:
- name: mysqladmin password "{{ master.admin.password }}"
- require:
- cmd: galera_bootstrap_start_service
mysql_bootstrap_update_maint_password:
cmd.run:
- name: mysql -u root -p{{ master.admin.password }} -e "GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '{{ master.maintenance_password }}';"
- require:
- cmd: galera_bootstrap_set_root_password
galera_bootstrap_stop_service:
service.dead:
- name: {{ master.service }}
- require:
- cmd: mysql_bootstrap_update_maint_password
galera_bootstrap_init_config:
file.managed:
- name: {{ master.config }}
- source: salt://galera/files/my.cnf.init
- mode: 644
- template: jinja
- require:
- service: galera_bootstrap_stop_service
galera_bootstrap_start_service_final:
cmd.script:
- name: master_bootstrap
- source: salt://galera/files/bootstrap.sh
- require:
- file: galera_bootstrap_init_config
galera_bootstrap_finish_flag:
file.touch:
- name: /var/lib/mysql/.galera_bootstrap
- require:
- cmd: galera_bootstrap_start_service_final
- watch_in:
- file: galera_config
{%- endif %}
galera_config:
file.managed:
- name: {{ master.config }}
- source: salt://galera/files/my.cnf
- mode: 644
- template: jinja
- require_in:
- service: galera_service
galera_service:
service.running:
- name: {{ master.service }}
- enable: true
- reload: true
{%- endif %}