Bash Script to Install a mariadb-galera-server Cluster on Multiple Servers
Category : How-to
The following script will install the MariaDB Galera Server binaries on multiple servers with a basic cluster configuration.
Let me start by saying it’s a quick and dirty script – it may not work in all scenarios and was written on a set of Debian servers. Use it at your own risk! It may work on a MySQL Server cluster but you’ll have to remove or change the repository locations to the MySQL Server ones.
Before running the script you’ll need to have SSH key Authentication set up and working between all the nodes. See my post on Create ssh key authentication between nodes for setting up server key authentication.
You’ll also need to change a few variables in the script to match your environment.
The first variable IP is an array of all the IP addresses you’d like to use to install Maria DB Server. Currently there are 3 IPs specified – replace them with your own IP addresses and add any more if you have more than 3 servers.
The other two variables CLUSTER_NAME which is the name MariaDB will use for your cluster; and MAINT_USER_PASSWORD which is the password that will be set for the maintenance user.
#!/bin/bash
IP[0]=10.27.3.51
IP[1]=10.27.3.52
IP[2]=10.27.3.53
## IP[99]=10.10.10.10
CLUSTER_NAME=cluster_test
MAINT_USER_PASSWORD=OkVLGvp5qhM0eCNk
## DO NOT EDIT ##
CLUSTER_STRING="gcomm://"$(IFS=, ; echo "${IP[*]}")
for I in "${IP[@]}"
do :
echo "Setting up repo for $I"
ssh root@$I "apt-get update"
ssh root@$I "apt-get upgrade -y"
ssh root@$I "apt-get install -y software-properties-common"
ssh root@$I "apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db"
ssh root@$I "add-apt-repository 'deb http://lon1.mirrors.digitalocean.com/mariadb/repo/10.0/ubuntu trusty main'"
echo "Installing DB for $I"
ssh root@$I "apt-get update"
ssh root@$I "apt-get install -y mariadb-galera-server rsync"
ssh root@$I "echo '
[client]
host = localhost
user = debian-sys-maint
password = '$MAINT_USER_PASSWORD'
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = debian-sys-maint
password = '$MAINT_USER_PASSWORD'
socket = /var/run/mysqld/mysqld.sock
basedir = /usr
' > /etc/mysql/debian.cnf"
ssh root@$I "echo '
[mysqld]
query_cache_size=0
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
query_cache_type=0
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_provider=/usr/lib/galera/libgalera_smm.so
#wsrep_provider_options="gcache.size=32G"
# Galera Cluster Configuration
wsrep_cluster_name=\"'$CLUSTER_NAME'\"
wsrep_cluster_address=\"'$CLUSTER_STRING'\"
# Galera Synchronization Congifuration
wsrep_sst_method=rsync
#wsrep_sst_auth=user:pass
# Galera Node Configuration
wsrep_node_address=\"'$IP'\"
wsrep_node_name=\"'$IP'\"' > /etc/mysql/conf.d/cluster.cnf"
done
ssh root@$IP "service mysql stop"
ssh root@$IP "service mysql start --wsrep-new-cluster"
The Splunk Universal Forwarder is a small, light weight daemon which forwards data to your main Splunk server from a variety of sources.


OpenVZ servers are hypervisors which allow you to create numerous guest instances within a single hardware node. Unlike other products which offer full hardware virtualisation, OpenVZ creates containers – isolated program execution environments – that share the hardware nodes kernel.
Installing OpenNode is much like installing any other modern Linux distribution. You start with a text based installer to configure some of the basic options, such as netwokring, then you are presented with a GUI to complete the install.















