Skip to content

Instantly share code, notes, and snippets.

@momijiame
Last active December 18, 2018 09:09
Show Gist options
  • Save momijiame/b9f4575f840f4d33c671 to your computer and use it in GitHub Desktop.
Save momijiame/b9f4575f840f4d33c671 to your computer and use it in GitHub Desktop.
MariaDB Galera Cluster w/ CentOS7
#!/usr/bin/env sh
set -x
set -e
SERVICE_OPTION=${1:-""}
cat << EOF | sudo tee /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
yum clean all
yum -y install MariaDB-Galera-server MariaDB-client galera
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --permanent --add-port=4444/tcp
firewall-cmd --permanent --add-port=4567/tcp
firewall-cmd --permanent --add-port=4568/tcp
firewall-cmd --reload
cat << EOF | sudo tee /etc/my.cnf.d/server.cnf > /dev/null
[mariadb]
wsrep_provider='/usr/lib64/galera/libgalera_smm.so'
wsrep_cluster_address=gcomm://192.168.33.11,192.168.33.12,192.168.33.13
wsrep_node_address=$(ip -f inet -o addr show | grep 192.168.33. | cut -d "/" -f 1 | awk '{print $NF}')
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
innodb_doublewrite=1
wsrep_on=ON
log-error = error.log
EOF
service mysql start ${SERVICE_OPTION}
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.define :node1, primary: true do |node1|
node1.vm.box = "centos7"
node1.vm.box_url = "https://github.com/holms/vagrant-centos7-box/releases/download/7.1.1503.001/CentOS-7.1.1503-x86_64-netboot.box"
node1.vm.network "private_network", ip: "192.168.33.11"
node1.vm.provider "virtualbox" do |vb|
vb.cpus = "2"
vb.memory = "1024"
end
node1.vm.provision :shell do |shell|
shell.path = "provision.sh"
shell.args = ["--wsrep-new-cluster"]
end
end
config.vm.define :node2 do |node2|
node2.vm.box = "centos7"
node2.vm.box_url = "https://github.com/holms/vagrant-centos7-box/releases/download/7.1.1503.001/CentOS-7.1.1503-x86_64-netboot.box"
node2.vm.network "private_network", ip: "192.168.33.12"
node2.vm.provider "virtualbox" do |vb|
vb.cpus = "2"
vb.memory = "1024"
end
node2.vm.provision :shell do |shell|
shell.path = "provision.sh"
shell.args = []
end
end
config.vm.define :node3 do |node3|
node3.vm.box = "centos7"
node3.vm.box_url = "https://github.com/holms/vagrant-centos7-box/releases/download/7.1.1503.001/CentOS-7.1.1503-x86_64-netboot.box"
node3.vm.network "private_network", ip: "192.168.33.13"
node3.vm.provider "virtualbox" do |vb|
vb.cpus = "2"
vb.memory = "1024"
end
node3.vm.provision :shell do |shell|
shell.path = "provision.sh"
shell.args = []
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment