blob: eb355c3affac712782cb72b91efd86607fbb952e [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:
15 - name: 'sed -i \'s,enabled\ =\ 1,enabled\ =\ 1\nexclude\ =\ Percona-XtraDB-\*\ Percona-Server-\*,g\' /etc/yum.repos.d/percona-release.repo'
16 - unless: 'grep "exclude = Percona-XtraDB-\*" /etc/yum.repos.d/percona-release.repo'
17 - watch:
18 - pkg: xtrabackup_repo
19 - require_in:
20 - pkg: galera_packages
Filip Pytlounda679652016-02-17 10:56:10 +010021{%- endif %}
22
Ales Komarekcba48ac2015-04-30 11:40:44 +020023galera_packages:
24 pkg.installed:
25 - names: {{ master.pkgs }}
Filip Pytlound20f7402016-02-17 11:01:00 +010026 - refresh: true
Ales Komarekcba48ac2015-04-30 11:40:44 +020027
28galera_log_dir:
29 file.directory:
30 - name: /var/log/mysql
31 - makedirs: true
32 - mode: 755
33 - require:
34 - pkg: galera_packages
35
Ales Komarek90da78d2015-04-30 16:01:11 +020036galera_init_script:
37 file.managed:
38 - name: /etc/init.d/mysql
39 - source: salt://galera/files/mysql
40 - mode: 755
41 - require:
42 - pkg: galera_packages
43
Ales Komarekcf92b4e2015-04-30 16:52:21 +020044{%- if salt['cmd.run']('test -e /root/.galera_bootstrap; echo $?') != '0' %}
Ales Komarekcba48ac2015-04-30 11:40:44 +020045
46galera_bootstrap_temp_config:
47 file.managed:
48 - name: {{ master.config }}
Ales Komarek1fe9c702015-04-30 15:46:37 +020049 - source: salt://galera/files/my.cnf.bootstrap
Ales Komarekcba48ac2015-04-30 11:40:44 +020050 - mode: 644
51 - template: jinja
52 - require:
53 - pkg: galera_packages
Ales Komarek90da78d2015-04-30 16:01:11 +020054 - file: galera_init_script
Ales Komarekcba48ac2015-04-30 11:40:44 +020055
56galera_bootstrap_start_service:
57 service.running:
Filip Pytloune40d54c2016-02-16 14:22:02 +010058 - name: {{ master.service }}
Ales Komarekcba48ac2015-04-30 11:40:44 +020059 - require:
60 - file: galera_bootstrap_temp_config
61
62galera_bootstrap_set_root_password:
63 cmd.run:
64 - name: mysqladmin password "{{ master.admin.password }}"
65 - require:
66 - service: galera_bootstrap_start_service
67
68mysql_bootstrap_update_maint_password:
69 cmd.run:
70 - name: mysql -u root -p{{ master.admin.password }} -e "GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '{{ master.maintenance_password }}';"
71 - require:
72 - cmd: galera_bootstrap_set_root_password
73
Ales Komarek41517c42015-04-30 15:58:19 +020074galera_bootstrap_stop_service:
Ales Komarekcba48ac2015-04-30 11:40:44 +020075 service.dead:
Ales Komarek41517c42015-04-30 15:58:19 +020076 - name: {{ master.service }}
Ales Komarekcba48ac2015-04-30 11:40:44 +020077 - require:
78 - cmd: mysql_bootstrap_update_maint_password
79
80galera_bootstrap_init_config:
81 file.managed:
82 - name: {{ master.config }}
Ales Komarek41517c42015-04-30 15:58:19 +020083 - source: salt://galera/files/my.cnf.init
Ales Komarekcba48ac2015-04-30 11:40:44 +020084 - mode: 644
85 - template: jinja
86 - require:
87 - service: galera_bootstrap_stop_service
88
Ales Komarek41517c42015-04-30 15:58:19 +020089galera_bootstrap_start_service_final:
90 service.running:
91 - name: {{ master.service }}
92 - require:
93 - file: galera_bootstrap_init_config
94
Ales Komarekb2824102015-04-30 15:43:17 +020095galera_bootstrap_finish_flag:
Ales Komarekcba48ac2015-04-30 11:40:44 +020096 file.touch:
Ales Komarek22a43f52015-04-30 16:03:27 +020097 - name: /root/.galera_bootstrap
Ales Komarekcba48ac2015-04-30 11:40:44 +020098 - require:
Ales Komarek41517c42015-04-30 15:58:19 +020099 - service: galera_bootstrap_start_service_final
Ales Komarekcba48ac2015-04-30 11:40:44 +0200100 - watch_in:
Ales Komarek41517c42015-04-30 15:58:19 +0200101 - file: galera_config
Ales Komarekcba48ac2015-04-30 11:40:44 +0200102
103{%- endif %}
104
Ales Komarek41517c42015-04-30 15:58:19 +0200105galera_config:
106 file.managed:
107 - name: {{ master.config }}
108 - source: salt://galera/files/my.cnf
109 - mode: 644
110 - template: jinja
111 - require_in:
112 - service: galera_service
113
Ales Komarekcba48ac2015-04-30 11:40:44 +0200114galera_service:
115 service.running:
116 - name: {{ master.service }}
117 - enable: true
118 - reload: true
119
Filip Pytloune40d54c2016-02-16 14:22:02 +0100120{%- endif %}