Gitlab+Jenkins 구현 코드 제작 스크립트
#!/bin/bash
###########################################################
# Author:Liuyutang ####
###########################################################
# Date:20180820 ####
###########################################################
# Project:Gitlab+Jenkins ( ) ####
###########################################################
#----------------------------------------------------------
DEPLOY_METHOD=$1
GROUP_LIST=$2
if [[ ${GROUP_LIST} == "group1" ]];then
PC_LIST="192.168.30.30"
elif [[ ${GROUP_LIST} == "group2" ]];then
PC_LIST="192.168.30.40"
ssh [email protected] ""echo enable server tomcat-web1/192.168.30.30"| socat stdio /var/lib/haproxy/haproxy.sock"
ssh [email protected] ""echo enable server tomcat-web2/192.168.30.30"| socat stdio /var/lib/haproxy/haproxy.sock"
elif [[ ${GROUP_LIST} == "groupall" ]];then
PC_LIST="192.168.30.30 192.168.30.40"
fi
download_file(){
if [[ ${DEPLOY_METHOD} == "deploy" ]];then
rm -rf myweb
git clone [email protected]:root/myweb.git
echo " !"
elif [[ ${DEPLOY_METHOD} == "rollback_last_version" ]];then
cd myweb && git reset --hard HEAD^ && cd ..
fi
}
copy_file(){
cd myweb
for node in ${PC_LIST};do
#git reset --hard HEAD^
scp -r ./* ${node}:/data/tomcat/webapps/myweb
echo "${node} !"
done
}
stop_tomcat(){
for node in ${PC_LIST};do
ssh -p22 www@${node} "/etc/init.d/tomcat stop"
echo "${node} tomcat "
done
}
start_tomcat(){
for node in ${PC_LIST};do
ssh -p22 www@${node} "/etc/init.d/tomcat start"
echo "${node} tomcat "
done
}
add_server(){
for node in ${PC_LIST};do
if [[ ${node} == "192.168.30.30" ]];then
echo " , "
else
ssh [email protected] ""echo enable server tomcat-web1/${node}"| socat stdio /var/lib/haproxy/haproxy.sock"
ssh [email protected] ""echo enable server tomcat-web2/${node}"| socat stdio /var/lib/haproxy/haproxy.sock"
echo "${node} "
fi
done
}
disable_server(){
for node in ${PC_LIST};do
ssh [email protected] ""echo disable server tomcat-web1/${node}"| socat stdio /var/lib/haproxy/haproxy.sock"
ssh [email protected] ""echo disable server tomcat-web2/${node}"| socat stdio /var/lib/haproxy/haproxy.sock"
echo "${node} "
done
}
test_url(){
for node in ${PC_LIST};do
NUM=`curl -I -m 10 -o /dev/null -s -w %{http_code} 192.168.30.30:8080/myweb/index.html`
#curl --head http://192.168.30.30:8080/myweb/index.html
if [ $NUM -eq 200 ];then
echo "${node} index check OK!"
else
echo "${node} index check ERROR!"
fi
done
}
scrip_help(){
echo "help"
}
main(){
case ${DEPLOY_METHOD} in
deploy)
disable_server
download_file
stop_tomcat
copy_file
start_tomcat
test_url
add_server
;;
rollback_last_version)
download_file
copy_file
stop_tomcat
start_tomcat
test_url
;;
*)
script_help;
script_help
esac
}
main $1 $2 $3 $4
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Unity3D 시작하기(rolling ball) - 학습 노트만약 이 방법이 성공하지 못하면 각 구성 요소를 분류하여 다운로드할 수 있습니다. 항목은 3D를 선택하고 가져온 리소스는 None으로 선택할 수 있습니다. Scene: 각 게임마다 몇 개의 장면으로 구성되어 있으며,...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.