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 @ 2021-12-28 16:43  不会跳舞的胖子  阅读(376)  评论(0编辑  收藏  举报