一、Jenkins实现项目tag版本方式发布
1.1 为什么要通过tag发布
- 实现tag版本上线方式思路
1.开发如果需要发布新版本,必须将当前的版本打上一个标签。
2.Jenkins需要让其脚本支持传参,比如用户传递v1.1则拉取项目的v1.1标签的代码。
1.2 安装Git Parameter插件
Git Parameter
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3W1WJ3ML-1689342490734)(E:\教学资料\※笔记※\复习\assets\image-20230711094313928.png)]](https://i-blog.csdnimg.cn/blog_migrate/836bffa568e13ee304af226e54302e05.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qt2FluAw-1689342490735)(E:\教学资料\※笔记※\复习\assets\image-20230711094532086.png)]](https://i-blog.csdnimg.cn/blog_migrate/3a20878e57634bb8cac029b73bd54c86.png)
1.3 使用插件配置Jenkins
1、在General配置gitlab的自定义参数
2、源码管理页面修改为通过tag拉取代码
3、构建页面的变化
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N08IVAkm-1689342490736)(E:\教学资料\※笔记※\复习\assets\image-20230711095427386.png)]](https://i-blog.csdnimg.cn/blog_migrate/8e11774d252677f43d733804f5f71add.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nD1ouT2L-1689342490736)(E:\教学资料\※笔记※\复习\assets\image-20230711095742446.png)]](https://i-blog.csdnimg.cn/blog_migrate/81895df831d0ba4f1fab5143244b8c0b.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LNkrETuz-1689342490737)(E:\教学资料\※笔记※\复习\assets\image-20230711100258801.png)]](https://i-blog.csdnimg.cn/blog_migrate/49e8e0f26bab5d9aadb468974c56dbc9.png)
1.4 gitlab给项目代码打标签
1、校验本地代码环境没有未提交的数据,否则会冲突!!!
[root@jenkins webhp]
nothing to commit, working directory clean
2、拉取最新代码
[root@jenkins webhp]
From 192.168.222.133:devops/webhp
* branch main -> FETCH_HEAD
Already up-to-date.
3、提交tag到本地仓库
[root@jenkins webhp]
[root@jenkins webhp]
v1.0
4、提交tag到远端仓库gitlab
[root@jenkins webhp]
Counting objects: 1, done.
Writing objects: 100% (1/1), 182 bytes | 0 bytes/s, done.
Total 1 (delta 0), reused 0 (delta 0)
To git@192.168.222.133:devops/webhp.git
* [new tag] v1.0 -> v1.0
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9jEV03MX-1689342490737)(E:\教学资料\※笔记※\复习\assets\image-20230711101754683.png)]](https://i-blog.csdnimg.cn/blog_migrate/1d2bef952441483951175fa5ba7bc92b.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qobAJuHS-1689342490737)(E:\教学资料\※笔记※\复习\assets\image-20230711101827624.png)]](https://i-blog.csdnimg.cn/blog_migrate/12ceadb9439307ed149d95f37caa9e16.png)
1.5 通过tab发布webhp项目
1、查看目前nginx的前端项目的版本
2、修改索引页面
<h1 style="color: blue; text-align: center; width: 1500px; background-color:cornsilk; height: 50px;">强强科技集团-v2.0版本</h1>
3、建立标签v2.0
[root@jenkins webhp]
[root@jenkins webhp]
v1.0
v2.0
[root@jenkins webhp]
Counting objects: 1, done.
Writing objects: 100% (1/1), 183 bytes | 0 bytes/s, done.
Total 1 (delta 0), reused 0 (delta 0)
To git@192.168.222.133:devops/webhp.git
* [new tag] v2.0 -> v2.0
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BXdBCxdE-1689342490738)(E:\教学资料\※笔记※\复习\assets\image-20230711102335641.png)]](https://i-blog.csdnimg.cn/blog_migrate/1c9b573f846cb06e01c216f4573aa435.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QE5bCLNs-1689342490738)(E:\教学资料\※笔记※\复习\assets\image-20230711103131378.png)]](https://i-blog.csdnimg.cn/blog_migrate/3c913cb5f873c9d68388d5133c485a3c.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZHeOThh8-1689342490738)(E:\教学资料\※笔记※\复习\assets\image-20230711103524106.png)]](https://i-blog.csdnimg.cn/blog_migrate/129600cd109ba7afc1990484cad6c5d2.png)
1.6 通过tag发布新版本
1、jenkins服务器的默认工作空间还是老版本
[root@jenkins workspace]
webhp-gitlab项目-线上发布
2、修改线上发布脚本。通过tag发布
[root@jenkins ~]
DATE=$(date +%Y-%m-%d_%H)
webhp_dir="/root/webhp"
web_host="192.168.222.133"
Name=${DATE}-${git_version}
get_code(){
find $WORKSPACE -name "*tmp" | xargs rm -rf
tar -zcf /opt/webhp-${Name}.tar.gz -C $WORKSPACE .
}
copy_code(){
scp -r /opt/webhp-${Name}.tar.gz root@${web_host}:/opt
ssh root@${web_host} "mkdir -p /opt/webhp-${git_version} && \
tar -xf /opt/webhp-${Name}.tar.gz -C /opt/webhp-${git_version} && \
ls -l /opt && \
cp -rf ${webhp_dir} ${webhp_dir}.bak.${DATE} && \
rm -rf ${webhp_dir} && \
mv /opt/webhp-${git_version} ${webhp_dir}"
}
deploy(){
get_code
copy_code
}
deploy
3、查看Jenkins的构建日志
4、查看nginx的结果
5、git提取新的tag到本地
git fetch
git checkout v1.0
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CdYOSpuS-1689342490739)(E:\教学资料\※笔记※\复习\assets\image-20230711103735441.png)]](https://i-blog.csdnimg.cn/blog_migrate/405851390d86cbc6bc03035836a28084.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NbXWu2Zo-1689342490739)(E:\教学资料\※笔记※\复习\assets\image-20230711104916995.png)]](https://i-blog.csdnimg.cn/blog_migrate/6bf77e535e596b016fb58e16b81fa072.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sg0ggz5s-1689342490739)(E:\教学资料\※笔记※\复习\assets\image-20230711112520253.png)]](https://i-blog.csdnimg.cn/blog_migrate/b016719ba69448c576b45204f077860f.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-do3VMbvR-1689342490740)(E:\教学资料\※笔记※\复习\assets\image-20230711112116832.png)]](https://i-blog.csdnimg.cn/blog_migrate/2f596edc32089cad491271c25f768ec7.png)
二、Jenkins实现tag版本的回退
1.1 编写支持版本回退的脚本
1、增加回滚按钮根据,Jenkins Gerneal选择变量内容!!!
[root@jenkins ~]
DATE=$(date +%Y-%m-%d_%H)
webhp_dir="/root/webhp"
web_host="192.168.222.133"
Name=${DATE}-${git_version}
get_code(){
find $WORKSPACE -name "*tmp" | xargs rm -rf
tar -zcf /opt/webhp-${Name}.tar.gz -C $WORKSPACE .
}
copy_code(){
scp -r /opt/webhp-${Name}.tar.gz root@${web_host}:/opt
ssh root@${web_host} "mkdir -p /opt/webhp-${git_version} && \
tar -xf /opt/webhp-${Name}.tar.gz -C /opt/webhp-${git_version} && \
ls -l /opt && \
cp -rf ${webhp_dir} ${webhp_dir}.bak.${DATE} && \
rm -rf ${webhp_dir} && \
cp -rf /opt/webhp-${git_version} ${webhp_dir}"
}
deploy(){
get_code
copy_code
}
rollback(){
backfile=$(ssh root@${web_host} "find /opt/ -name "webhp-${git_version}" -type d")
ssh root@${web_host} "ls -l /opt && \
rm -rf ${webhp_dir} && \
cp -rf /opt/webhp-${git_version} ${webhp_dir}"
}
if [ $deploy_env == "deploy" ]; then
deploy
elif [ $deploy_env == "rollback" ]; then
rollback
fi
1.2 Jenkins添加参数化构建选项参数变量
1、在General中配置选择参数
2、配置必要的选项
3、修改拉取代码后的构建脚本
4、构建页面变成了可以携带参数的构建方式
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mWa8Ony4-1689342490740)(E:\教学资料\※笔记※\复习\assets\image-20230711163329539.png)]](https://i-blog.csdnimg.cn/blog_migrate/9d176d9afc8a2eb37bcd9c7dfd286011.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rxe8UUhI-1689342490740)(E:\教学资料\※笔记※\复习\assets\image-20230711163754236.png)]](https://i-blog.csdnimg.cn/blog_migrate/958d089ac166396fb2d16b38d2b02bd8.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4Cz4kev7-1689342490741)(E:\教学资料\※笔记※\复习\assets\image-20230711163850537.png)]](https://i-blog.csdnimg.cn/blog_migrate/b8be95493344ec45e5d1c22a8b0fa6c7.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DOV0pTUf-1689342490741)(E:\教学资料\※笔记※\复习\assets\image-20230711164322578.png)]](https://i-blog.csdnimg.cn/blog_migrate/a9ab0ab0d29240a355a887692412ff99.png)
1.3 测试回滚发布操作
1、目前webhp是3.0版本
2、发布4.0
3、查看结果
4、测试回滚操作
5、查看回滚的结果
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rU7Mxixj-1689342490741)(E:\教学资料\※笔记※\复习\assets\image-20230711164456310.png)]](https://i-blog.csdnimg.cn/blog_migrate/35731c7ea3f88b9f863bcae862995882.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O3pSNrKl-1689342490742)(E:\教学资料\※笔记※\复习\assets\image-20230711165303373.png)]](https://i-blog.csdnimg.cn/blog_migrate/1bebc1e5c051e1bdfecfc46edfe00119.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YK6WCupP-1689342490742)(E:\教学资料\※笔记※\复习\assets\image-20230711170631237.png)]](https://i-blog.csdnimg.cn/blog_migrate/db8a569f2f294402c4148c206c7bdb73.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aYBMFD6n-1689342490742)(E:\教学资料\※笔记※\复习\assets\image-20230711171035954.png)]
择v3.0,点击rollback](https://i-blog.csdnimg.cn/blog_migrate/6fe669d73609d281842fc7d412a19b1a.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c72d9913ffc99e1ccf5526e17d563fc7.png)