Initial commit
diff --git a/galera/master.sls b/galera/master.sls
new file mode 100644
index 0000000..f9525bd
--- /dev/null
+++ b/galera/master.sls
@@ -0,0 +1,88 @@
+{%- from "galera/map.jinja" import master with context %}
+{%- if master.enabled %}
+
+{%- if grains.os_family == "Debian2" %}
+
+galera_debconf:
+ debconf.set:
+ - name: mariadb-galera-server
+ - data:
+ 'mysql-server/root_password': {'type':'string','value':'{{ server.admin.password }}'}
+ 'mysql-server/root_password_again': {'type':'string','value':'{{ server.admin.password }}'}
+ - require_in:
+ - pkg: galera_packages
+
+{%- endif %}
+
+galera_packages:
+ pkg.installed:
+ - names: {{ master.pkgs }}
+
+galera_log_dir:
+ file.directory:
+ - name: /var/log/mysql
+ - makedirs: true
+ - mode: 755
+ - require:
+ - pkg: galera_packages
+
+{%- if not salt['cmd.run']('test -e /root/.galera_bootstrap') %}
+
+galera_bootstrap_temp_config:
+ file.managed:
+ - name: {{ master.config }}
+ - source: salt://mysql/files/my.cnf.bootstrap
+ - mode: 644
+ - template: jinja
+ - require:
+ - pkg: galera_packages
+
+galera_bootstrap_start_service:
+ service.running:
+ - name: mysql
+ - require:
+ - file: galera_bootstrap_temp_config
+
+galera_bootstrap_set_root_password:
+ cmd.run:
+ - name: mysqladmin password "{{ master.admin.password }}"
+ - require:
+ - service: 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_packages_bootstrap_stop_service:
+ service.dead:
+ - name: mysql
+ - require:
+ - cmd: mysql_bootstrap_update_maint_password
+
+galera_bootstrap_init_config:
+ file.managed:
+ - name: {{ master.config }}
+ - source: salt://mysql/conf/my.cnf
+ - mode: 644
+ - template: jinja
+ - require:
+ - service: galera_bootstrap_stop_service
+
+galera_bootstrap_temp_config:
+ file.touch:
+ - require:
+ - file: galera_bootstrap_init_config
+ - watch_in:
+ - service: galera_service
+
+{%- endif %}
+
+galera_service:
+ service.running:
+ - name: {{ master.service }}
+ - enable: true
+ - reload: true
+
+{%- endif %}
\ No newline at end of file