DevOps-Jenkins触发器、项目关联及Jenkins视图应用示例

构建触发器(钩子)

构建触发器(webhook),有的人称为钩子,实际上是一个 HTTP 回调,其用于在开发人员向 gitlab 提交代码后能够触发 jenkins 自动执行代码构建操作。
以下为新建一个开发分支,只有在开发人员向开发(develop)分支提交代码的时候才会触发代码构建,而向主分支提交的代码不会自动构建,需要运维人员手动部署代码到生产环境。

此功能为gitlab使用API方式访问jenkins,所以

jenkins 安装插件

Gitlab Hook 和 Gitlab Authentication

在 jenkins 系统管理--全局安全设置,认证改为登录用户可以做任何事情
取消跨站请求伪造保护的勾选项
Gitlab Hook Plugin 以纯文本形式存储和显示 GitLab API 令牌

官网文档:https://jenkins.io/security/advisory/2018-05-09/#SECURITY-263

jenkins 修改登录认证方式

系统管理—全局安全设置,以下关闭跨站请求伪造保护只适用于2.204.6以下版本,我的jenkins版本是Jenkins 2.319.1,需要修改配置文件

高版本jenkins请参考:

修改jenkins配置文件关闭跨站请求伪造保护
在配置文件加上以下配置并重启服务,不然会报错403

cat /etc/sysconfig/jenkis
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true"

systemctl restart jenkins
 jenkins 新建 develop job

 

jenkins 构建 shell 命令

构建命令为简单的测试命令,比如输出当前的账户信息

使用以下命令生成随机Token
[root@jenkins ~]# openssl rand -hex 12
e2223148df53961ac91b2f5d

使用以下 URL 远程触发构建: JENKINS_URL /job/linux38-web1-develop/build?token= TOKEN_NAME 或者 /buildWithParameters?token= TOKEN_NAME
可选附加&cause=Cause+Text以提供将包含在记录的构建原因中的文本.

拼接起来gitlab访问jenkins,将以下url填入gitlab系统钩子

http://159.xx.xx.6:8080/job/linux38-web1-develop/build?token=e2223148df53961ac91b2f5d 
gitlab 配置 webhook

选择 ”更新存储库时将触发此 URL“,触发gitlab远程调用jenkinsAPI实现自动部署,点击保存

点击测试按钮测试钩子是否可以正常构建

 使用 curl 命令访问 URL

curl  http://192.168.7.102:8080/job/linux36-job1-develop/build?token=aa9ef9c4d39268b6d0756a1c

jenkins 验证 job 是否自动构建

 jenkins项目关联

用于多个 job 相互关联,需要串行执行多个 job 的场景,可以通过安装插件 Parameterized Trigger 触发执行其他 project。

将以下job任务拆分,可以实现job复用和模块化

复制代码
cd /var/lib/jenkins/workspace/linux38-web1-develop

tar -zcvf myapp.tar.gz ./*

scp myapp.tar.gz www@web2:/data/tomcat/tomcat_appdir

ssh www@web2 "bash /opt/apps/tomcat.sh stop"

ssh www@web2  "cd /data/tomcat/tomcat_appdir ; rm -rf /data/tomcat/tomcat_webapps/myapp/* ; tar -xvf /data/tomcat/tomcat_appdir/myapp.tar.gz -C  /data/tomcat/tomcat_webapps/myapp"

ssh www@web2 "bash /opt/apps/tomcat.sh start"
复制代码

代码拷贝job

cd /var/lib/jenkins/workspace/linux38-web1-develop

tar -zcvf myapp.tar.gz ./*

scp myapp.tar.gz www@web2:/data/tomcat/tomcat_appdir

停止服务job

ssh www@web2 "bash /opt/apps/tomcat.sh stop"

代码部署job

ssh www@web2  "cd /data/tomcat/tomcat_appdir ; rm -rf /data/tomcat/tomcat_webapps/myapp/* ; tar -xvf /data/tomcat/tomcat_appdir/myapp.tar.gz -C  /data/tomcat/tomcat_webapps/myapp"

服务启动job

ssh www@web2 "bash /opt/apps/tomcat.sh start"

配置构建后操作,选择构建其他工程

 jenkins视图管理

列表视图

列表视图使用场景比较多,用于将一个业务的job保存至一个列表视图进行分类管理,即不同业务的 job 放在不同的列表视图中。
定义视图名称

 选择任务,也可以选择正则表达式匹配

结果展示

 创建pipeline视图

安装插件:build pipeline

创建 pipline 视图

  定义 视图 配置 信息

 

 结果展示

 

posted @   不会跳舞的胖子  阅读(397)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示