Jenkins集成部署
# Jenkins集成部署相关
# Docker+Jenkins+Gitee自动化部署maven项目
参考文档:https://zhuanlan.zhihu.com/p/633777186
# jenkins源码安装
https://www.cnblogs.com/xunweidezui/p/16625141.html
# php-fpm 项目部署
- jenkins另外安装相关插件
dynamicparameter.hpi (opens new window)
scriptler.hpi (opens new window)
role-strategy.hpi (opens new window)
- jenkins内部需要安装的插件
Groovy
Pipeline: GitHub Groovy Libraries
Docker Pipeline
Ansible plugin
- 配置丢弃旧的构建
- 参数化构建过程
选用"Dynamic Choice Parameter"
name 填写"choice"
script填写:
def ver_keys=['bash','-c','cd /data/tmp/Rollback/zhimao-test; echo none; ls | sort -m']
ver_keys.execute().text.tokenize("\n")
1
2
2
描述:
***部署请选择none !***
***回滚 请选择响应版本号!**
1
2
2
- 配置git仓库地址和凭证
- 在构建环境中选择:在构建日志中添加时间戳前缀
- Build Steps 选择执行 shell
TIME=`date --date='0 days ago' "+%Y%m%d%H%M%S"`
echo $JOB_NAME
if [ ! -d "/data/tmp/Deloy/$JOB_NAME" ]; then
mkdir -p /data/tmp/Deloy/$JOB_NAME
fi
if [ ! -d "/data/tmp/Rollback/$JOB_NAME" ]; then
mkdir -p /data/tmp/Rollback/$JOB_NAME
fi
cd /var/lib/jenkins/workspace
echo $choice
if [ $choice == none ]; then
tar -zcf /data/tmp/Deloy/$JOB_NAME/$JOB_NAME$TIME.tar.gz $JOB_NAME
ansible-playbook /data/config/ansible/zhimao-test.yaml --extra-vars "jobname=$JOB_NAME src=/data/tmp/Deloy/$JOB_NAME/$JOB_NAME$TIME.tar.gz dest=$JOB_NAME$TIME.tar.gz"
mv /data/tmp/Deloy/$JOB_NAME/$JOB_NAME$TIME.tar.gz /data/tmp/Rollback/$JOB_NAME/$JOB_NAME$TIME.tar.gz
else
# rollback
echo "回滚版本:"$choice
ansible-playbook /data/config/ansible/zhimao-test.yaml --extra-vars "jobname=$JOB_NAME src=/data/tmp/Rollback/$JOB_NAME/$choice dest=$choice"
fi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21