#!/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 root@192.168.30.30 ""echo enable server tomcat-web1/192.168.30.30"| socat stdio /var/lib/haproxy/haproxy.sock" ssh root@192.168.30.40 ""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 git@gitlab-server.ilinux.com: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 root@192.168.30.30 ""echo enable server tomcat-web1/${node}"| socat stdio /var/lib/haproxy/haproxy.sock" ssh root@192.168.30.40 ""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 root@192.168.30.30 ""echo disable server tomcat-web1/${node}"| socat stdio /var/lib/haproxy/haproxy.sock" ssh root@192.168.30.40 ""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
转载于:https://blog.51cto.com/10461810/2298887