首页> DevOps> 【DevOps】Jenkins搭建和删除job及自动...

[文章]【DevOps】Jenkins搭建和删除job及自动发布关键

收藏
0 409 0

【摘要】

本文主要记录Jenkins的部署,以Purge Job History为例的插件的安装,同时讲解了gitlabJenkinsrancher自动发布环境的关键调用过程。

【正文】

Jenkins搭建和安装插件删除job

1.1 java版本需求

2.164 (2019-02) and newer: Java 8 or Java 11

2.54 (2017-04) and newer: Java 8

1.612 (2015-05) and newer: Java 7

1.2 部署

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo

sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key

yum install jenkins

如果按照旧的文档安装公钥,在装jenkins时会报错(见下图),提示公钥尚未安装。需要到https://pkg.jenkins.io/redhat/查到最新的命令。(Jenkins用于签名软件包的gpg密钥已于2020416日更新,因此,如果在此日期之前导入,则需要重新导入。

 


1.3 配置文件

jenkins配置文件位于/etc/sysconfig/jenkins;如要修改默认端口8080为其他端口、默认数据目录从/var/lib/jenkins到其他目录。jenkins后期item多了之后,数据目录下的JOBWorkspace会占用较大的磁盘空间。

1.4 启动

systemctl start Jenkins

如启动失败,可能是Java路径问题:


两种解决方法:

(1)       创建软链接

ln -s /usr/local/jdk1.8.0_231/bin/java /usr/bin/java

(2)       修改配置文件加上java路径

vim /etc/init.d/Jenkins

systemctl daemon-reload

 


以上两种办法操作后再启动Jenkins

1.5 防火墙配置

firewall-cmd --add-port=8080/tcp –permanent

firewall-cmd --add-port=8080/tcp

 

1.6 初次访问

1.6.1 登录

浏览器输入http://内网地址:8080


根据提示找到/var/lib/jenkins/secrets/initialAdminPassword密码

1.6.2 安装插件

1.6.2.1 离线情况下:


可跳过插件安装,或者配置代理

 

1.6.2.2 能够访问外网则会提示安装插件:


选择推荐则直接进入安装状态,如果不清楚安装什么插件可以选择左边,含有了日常环境的功能,如拉取git、邮件通知、删除旧工作区等等,后面漏的插件再补即可:


1.6.3 配置管理员


可选择初始admin,也可以另外创建。

1.6.4 设置url

url将会被插件调用,以供提供如何访问jenkins信息。如邮件通知会发送jenkins构建历史的url



1.7 安装插件和清理JOB

点击左侧的“manage Jenkins”——“manage plugins”——“可用/available”选项页——右侧搜索栏输入Purge Job History。勾选上之后点击“install without restart”进入安装。根据安装提示看是否需要重启jenkins,有的插件依赖可能需要重启,选择没有构建操作的窗口期重启,重启后按照前面的步骤再操作一遍;选择“Download now and install after retart ”也是可选的操作,在明确插件不需要重启的情况下就不需要使用。

根据需求使用什么插件可以用搜索引擎查找或者浏览插件平台https://plugins.jenkins.io/

 


Purge Job History插件可以用于清理Job构建历史记录。对于未配置自动删除旧job导致磁盘占用高的场景下非常适合清理空间。


应用自动发布的流程和关键

2.1 角色

代码存放处:gitlab

打包发布平台:jenkins

容器镜像仓库:harbor

业务运行平台:rancher、服务器

2.2 流程关键

代码推送到分支时,触发gitlab的集成钩子,调用了jenkinsAPI,触发jenkins打包;jenkins打包后到一定步骤,如构建完镜像,通过shell调用rancherAPI、或者ssh发送更新文件到服务器上、执行脚本发布应用。


2.2.1 Jenkins启用触发钩子

jenkins上的触发钩子可以在配置中启用,并且在高级中生成秘钥和筛选分支名称:



2.2.2 gitlab上配置jenkins的钩子

gitlab对应的项目里“设置”——“集成”,填入上一步的URLtoken——“增加web钩子”;可以在jenkins处把分支筛选去掉,在gitlab点击刚刚添加的钩子的“测试”看看钩子是否可以调用。


2.2.3 rancher生成API接口信息

rancher上点击服务的“API查看”


复制-upgrade下的内容到另外一个地方保存,例如文本编辑器;


点击右侧的“upgrade”,把"inServiceStrategy""toServiceStrategy"(从大括号开始)复制进去



点击“show request”显示结果且没有JSON报错提示即成功:


复制出curl命令部分可以用于脚本触发,需要替换掉-u后面的AccessKey部分;还能把一部分参数简化删除(例如只保留自定义值的参数),测试是否调用成功,最终在jenkins上配置“execute shell”。完成升级部分可在rancher容器升级后点击API查看“Finishupgrade”接口URL


2.2.4 Jenkins调用rancherAPI接口



DevOps
最近热帖
{{item.Title}} {{item.ViewCount}}
近期热议
{{item.Title}} {{item.PostCount}}