#!/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
Gitlab+Jenkins 实现代码发布脚本
原创
©著作权归作者所有:来自51CTO博客作者IT__小子的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:Tomcat服务
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
gitlab+jenkins
gitlab+jenkins基本触发和登录
gitlab 触发 jenkins 自动构 -
基于Gitlab+Jenkins的代码自动化发布
代码自动化发布 jenkins自动化发布
自动化发布 jenkins git -
2)gitlab+jenkins自动化发布;jenkins搭建
gitlab+jenkins自动化发布;jenkins搭建
gitlab jenkins 自动化 发布 -
1)gitlab+jenkins自动化发布;gitlab搭建
1)gitlab+jenkins自动化发布;gitlab搭建
gitlab jenkins 自动化 发布 -
3)gitlab+jenkins自动化发布;发布tomcat项目
gitlab+jenkins自动化发布;发布tomcat项目
gitlab jenkins 部署项目 -
Gitlab+Jenkins持续部署配置
Gitlab+Jenkins持续部署配置
jenkins gitlab 自动化