blob: ddd432abe7d711942d8fbf7296678e9b1c6540d7 [file] [log] [blame]
Ales Komarekcba48ac2015-04-30 11:40:44 +02001{%- from "galera/map.jinja" import master with context %}
2{%- if master.enabled %}
3
Filip Pytlounda679652016-02-17 10:56:10 +01004{%- if grains.os_family == 'RedHat' %}
5xtrabackup_repo:
6 pkg.installed:
7 - sources:
Filip Pytloun430a0df2016-02-17 11:02:35 +01008 - percona-release: {{ master.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 Komarekcba48ac2015-04-30 11:40:44 +020024galera_packages:
25 pkg.installed:
26 - names: {{ master.pkgs }}
Filip Pytlound20f7402016-02-17 11:01:00 +010027 - refresh: true
Ales Komarekcba48ac2015-04-30 11:40:44 +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{%- endif %}
48
Ales Komarek90da78d2015-04-30 16:01:11 +020049galera_init_script:
50 file.managed:
51 - name: /etc/init.d/mysql
52 - source: salt://galera/files/mysql
53 - mode: 755
54 - require:
55 - pkg: galera_packages
56
Filip Pytloun9ba63ff2016-02-23 11:04:05 +010057galera_bootstrap_script:
58 file.managed:
59 - name: /usr/local/sbin/galera_bootstrap.sh
60 - mode: 755
61 - source: salt://galera/files/bootstrap.sh
62 - template: jinja
63
Jakub Pavlik4e4575f2015-09-01 22:05:52 +020064{%- if salt['cmd.run']('test -e /var/lib/mysql/.galera_bootstrap; echo $?') != '0' %}
Ales Komarekcba48ac2015-04-30 11:40:44 +020065
66galera_bootstrap_temp_config:
67 file.managed:
68 - name: {{ master.config }}
Ales Komarek1fe9c702015-04-30 15:46:37 +020069 - source: salt://galera/files/my.cnf.bootstrap
Ales Komarekcba48ac2015-04-30 11:40:44 +020070 - mode: 644
71 - template: jinja
72 - require:
73 - pkg: galera_packages
Ales Komarek90da78d2015-04-30 16:01:11 +020074 - file: galera_init_script
Ales Komarekcba48ac2015-04-30 11:40:44 +020075
76galera_bootstrap_start_service:
Filip Pytloun9ba63ff2016-02-23 11:04:05 +010077 cmd.run:
78 - name: /usr/local/sbin/galera_bootstrap.sh
79 - require:
Ales Komarekcba48ac2015-04-30 11:40:44 +020080 - file: galera_bootstrap_temp_config
Filip Pytloun52d29b52015-07-21 18:10:32 +020081 - file: galera_run_dir
Filip Pytloun9ba63ff2016-02-23 11:04:05 +010082 - file: galera_bootstrap_script
Ales Komarekcba48ac2015-04-30 11:40:44 +020083
84galera_bootstrap_set_root_password:
85 cmd.run:
86 - name: mysqladmin password "{{ master.admin.password }}"
87 - require:
Jakub Pavlik4e4575f2015-09-01 22:05:52 +020088 - cmd: galera_bootstrap_start_service
Ales Komarekcba48ac2015-04-30 11:40:44 +020089
90mysql_bootstrap_update_maint_password:
91 cmd.run:
92 - name: mysql -u root -p{{ master.admin.password }} -e "GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '{{ master.maintenance_password }}';"
93 - require:
94 - cmd: galera_bootstrap_set_root_password
95
Ales Komarek41517c42015-04-30 15:58:19 +020096galera_bootstrap_stop_service:
Ales Komarekcba48ac2015-04-30 11:40:44 +020097 service.dead:
Ales Komarek41517c42015-04-30 15:58:19 +020098 - name: {{ master.service }}
Ales Komarekcba48ac2015-04-30 11:40:44 +020099 - require:
100 - cmd: mysql_bootstrap_update_maint_password
101
102galera_bootstrap_init_config:
103 file.managed:
104 - name: {{ master.config }}
Ales Komarek41517c42015-04-30 15:58:19 +0200105 - source: salt://galera/files/my.cnf.init
Ales Komarekcba48ac2015-04-30 11:40:44 +0200106 - mode: 644
107 - template: jinja
108 - require:
109 - service: galera_bootstrap_stop_service
110
Ales Komarek41517c42015-04-30 15:58:19 +0200111galera_bootstrap_start_service_final:
Filip Pytloun9ba63ff2016-02-23 11:04:05 +0100112 cmd.run:
113 - name: /usr/local/sbin/galera_bootstrap.sh
114 - require:
Ales Komarek41517c42015-04-30 15:58:19 +0200115 - file: galera_bootstrap_init_config
Filip Pytloun9ba63ff2016-02-23 11:04:05 +0100116 - file: galera_bootstrap_script
Ales Komarek41517c42015-04-30 15:58:19 +0200117
Ales Komarekb2824102015-04-30 15:43:17 +0200118galera_bootstrap_finish_flag:
Ales Komarekcba48ac2015-04-30 11:40:44 +0200119 file.touch:
Jakub Pavlik4e4575f2015-09-01 22:05:52 +0200120 - name: /var/lib/mysql/.galera_bootstrap
Ales Komarekcba48ac2015-04-30 11:40:44 +0200121 - require:
Jakub Pavlik4e4575f2015-09-01 22:05:52 +0200122 - cmd: galera_bootstrap_start_service_final
Ales Komarekcba48ac2015-04-30 11:40:44 +0200123 - watch_in:
Ales Komarek41517c42015-04-30 15:58:19 +0200124 - file: galera_config
Ales Komarekcba48ac2015-04-30 11:40:44 +0200125
126{%- endif %}
127
Ales Komarek41517c42015-04-30 15:58:19 +0200128galera_config:
129 file.managed:
130 - name: {{ master.config }}
131 - source: salt://galera/files/my.cnf
132 - mode: 644
133 - template: jinja
134 - require_in:
135 - service: galera_service
136
Ales Komarekcba48ac2015-04-30 11:40:44 +0200137galera_service:
138 service.running:
139 - name: {{ master.service }}
140 - enable: true
141 - reload: true
142
Filip Pytloune40d54c2016-02-16 14:22:02 +0100143{%- endif %}