1. Data IP LAB
IP Maxscale : 10.10.10.15
IP Master : 10.10.10.31
IP Slave : 10.10.10.32
2. enable access root without password
yum install -y sshpass
ssh-keygen -t rsa
sshpass -p root ssh-copy-id -p22 -o 'StrictHostKeyChecking=no' root@10.10.10.15
sshpass -p root ssh-copy-id -p22 -o 'StrictHostKeyChecking=no' root@10.10.10.31
sshpass -p root ssh-copy-id -p22 -o 'StrictHostKeyChecking=no' root@10.10.10.32
3. test
ssh root@10.10.10.15 "hostname"
ssh root@10.10.10.31 "hostname"
ssh root@10.10.10.31 "hostname"
4. test to check
ssh root@10.10.10.15 "maxctrl list servers"
5. for sample using script
[root@ha01 script]# maxctrl list servers | awk '$2 == "gtid02-v32" {print $4}'
10.10.10.32
[root@ha01 script]# maxctrl list servers | awk '$2 == "gtid02-v32" {print $2}'
gtid02-v32
[root@ha01 script]#
[root@ha01 script]# maxctrl list servers | awk '$4 == "10.10.10.32" {print $2}'
gtid02-v32
[root@ha01 script]# maxctrl list servers | awk '$4 == "10.10.10.32" {print $4}'
10.10.10.32
[root@ha01 script]#
6. sample maintenance
[root@ha01 script]# cat script_maintenance_maria.sh
#!/bin/bash
ipmaxscale=$1
ipserver=$2
echo "------------------------------------------------------------"
echo "sh script_maintenance_maria.sh <ipmaxscale> <ipserver>"
echo "------------------------------------------------------------"
datex=$(date "+%Y-%m-%d %H:%M:%S")
# Menjalankan perintah maxctrl list servers dan mencari address $ipserver
server_status=$(ssh root@$ipmaxscale "maxctrl list servers" | grep $ipserver)
serverx=$(ssh root@$ipmaxscale "maxctrl list servers" | awk -v ip="$ipserver" '$4 == ip {print $2}')
# Mengecek apakah server $ipserver ditemukan
if [[ ! -z "$server_status" ]]; then
echo "Server $ipserver ditemukan, menjalankan perintah maintenance..."
ssh root@$ipmaxscale "maxctrl list servers | grep -i $ipserver"
ssh root@$ipmaxscale "maxctrl set server $serverx maintenance"
ssh root@$ipmaxscale "maxctrl list servers | grep -i $ipserver"
echo "Perintah berhasil dijalankan."
mysql -h $ipserver -uadmin -padmin -e "select @@hostname,@@version,now() - interval variable_value second as 'MySQL started on',TIME_FORMAT(SEC_TO_TIME(VARIABLE_VALUE ),'%Hh %im') as Uptime from information_schema.global_status where variable_name='Uptime';";
echo "restart service mariadb $ipserver"
ssh root@$ipserver "systemctl restart mariadb"
mysql -h $ipserver -uadmin -padmin -e "select @@hostname,@@version,now() - interval variable_value second as 'MySQL started on',TIME_FORMAT(SEC_TO_TIME(VARIABLE_VALUE ),'%Hh %im') as Uptime from information_schema.global_status where variable_name='Uptime';";
datey=$(date "+%Y-%m-%d %H:%M:%S")
echo "$datey --->>> maintenance di $serverx ($ipserver) dengan ipmaxscale $ipmaxscale sudah dilakukan..."
else
echo "Server $ipserver or Maxscale $ipmaxscale tidak ditemukan atau tidak aktif."
fi
[root@ha01 script]#
7. scrip clear maintenance
[root@ha01 script]# cat script_clear_maintenance_maria.sh
#!/bin/bash
ipmaxscale=$1
ipserver=$2
echo "------------------------------------------------------------"
echo "sh script_clear_maintenance_maria.sh <ipmaxscale> <ipserver>"
echo "------------------------------------------------------------"
datex=$(date "+%Y-%m-%d %H:%M:%S")
# Menjalankan perintah maxctrl list servers dan mencari address $ipserver
server_status=$(ssh root@$ipmaxscale "maxctrl list servers" | grep $ipserver)
serverx=$(ssh root@$ipmaxscale "maxctrl list servers" | awk -v ip="$ipserver" '$4 == ip {print $2}')
# Mengecek apakah server $ipserver ditemukan
if [[ ! -z "$server_status" ]]; then
echo "$datex --->>> Server $ipserver ditemukan, clear maintenance di $serverx ($ipserver) dengan ipmaxscale $ipmaxscale"
ssh root@$ipmaxscale "maxctrl list servers | grep -i $ipserver"
ssh root@$ipmaxscale "maxctrl clear server $serverx maintenance"
ssh root@$ipmaxscale "maxctrl list servers | grep -i $ipserver"
echo "Perintah berhasil dijalankan."
mysql -h $ipserver -uadmin -padmin -e "select @@hostname,@@version,now() - interval variable_value second as 'MySQL started on',TIME_FORMAT(SEC_TO_TIME(VARIABLE_VALUE ),'%Hh %im') as Uptime from information_schema.global_status where variable_name='Uptime';";
datey=$(date "+%Y-%m-%d %H:%M:%S")
echo "$datey --->>> clear maintenance di $serverx ($ipserver) dengan ipmaxscale $ipmaxscale sudah dilakukan..."
else
echo "Server $ipserver or Maxscale $ipmaxscale tidak ditemukan atau tidak aktif."
fi
[root@ha01 script]#
8. script restart server via remote
[root@ha01 script]# cat script_restart_server.sh
#!/bin/bash
ipserver=$1
echo "------------------------------------------------------------"
echo "sh script_restart_server.sh <ipserver>"
echo "------------------------------------------------------------"
datex=$(date "+%Y-%m-%d %H:%M:%S")
# Menjalankan perintah maxctrl list servers dan mencari address $ipserver
echo "$datex --->>> Restart Server $ipserver Begin"
ssh root@$ipserver "init 6"
datey=$(date "+%Y-%m-%d %H:%M:%S")
echo "$datey --->>> Perintah Restart Server $ipserver dijalankan"
[root@ha01 script]#
IP Maxscale : 10.10.10.15
IP Master : 10.10.10.31
IP Slave : 10.10.10.32
2. enable access root without password
yum install -y sshpass
ssh-keygen -t rsa
sshpass -p root ssh-copy-id -p22 -o 'StrictHostKeyChecking=no' root@10.10.10.15
sshpass -p root ssh-copy-id -p22 -o 'StrictHostKeyChecking=no' root@10.10.10.31
sshpass -p root ssh-copy-id -p22 -o 'StrictHostKeyChecking=no' root@10.10.10.32
3. test
ssh root@10.10.10.15 "hostname"
ssh root@10.10.10.31 "hostname"
ssh root@10.10.10.31 "hostname"
4. test to check
ssh root@10.10.10.15 "maxctrl list servers"
5. for sample using script
[root@ha01 script]# maxctrl list servers | awk '$2 == "gtid02-v32" {print $4}'
10.10.10.32
[root@ha01 script]# maxctrl list servers | awk '$2 == "gtid02-v32" {print $2}'
gtid02-v32
[root@ha01 script]#
[root@ha01 script]# maxctrl list servers | awk '$4 == "10.10.10.32" {print $2}'
gtid02-v32
[root@ha01 script]# maxctrl list servers | awk '$4 == "10.10.10.32" {print $4}'
10.10.10.32
[root@ha01 script]#
6. sample maintenance
[root@ha01 script]# cat script_maintenance_maria.sh
#!/bin/bash
ipmaxscale=$1
ipserver=$2
echo "------------------------------------------------------------"
echo "sh script_maintenance_maria.sh <ipmaxscale> <ipserver>"
echo "------------------------------------------------------------"
datex=$(date "+%Y-%m-%d %H:%M:%S")
# Menjalankan perintah maxctrl list servers dan mencari address $ipserver
server_status=$(ssh root@$ipmaxscale "maxctrl list servers" | grep $ipserver)
serverx=$(ssh root@$ipmaxscale "maxctrl list servers" | awk -v ip="$ipserver" '$4 == ip {print $2}')
# Mengecek apakah server $ipserver ditemukan
if [[ ! -z "$server_status" ]]; then
echo "Server $ipserver ditemukan, menjalankan perintah maintenance..."
ssh root@$ipmaxscale "maxctrl list servers | grep -i $ipserver"
ssh root@$ipmaxscale "maxctrl set server $serverx maintenance"
ssh root@$ipmaxscale "maxctrl list servers | grep -i $ipserver"
echo "Perintah berhasil dijalankan."
mysql -h $ipserver -uadmin -padmin -e "select @@hostname,@@version,now() - interval variable_value second as 'MySQL started on',TIME_FORMAT(SEC_TO_TIME(VARIABLE_VALUE ),'%Hh %im') as Uptime from information_schema.global_status where variable_name='Uptime';";
echo "restart service mariadb $ipserver"
ssh root@$ipserver "systemctl restart mariadb"
mysql -h $ipserver -uadmin -padmin -e "select @@hostname,@@version,now() - interval variable_value second as 'MySQL started on',TIME_FORMAT(SEC_TO_TIME(VARIABLE_VALUE ),'%Hh %im') as Uptime from information_schema.global_status where variable_name='Uptime';";
datey=$(date "+%Y-%m-%d %H:%M:%S")
echo "$datey --->>> maintenance di $serverx ($ipserver) dengan ipmaxscale $ipmaxscale sudah dilakukan..."
else
echo "Server $ipserver or Maxscale $ipmaxscale tidak ditemukan atau tidak aktif."
fi
[root@ha01 script]#
7. scrip clear maintenance
[root@ha01 script]# cat script_clear_maintenance_maria.sh
#!/bin/bash
ipmaxscale=$1
ipserver=$2
echo "------------------------------------------------------------"
echo "sh script_clear_maintenance_maria.sh <ipmaxscale> <ipserver>"
echo "------------------------------------------------------------"
datex=$(date "+%Y-%m-%d %H:%M:%S")
# Menjalankan perintah maxctrl list servers dan mencari address $ipserver
server_status=$(ssh root@$ipmaxscale "maxctrl list servers" | grep $ipserver)
serverx=$(ssh root@$ipmaxscale "maxctrl list servers" | awk -v ip="$ipserver" '$4 == ip {print $2}')
# Mengecek apakah server $ipserver ditemukan
if [[ ! -z "$server_status" ]]; then
echo "$datex --->>> Server $ipserver ditemukan, clear maintenance di $serverx ($ipserver) dengan ipmaxscale $ipmaxscale"
ssh root@$ipmaxscale "maxctrl list servers | grep -i $ipserver"
ssh root@$ipmaxscale "maxctrl clear server $serverx maintenance"
ssh root@$ipmaxscale "maxctrl list servers | grep -i $ipserver"
echo "Perintah berhasil dijalankan."
mysql -h $ipserver -uadmin -padmin -e "select @@hostname,@@version,now() - interval variable_value second as 'MySQL started on',TIME_FORMAT(SEC_TO_TIME(VARIABLE_VALUE ),'%Hh %im') as Uptime from information_schema.global_status where variable_name='Uptime';";
datey=$(date "+%Y-%m-%d %H:%M:%S")
echo "$datey --->>> clear maintenance di $serverx ($ipserver) dengan ipmaxscale $ipmaxscale sudah dilakukan..."
else
echo "Server $ipserver or Maxscale $ipmaxscale tidak ditemukan atau tidak aktif."
fi
[root@ha01 script]#
8. script restart server via remote
[root@ha01 script]# cat script_restart_server.sh
#!/bin/bash
ipserver=$1
echo "------------------------------------------------------------"
echo "sh script_restart_server.sh <ipserver>"
echo "------------------------------------------------------------"
datex=$(date "+%Y-%m-%d %H:%M:%S")
# Menjalankan perintah maxctrl list servers dan mencari address $ipserver
echo "$datex --->>> Restart Server $ipserver Begin"
ssh root@$ipserver "init 6"
datey=$(date "+%Y-%m-%d %H:%M:%S")
echo "$datey --->>> Perintah Restart Server $ipserver dijalankan"
[root@ha01 script]#
No comments:
Post a Comment