#!/bin/bash
DATE=$(date +%F_%H-%M) #时间变量
Name=$DATE-${git_version} #时间变量加版本变量
host="10.0.0.7 10.0.0.8" #部署的主机
get_code() { #打包代码
cd ${WORKSPACE}
tar zcf /opt/web_${Name}.tar.gz ./*
}
scp_code() { #推送代码
for i in $host
do
scp -r /opt/web_${Name}.tar.gz root@$i:/opt/
ssh root@$i "rm -rf /code/web && \
mkdir /code/web_${Name} -p && \
tar xf /opt/web_${Name}.tar.gz -C /code/web_${Name}/ && \
ln -s /code/web_${Name} /code/web"
done
}
back() { #代码回退
for i in $host
do
back_version=$(ssh root@$i "find /code -maxdepth 1 -type d -name "*-${git_version}"")
ssh root@$i "rm -rf /code/web && \
ln -s ${back_version} /code/web"
done
}
deploy() { #部署代码 判断代码是否部署
if [ ${GIT_COMMIT} == ${GIT_PREVIOUS_SUCCESSFUL_COMMIT} ];then
echo "已经部署过"
exit 1
else
get_code
scp_code
fi
}
case $deploy_env in #部署和回退的选项 jenkins选项参数一致
"deploy")
deploy
;;
"rollback")
back
;;
*)
exit 1
;;
esac
jenkins-html 部署
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 自动化部署 “自动化”的具体体现:向版本库提交新的代码后,应用服务器上自动部署,用户或测试人员使用的马上就是最新的...
- 作者的话 在我司的基础设施软件中,有一个ecloud平台,能够进行软件开发的持续集成,通过代码上传到svn然后直接...
- 准备 因为要与Gitlab通讯,所以Jenkins需要安装插件 Gitlab Plugin配置Gitlab参数 J...
- 下载 Chromehttps://www.google.com/chrome/ 安装 Chrome 若安装出错,可...