add script
This commit is contained in:
28
manifest/yaml/haproxy.cfg
Normal file
28
manifest/yaml/haproxy.cfg
Normal file
@@ -0,0 +1,28 @@
|
||||
global
|
||||
log 127.0.0.1 local2
|
||||
maxconn 2000
|
||||
uid 0
|
||||
gid 0
|
||||
daemon # background process
|
||||
|
||||
defaults
|
||||
log global # global 설정 사용
|
||||
mode tcp # SSL 통신을 위해서는 TCP모드로 (http모드는 SSL 안됨)
|
||||
option tcplog
|
||||
option dontlognull # 데이터가 전송되지 않은 연결 로깅 제외
|
||||
retries 3 # 연결요청 재시도 횟수
|
||||
maxconn 2000 #option redispatch
|
||||
timeout connect 10s
|
||||
timeout client 1m
|
||||
timeout server 1m
|
||||
|
||||
frontend k8s-api
|
||||
bind 0.0.0.0:6443
|
||||
default_backend k8s-api
|
||||
|
||||
backend k8s-api
|
||||
option tcp-check
|
||||
balance roundrobin
|
||||
server MASTER1NAME MASTER1IP check # Master 다중화 서버들 정보 기재
|
||||
server MASTER2NAME MASTER2IP check
|
||||
server MASTER3NAME MASTER3IP check
|
||||
47
manifest/yaml/keepalived.conf
Normal file
47
manifest/yaml/keepalived.conf
Normal file
@@ -0,0 +1,47 @@
|
||||
global_defs {
|
||||
script_user root root
|
||||
enable_script_security off
|
||||
}
|
||||
|
||||
vrrp_script chk_haproxy {
|
||||
script "/usr/sbin/pidof haproxy"
|
||||
interval 2
|
||||
weight 2
|
||||
}
|
||||
|
||||
vrrp_instance VI_1 {
|
||||
state MASTER # MASTER는 메인 LB, 백업 LB는 BACKUP 으로 설정
|
||||
interface enp0s8 # 사용할 interface
|
||||
virtual_router_id 51
|
||||
priority 100 # MASTER의 우선순위가 적어도 1이상 높아야 함
|
||||
advert_int 1
|
||||
nopreempt
|
||||
authentication { # 인증에 사용될 password(동일하게 맞춰주기만 하면 됨)
|
||||
auth_type PASS
|
||||
auth_pass 1111
|
||||
}
|
||||
|
||||
unicast_src_ip LB1 # LB 서버 local ip
|
||||
|
||||
unicast_peer {
|
||||
LB2 # 다른 LB 서버 local ip
|
||||
}
|
||||
|
||||
virtual_ipaddress {
|
||||
VIP # 클러스터 구성에 사용될 VIP!
|
||||
}
|
||||
|
||||
notify_master "/bin/sh /etc/keepalived/notify_action.sh MASTER"
|
||||
notify_backup "/bin/sh /etc/keepalived/notify_action.sh BACKUP"
|
||||
notify_fault "/bin/sh /etc/keepalived/notify_action.sh FAULT"
|
||||
notify_stop "/bin/sh /etc/keepalived/notify_action.sh STOP"
|
||||
|
||||
track_script {
|
||||
chk_haproxy
|
||||
}
|
||||
|
||||
track_interface {
|
||||
enp0s8 # 사용할 interface
|
||||
}
|
||||
|
||||
}
|
||||
43
manifest/yaml/lb_set_script.sh
Normal file
43
manifest/yaml/lb_set_script.sh
Normal file
@@ -0,0 +1,43 @@
|
||||
#!/bin/bash
|
||||
|
||||
pkg_check=`which rpm >& /dev/null; echo $?`
|
||||
|
||||
rpm_pkg_list=("keepalived" "haproxy")
|
||||
#rpm_need_install="yum install -y"
|
||||
#dpkg_need_install=`apt-get install`
|
||||
|
||||
for pkgname in ${rpm_pkg_list[@]};
|
||||
do
|
||||
#pkg_check_cmd=`rpm -qa | grep "${list_num}" >& /dev/null; echo $?`
|
||||
#if [ ${pkg_check_cmd} -eq 0 ];
|
||||
#then
|
||||
rpm_need_install="yum install -y ${pkgname}"
|
||||
${rpm_need_install} 2>&1 > /dev/null
|
||||
#else
|
||||
# echo "${pkgname} is already installed!!"
|
||||
#fi
|
||||
done
|
||||
|
||||
SCRIPTPATH=$(dirname `which $0`)
|
||||
|
||||
THISPATH=`echo $SCRIPTPATH`
|
||||
|
||||
cp ${THISPATH}/notify_action.sh /etc/keepalived/notify_action.sh
|
||||
mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf_back
|
||||
cp -f ${THISPATH}/keepalived.conf /etc/keepalived/keepalived.conf
|
||||
|
||||
sed -i 's/LB1/'"$LB1"'/' /etc/keepalived/keepalived.conf
|
||||
sed -i 's/LB2/'"$LB2"'/' /etc/keepalived/keepalived.conf
|
||||
|
||||
sed -i 's/VIP/'"$VIP"'/' /etc/keepalived/keepalived.conf
|
||||
|
||||
mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg_back
|
||||
cp -f ${THISPATH}/haproxy.cfg /etc/haproxy/haproxy.cfg
|
||||
|
||||
sed -i 's/MASTER1NAME/'"$MASTER1NAME"'/' /etc/haproxy/haproxy.cfg
|
||||
sed -i 's/MASTER2NAME/'"$MASTER2NAME"'/' /etc/haproxy/haproxy.cfg
|
||||
sed -i 's/MASTER3NAME/'"$MASTER3NAME"'/' /etc/haproxy/haproxy.cfg
|
||||
|
||||
sed -i 's/MASTER1IP/'"$MASTER1IP"'/' /etc/haproxy/haproxy.cfg
|
||||
sed -i 's/MASTER2IP/'"$MASTER2IP"'/' /etc/haproxy/haproxy.cfg
|
||||
sed -i 's/MASTER3IP/'"$MASTER3IP"'/' /etc/haproxy/haproxy.cfg
|
||||
35
manifest/yaml/notify_action.sh
Normal file
35
manifest/yaml/notify_action.sh
Normal file
@@ -0,0 +1,35 @@
|
||||
#!/bin/bash
|
||||
#/etc/keepalived/notify_action.sh
|
||||
log_file=/var/log/keepalived.log
|
||||
log_write()
|
||||
{
|
||||
echo "[`date '+%Y-%m-%d %T'`] $1" >> $log_file
|
||||
}
|
||||
|
||||
[ ! -d /var/keepalived/ ] && mkdir -p /var/keepalived/
|
||||
|
||||
case "$1" in
|
||||
"MASTER" )
|
||||
echo -n "$1" > /var/keepalived/state
|
||||
log_write " notify_master"
|
||||
echo -n "0" > /var/keepalived/vip_check_failed_count
|
||||
;;
|
||||
|
||||
"BACKUP" )
|
||||
echo -n "$1" > /var/keepalived/state
|
||||
log_write " notify_backup"
|
||||
;;
|
||||
|
||||
"FAULT" )
|
||||
echo -n "$1" > /var/keepalived/state
|
||||
log_write " notify_fault"
|
||||
;;
|
||||
|
||||
"STOP" )
|
||||
echo -n "$1" > /var/keepalived/state
|
||||
log_write " notify_stop"
|
||||
;;
|
||||
*)
|
||||
log_write "notify_action.sh: STATE ERROR!!!"
|
||||
;;
|
||||
esac
|
||||
34
manifest/yaml/remote_lb_set_script.sh
Normal file
34
manifest/yaml/remote_lb_set_script.sh
Normal file
@@ -0,0 +1,34 @@
|
||||
#!/bin/sh
|
||||
|
||||
exp=$HOME/archive/keepalived_script/ssh_login.exp
|
||||
expcopy=$HOME/archive/keepalived_script/scp_copy.exp
|
||||
exprestart=$HOME/archive/keepalived_script/restart_pkg.exp
|
||||
account=${RUSER} #root #${1}
|
||||
password=${RUSERPWD} #1234 #${2}
|
||||
#ipaddr="192.168.56.250 192.168.56.130" #${3}
|
||||
ipaddr="${LB1} ${LB2}"
|
||||
#masteripaddr="${MASTER1} ${MASTER2} ${MASTER3}"
|
||||
|
||||
pkglist=("keepalived" "haproxy")
|
||||
|
||||
for svr in $ipaddr
|
||||
do
|
||||
case "${svr}" in
|
||||
*)
|
||||
for pkgname in ${pkglist[@]};
|
||||
do
|
||||
$exp $account $password ${svr} ${pkgname};
|
||||
|
||||
if [ "${pkgname}" == "keepalived" ]; then
|
||||
$expcopy $account $password ${svr} ${pkgname} ${pkgname}.conf ${MASTER1NAME} ${MASTER2NAME} ${MASTER3NAME} ${MASTER1IP} ${MASTER2IP} ${MASTER3IP} ${LB1} ${LB2} ${VIP}
|
||||
elif [ "${pkgname}" == "haproxy" ]; then
|
||||
$expcopy $account $password ${svr} ${pkgname} ${pkgname}.cfg ${MASTER1NAME} ${MASTER2NAME} ${MASTER3NAME} ${MASTER1IP} ${MASTER2IP} ${MASTER3IP} ${LB1} ${LB2} ${VIP}
|
||||
fi
|
||||
|
||||
$exprestart $account $password ${svr} ${pkgname};
|
||||
done
|
||||
;;
|
||||
esac
|
||||
sleep 0.5
|
||||
|
||||
done
|
||||
39
manifest/yaml/restart_pkg.exp
Normal file
39
manifest/yaml/restart_pkg.exp
Normal file
@@ -0,0 +1,39 @@
|
||||
#!/usr/bin/expect
|
||||
|
||||
set username [lindex $argv 0]
|
||||
set password [lindex $argv 1]
|
||||
set hostname [lindex $argv 2]
|
||||
set pkgname [lindex $argv 3]
|
||||
set timeout 5
|
||||
|
||||
if {[llength $argv] == 0} {
|
||||
send_user "Usage: scriptname username \'password\' hostname \n"
|
||||
exit 1
|
||||
}
|
||||
send_user "\n\n#######################\n Try to connect server \n#######################\n\n"
|
||||
|
||||
spawn ssh -o StrictHostKeyChecking=no $username@$hostname
|
||||
expect {
|
||||
"password:" { send "$password\r"; exp_continue }
|
||||
"Last login:" { send_user "\n\n#######################\n SSH is success \n Pkg checking \n#######################\n\n"; exp_continue }
|
||||
}
|
||||
#expect -re "Last login:"
|
||||
#send_user "\n\n#######################\n SSH is success \n Pkg checking \n#######################\n\n"
|
||||
|
||||
send "sudo systemctl enable ${pkgname}\r\n"
|
||||
expect {
|
||||
"password:" { send "$password\r"; exp_continue }
|
||||
"Created symlink from" { send "sudo systemctl daemon-reload\r\n"; exp_continue }
|
||||
}
|
||||
|
||||
send "sudo systemctl restart ${pkgname}\r\n"
|
||||
|
||||
send "sudo systemctl status ${pkgname}\r\n"
|
||||
expect {
|
||||
"Active: active (running)" { send_user "\n\n#######################\n Pkg Start Normal \n#######################\n\n"; exp_continue }
|
||||
}
|
||||
|
||||
send_user "\n\n#######################\n Done \n#######################\n\n"
|
||||
|
||||
send "exit \r"
|
||||
expect eof
|
||||
48
manifest/yaml/scp_copy.exp
Normal file
48
manifest/yaml/scp_copy.exp
Normal file
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/expect
|
||||
|
||||
set username [lindex $argv 0]
|
||||
set password [lindex $argv 1]
|
||||
set hostname [lindex $argv 2]
|
||||
set pkgname [lindex $argv 3]
|
||||
set configfile [lindex $argv 4]
|
||||
set master1name [lindex $argv 5]
|
||||
set master2name [lindex $argv 6]
|
||||
set master3name [lindex $argv 7]
|
||||
set master1ip [lindex $argv 8]
|
||||
set master2ip [lindex $argv 9]
|
||||
set master3ip [lindex $argv 10]
|
||||
set lb1 [lindex $argv 11]
|
||||
set lb2 [lindex $argv 12]
|
||||
set vip [lindex $argv 13]
|
||||
#set pkgname {echo $configfile | awk -F'.' '{print $1, $2}'}
|
||||
|
||||
if {[llength $argv] == 0} {
|
||||
send_user "Usage: scriptname username \'password\' hostname \n"
|
||||
exit 1
|
||||
}
|
||||
send_user "\n\n#######################\n Trying to transfer files \n#######################\n\n"
|
||||
|
||||
set timeout 5;
|
||||
#split($configfile, arr, ".");
|
||||
#if {$pkgname[0] == "keepalived"} {
|
||||
# spawn scp $configfile $username@$hostname:/home/etc/$pkgname[0]/$configfile
|
||||
#} elseif {$pkgname[0] == "haproxy"} {
|
||||
# spawn scp $configfile $username@$hostname:/home/etc/$pkgname[0]/$configfile
|
||||
#}
|
||||
|
||||
if {$pkgname == "keepalived"} {
|
||||
spawn scp notify_action.sh $username@$hostname:/etc/$pkgname/
|
||||
expect {
|
||||
"password:" { send "$password\r"; exp_continue };
|
||||
}
|
||||
}
|
||||
|
||||
spawn scp $configfile $username@$hostname:/home/etc/$pkgname/$configfile
|
||||
#spawn scp $configfile $username@$hostname:/home/
|
||||
expect {
|
||||
"password:" { send "$password\r"; exp_continue };
|
||||
"*100\%" { send_user "\n\n#######################\n Copy success \n#######################\n\n"; exp_continue }
|
||||
}
|
||||
|
||||
send
|
||||
|
||||
39
manifest/yaml/ssh_login.exp
Normal file
39
manifest/yaml/ssh_login.exp
Normal file
@@ -0,0 +1,39 @@
|
||||
#!/usr/bin/expect
|
||||
|
||||
set username [lindex $argv 0]
|
||||
set password [lindex $argv 1]
|
||||
set hostname [lindex $argv 2]
|
||||
set pkgname [lindex $argv 3]
|
||||
set timeout 5
|
||||
|
||||
|
||||
if {[llength $argv] == 0} {
|
||||
send_user "Usage: scriptname username \'password\' hostname \n"
|
||||
exit 1
|
||||
}
|
||||
send_user "\n\n#######################\n Try to connect server \n#######################\n\n"
|
||||
|
||||
spawn ssh -o StrictHostKeyChecking=no $username@$hostname
|
||||
expect {
|
||||
"password:" { send "$password\r"; exp_continue }
|
||||
"Last login:" { send_user "\n\n#######################\n SSH is success \n Pkg checking \n#######################\n\n"; exp_continue }
|
||||
}
|
||||
#expect -re "Last login:"
|
||||
#send_user "\n\n#######################\n SSH is success \n Pkg checking \n#######################\n\n"
|
||||
|
||||
send "rpm -q ${pkgname}\r\n"
|
||||
expect {
|
||||
"package ${pkgname} is not installed" { set timeout 20; send "yum install -y ${pkgname}\r\n"; expect { "Complete!"; exp_continue } }
|
||||
}
|
||||
|
||||
set timeout 5;
|
||||
if {$pkgname == "keepalived"} {
|
||||
send "cp -y /etc/$pkgname/$pkgname.conf /etc/$pkgname/$pkgname.conf_back\r\n"
|
||||
} elseif {$pkgname == "haproxy"} {
|
||||
send "cp -y /etc/$pkgname/$pkgname.cfg /etc/$pkgname/$pkgname.cfg_back\r\n"
|
||||
}
|
||||
|
||||
send_user "\n\n#######################\n Done \n#######################\n\n"
|
||||
|
||||
send "exit \r"
|
||||
expect eof
|
||||
Reference in New Issue
Block a user