blob: 1b99ec6f9b358ea897e0257422c0e4c91a7a87f1 [file] [log] [blame]
Ales Komarek67ef8062015-04-30 16:09:30 +02001{%- from "galera/map.jinja" import slave with context %}
2{%- if slave.enabled %}
3
Filip Pytlounda679652016-02-17 10:56:10 +01004{%- if grains.os_family == 'RedHat' %}
5xtrabackup_repo:
6 pkg.installed:
7 - sources:
Filip Pytlound20f7402016-02-17 11:01:00 +01008 - percona-release: {{ slave.xtrabackup_repo }}
Filip Pytlounda679652016-02-17 10:56:10 +01009 - require_in:
10 - pkg: galera_packages
Filip Pytloun05b3e6d2016-02-17 12:59:45 +010011
12# Workaround https://bugs.launchpad.net/percona-server/+bug/1490144
13xtrabackup_repo_fix:
14 cmd.run:
Filip Pytloun5a5324d2016-02-17 13:05:50 +010015 - name: |
16 sed -i 's,enabled\ =\ 1,enabled\ =\ 1\nexclude\ =\ Percona-XtraDB-\*\ Percona-Server-\*,g' /etc/yum.repos.d/percona-release.repo
Filip Pytloun05b3e6d2016-02-17 12:59:45 +010017 - unless: 'grep "exclude = Percona-XtraDB-\*" /etc/yum.repos.d/percona-release.repo'
18 - watch:
19 - pkg: xtrabackup_repo
20 - require_in:
21 - pkg: galera_packages
Filip Pytlounda679652016-02-17 10:56:10 +010022{%- endif %}
23
Ales Komarek67ef8062015-04-30 16:09:30 +020024galera_packages:
25 pkg.installed:
26 - names: {{ slave.pkgs }}
Filip Pytlound20f7402016-02-17 11:01:00 +010027 - refresh: true
Ales Komarek67ef8062015-04-30 16:09:30 +020028
29galera_log_dir:
30 file.directory:
31 - name: /var/log/mysql
32 - makedirs: true
33 - mode: 755
34 - require:
35 - pkg: galera_packages
36
Filip Pytlouna22a3552015-07-21 17:54:59 +020037{%- if grains.os_family == 'Debian' %}
38galera_run_dir:
39 file.directory:
40 - name: /var/run/mysqld
41 - makedirs: true
42 - mode: 755
43 - user: mysql
44 - group: root
45 - require:
46 - pkg: galera_packages
Filip Pytlouna22a3552015-07-21 17:54:59 +020047
Pavel Cizinsky03a0ddc2016-08-23 09:46:33 +020048galera_purge_init:
49 file.absent:
50 - name: /etc/init/mysql.conf
51 - require:
Ales Komarek67ef8062015-04-30 16:09:30 +020052 - pkg: galera_packages
53
Pavel Cizinsky03a0ddc2016-08-23 09:46:33 +020054galera_conf_debian:
55 file.managed:
56 - name: /etc/mysql/debian.cnf
57 - template: jinja
58 - source: salt://galera/files/debian.cnf
59 - mode: 640
60 - require:
61 - pkg: galera_packages
62
63{%- endif %}
64
Ales Komarek961c8792016-10-17 16:38:31 +020065galera_init_script:
66 file.managed:
67 - name: /usr/local/sbin/galera_init.sh
68 - mode: 755
69 - source: salt://galera/files/init_bootstrap.sh
70 - defaults:
71 service: {{ slave|yaml }}
72 - template: jinja
73
Filip Pytloun9ba63ff2016-02-23 11:04:05 +010074galera_bootstrap_script:
75 file.managed:
76 - name: /usr/local/sbin/galera_bootstrap.sh
77 - mode: 755
Ales Komarek961c8792016-10-17 16:38:31 +020078 - defaults:
79 service: {{ slave|yaml }}
Filip Pytloun9ba63ff2016-02-23 11:04:05 +010080 - source: salt://galera/files/bootstrap.sh
81 - template: jinja
82
Jakub Pavlik4e4575f2015-09-01 22:05:52 +020083{%- if salt['cmd.run']('test -e /var/lib/mysql/.galera_bootstrap; echo $?') != '0' %}
Ales Komarek67ef8062015-04-30 16:09:30 +020084
Ales Komarek961c8792016-10-17 16:38:31 +020085galera_init_start_service:
Filip Pytloun9ba63ff2016-02-23 11:04:05 +010086 cmd.run:
Ales Komarek961c8792016-10-17 16:38:31 +020087 - name: /usr/local/sbin/galera_init.sh
Ales Komarek67ef8062015-04-30 16:09:30 +020088 - require:
Filip Pytloun52d29b52015-07-21 18:10:32 +020089 - file: galera_run_dir
Ales Komarek961c8792016-10-17 16:38:31 +020090 - file: galera_init_script
Ales Komarek67ef8062015-04-30 16:09:30 +020091
92galera_bootstrap_set_root_password:
93 cmd.run:
94 - name: mysqladmin password "{{ slave.admin.password }}"
95 - require:
Jakub Pavlik4e4575f2015-09-01 22:05:52 +020096 - cmd: galera_bootstrap_start_service
Ales Komarek67ef8062015-04-30 16:09:30 +020097
98mysql_bootstrap_update_maint_password:
99 cmd.run:
100 - name: mysql -u root -p{{ slave.admin.password }} -e "GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '{{ slave.maintenance_password }}';"
101 - require:
102 - cmd: galera_bootstrap_set_root_password
103
104galera_bootstrap_stop_service:
105 service.dead:
106 - name: {{ slave.service }}
107 - require:
108 - cmd: mysql_bootstrap_update_maint_password
109
110galera_bootstrap_init_config:
111 file.managed:
112 - name: {{ slave.config }}
113 - source: salt://galera/files/my.cnf
114 - mode: 644
115 - template: jinja
116 - require:
117 - service: galera_bootstrap_stop_service
118
119galera_bootstrap_start_service_final:
Filip Pytloun9ba63ff2016-02-23 11:04:05 +0100120 cmd.run:
121 - name: /usr/local/sbin/galera_bootstrap.sh
Ales Komarek67ef8062015-04-30 16:09:30 +0200122 - require:
123 - file: galera_bootstrap_init_config
Filip Pytloun9ba63ff2016-02-23 11:04:05 +0100124 - file: galera_bootstrap_script
Ales Komarek67ef8062015-04-30 16:09:30 +0200125
126galera_bootstrap_finish_flag:
127 file.touch:
Jakub Pavlik4e4575f2015-09-01 22:05:52 +0200128 - name: /var/lib/mysql/.galera_bootstrap
Ales Komarek67ef8062015-04-30 16:09:30 +0200129 - require:
Ales Komarek2ff54862015-04-30 16:31:48 +0200130 - cmd: galera_bootstrap_start_service_final
Ales Komarek67ef8062015-04-30 16:09:30 +0200131 - watch_in:
132 - file: galera_config
133
134{%- endif %}
135
136galera_config:
137 file.managed:
138 - name: {{ slave.config }}
139 - source: salt://galera/files/my.cnf
140 - mode: 644
141 - template: jinja
142 - require_in:
143 - service: galera_service
144
145galera_service:
146 service.running:
147 - name: {{ slave.service }}
148 - enable: true
149 - reload: true
150
Filip Pytloune40d54c2016-02-16 14:22:02 +0100151{%- endif %}