diff --git a/galera/files/mysql b/galera/files/mysql
new file mode 100644
index 0000000..6d31087
--- /dev/null
+++ b/galera/files/mysql
@@ -0,0 +1,206 @@
+#!/bin/bash
+#
+### BEGIN INIT INFO
+# Provides:          mysql
+# Required-Start:    $remote_fs $syslog
+# Required-Stop:     $remote_fs $syslog
+# Should-Start:      $network $named $time
+# Should-Stop:       $network $named $time
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: Start and stop the mysql database server daemon
+# Description:       Controls the main MySQL database server daemon "mysqld"
+#                    and its wrapper script "mysqld_safe".
+### END INIT INFO
+#
+set -e
+set -u
+${DEBIAN_SCRIPT_DEBUG:+ set -v -x}
+
+test -x /usr/sbin/mysqld || exit 0
+
+. /lib/lsb/init-functions
+
+SELF=$(cd $(dirname $0); pwd -P)/$(basename $0)
+CONF=/etc/mysql/my.cnf
+# MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
+
+# priority can be overriden and "-s" adds output to stderr
+ERR_LOGGER="logger -p daemon.err -t /etc/init.d/mysql -i"
+
+# Safeguard (relative paths, core dumps..)
+cd /
+umask 077
+
+# mysqladmin likes to read /root/.my.cnf. This is usually not what I want
+# as many admins e.g. only store a password without a username there and
+# so break my scripts.
+export HOME=/etc/mysql/
+
+## Fetch a particular option from mysql's invocation.
+#
+# Usage: void mysqld_get_param option
+mysqld_get_param() {
+	/usr/sbin/mysqld --print-defaults \
+		| tr " " "\n" \
+		| grep -- "--$1" \
+		| tail -n 1 \
+		| cut -d= -f2
+}
+
+# Determine parameters once per script invocation
+datadir=`mysqld_get_param datadir`
+[ -z "$datadir" ] && datadir="/var/lib/mysql"
+pidfile=`mysqld_get_param pid_file`
+#[ -z "$pidfile" ] && pidfile="$datadir/$(hostname).pid"
+
+#JPavlik tcp cloud fix for init script
+pidfile="/var/lib/mysql/mysqld.pid"
+## Do some sanity checks before even trying to start mysqld.
+sanity_checks() {
+  # check for config file
+  if [ ! -r /etc/mysql/my.cnf ]; then
+    log_warning_msg "$0: WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz"
+    echo                "WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz" | $ERR_LOGGER
+  fi
+
+  # check for diskspace shortage
+  if LC_ALL=C BLOCKSIZE= df --portability $datadir/. | tail -n 1 | awk '{ exit ($4>4096) }'; then
+    log_failure_msg "$0: ERROR: The partition with $datadir is too full!"
+    echo                "ERROR: The partition with $datadir is too full!" | $ERR_LOGGER
+    exit 1
+  fi
+}
+
+## Checks if there is a server running and if so if it is accessible.
+#
+# check_alive insists on a pingable server
+# check_dead also fails if there is a lost mysqld in the process list
+#
+# Usage: boolean mysqld_status [check_alive|check_dead] [warn|nowarn]
+mysqld_status() {
+#    ping_output=`$MYADMIN ping 2>&1`; ping_alive=$(( ! $? ))
+
+    ps_alive=0
+    if [ -f "$pidfile" ] && ps `cat $pidfile` >/dev/null 2>&1; then ps_alive=1; fi
+    if [ "$1" = "check_alive"  -a  $ps_alive = 1 ] ||
+       [ "$1" = "check_dead"   -a  $ps_alive = 0 ]; then
+	return 0 # EXIT_SUCCESS
+    else
+	if [ "$2" = "warn" ]; then
+#	    echo -e "$ps_alive processes alive and '$MYADMIN ping' resulted in\n$ping_output\n" | $ERR_LOGGER -p daemon.debug
+	    echo -e "$ps_alive processes alive\n" | $ERR_LOGGER -p daemon.debug
+	fi
+	return 1 # EXIT_FAILURE
+    fi
+}
+
+
+#
+# main()
+#
+
+cmd=${1:-''}
+[ $# -ge 1 ] && shift
+other_args="$*"
+
+case "$cmd" in
+  'start')
+	sanity_checks;
+	# Start daemon
+	log_daemon_msg "Starting MySQL database server" "mysqld"
+	if mysqld_status check_alive nowarn; then
+	   log_progress_msg "already running"
+	   log_end_msg 0
+	else
+	    # Could be removed during boot
+	    test -e /var/run/mysqld || install -m 755 -o mysql -g root -d /var/run/mysqld
+
+	    # Check for additional wsrep options
+	    WSREP_OPTS=${WSREP_OPTS:-""}
+	    WSREP_PROVIDER=${WSREP_PROVIDER:-""}
+	    WSREP_CLUSTER_ADDRESS=${WSREP_CLUSTER_ADDRESS:-""}
+	    test -n "$WSREP_PROVIDER" && \
+	    WSREP_OPTS="$WSREP_OPTS --wsrep_provider=$WSREP_PROVIDER"
+	    test -n "$WSREP_CLUSTER_ADDRESS" && \
+	    WSREP_OPTS="$WSREP_OPTS --wsrep_cluster_address=$WSREP_CLUSTER_ADDRESS"
+
+	    # Start MySQL!.
+	    /usr/bin/mysqld_safe $WSREP_OPTS $other_args > /dev/null 2>&1 &
+
+	    # 6s was reported in #352070 to be too few when using ndbcluster
+	    for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14; do
+                sleep 1
+	        if mysqld_status check_alive nowarn ; then break; fi
+		log_progress_msg "."
+	    done
+	    if mysqld_status check_alive warn; then
+                log_end_msg 0
+	        # Now start mysqlcheck or whatever the admin wants.
+#	        output=$(/etc/mysql/debian-start)
+#		[ -n "$output" ] && log_action_msg "$output"
+	    else
+	        log_end_msg 1
+		log_failure_msg "Please take a look at the syslog"
+	    fi
+	fi
+	;;
+
+  'stop')
+	# * As a passwordless mysqladmin (e.g. via ~/.my.cnf) must be possible
+	# at least for cron, we can rely on it here, too. (although we have 
+	# to specify it explicit as e.g. sudo environments points to the normal
+	# users home and not /root)
+	log_daemon_msg "Stopping MySQL database server" "mysqld"
+	if ! mysqld_status check_dead nowarn; then
+	  log_daemon_msg "Killing MySQL database server by signal" "mysqld"
+          pid=$(cat $pidfile || echo 0)
+          if [ $pid -eq 0 ]; then
+            log_failure_msg "Failed to get MySQL server pid"
+            exit 1
+          fi
+	  kill -15 $pid
+          server_down=
+	  for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
+            log_progress_msg "."
+            sleep 1
+            if mysqld_status check_dead nowarn; then server_down=1; break; fi
+          done
+        fi
+
+        if ! mysqld_status check_dead warn; then
+	  log_end_msg 1
+	  log_failure_msg "Please stop MySQL manually and read /usr/share/doc/mysql-server-5.1/README.Debian.gz!"
+	  exit -1
+	else
+	  log_end_msg 0
+        fi
+	;;
+
+  'restart')
+	set +e; $SELF stop; set -e
+	$SELF start $other_args
+	;;
+
+  'reload'|'force-reload')
+	log_daemon_msg "Reloading MySQL database server" "mysqld"
+	$MYADMIN reload
+	log_end_msg 0
+	;;
+
+  'status')
+	if mysqld_status check_alive nowarn; then
+#	  log_action_msg "$($MYADMIN version)"
+	  log_action_msg "MySQL is running (PID: $(cat $pidfile))"
+	else
+	  log_action_msg "MySQL is stopped."
+	  exit 3
+	fi
+	;;
+
+  *)
+	echo "Usage: $SELF start|stop|restart|reload|force-reload|status"
+	exit 1
+	;;
+esac
+
diff --git a/galera/master.sls b/galera/master.sls
index 8460f31..2e739a5 100644
--- a/galera/master.sls
+++ b/galera/master.sls
@@ -26,6 +26,14 @@
   - require:
     - pkg: galera_packages
 
+galera_init_script:
+  file.managed:
+  - name: /etc/init.d/mysql
+  - source: salt://galera/files/mysql
+  - mode: 755
+  - require: 
+    - pkg: galera_packages
+
 {%- if not salt['cmd.run']('test -e /root/.galera_bootstrap') %}
 
 galera_bootstrap_temp_config:
@@ -36,6 +44,7 @@
   - template: jinja
   - require: 
     - pkg: galera_packages
+    - file: galera_init_script
 
 galera_bootstrap_start_service:
   service.running:
