目录
传送门
SpringMVC的源码解析(精品)
Spring6的源码解析(精品)
SpringBoot3框架(精品)
MyBatis框架(精品)
MyBatis-Plus
SpringDataJPA
SpringCloudNetflix
SpringCloudAlibaba(精品)
Shiro
SpringSecurity
java的LOG日志框架
Activiti(敬请期待)
JDK8新特性
JDK9新特性
JDK10新特性
JDK11新特性
JDK12新特性
JDK13新特性
JDK14新特性
JDK15新特性
JDK16新特性
JDK17新特性
JDK18新特性
JDK19新特性
JDK20新特性
JDK21新特性
其他技术文章传送门入口
前言
承接 Jenkins安装启动(JDK8/11/17)一文,
以CentOS7上面的支持JDK8的Jenkins2.346-1的LTS版本和支持JDK17的Jenkins 2.440.1的LTS版本综合介绍Jenkins的一些配置
下面文章不定期更新中。。。
Linux安装JDK17(精品)
Linux安装MySQL(精品)
Linux安装Nginx(精品)
Linux安装Maven(精品)
运行一个jar包(精品)
java -jar提示jar中没有主清单属性(no main manifest attribute)(精品)
Jenkins安装启动(JDK8/11/17)(精品)
Jenkins配置(插件/角色/凭证)(精品)
Jenkins的jdk和maven配置(精品)
Jenkins三种构建类型(精品)
一、Jenkins插件管理
插件是非常重要的一个设置。下面案例默认以支持JDK17的Jenkins 2.440.1为主(英文版本)。有不一样的地方,会特别标注提示是支持JDK8的Jenkins2.346-1(汉化版本)。
1、更换为国内下载源
第一步:
将上图的https://updates.jenkins.io/update-center.json 更换为国内的地址
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
点击submit。
备注:这里表示后面更新插件,都是从国内这个地址更新了,速度非常快。
第二步:
下面操作的就是下载插件,都从国内地址下载。
cd /var/lib/jenkins/updates # 进入这个目录,找到default.json文件
建议通过xftp等工具,把default.json文件拖出来修改。修改完再拖回去。先备份一个default-backup.json出来,避免改错,方便还原。
笔者这边用notepad++打开拖出来的default.json文件(就是在自己window电脑上面改,用记事本也可以ctrl+f批量替换)。主要批量替换三句话,下面三句哪个有,就替换哪个,都做一次批量替换。
updates.jenkins-ci.org/download 替换为mirrors.tuna.tsinghua.edu.cn/jenkins
updates.jenkins.io/download 替换为mirrors.tuna.tsinghua.edu.cn/jenkins
www.google.com 替换为 www.baidu.com
笔者这边主要替换了第二句和第三句。不同Jenkins版本情况不同。(有些Jenkins是替换第一句和第三句,比如Jenkins的一些老版本,支持JDK8的那种版本)
将修改后的default.json文件重新传到服务器的/var/lib/jenkins/updates目录下,覆盖原来的。
然后Jenkins请求地址/restart可以重启jenkins,也可以服务器指令重启
#重启jenkins
systemctl restart jenkins
2、中文汉化插件下载(不推荐)
建议还是习惯英文的操作界面,像idea一样,换成汉化的idea总感觉怪怪的。当然这里面的中文汉化插件可以先下载,然后不想用关闭就可以了。
Dashboard->Manage Jenkins->Plugins->Available plugins,搜索"Chinese",下载重启即可。
截图没有查询出,是因为笔者已经安装过了。在Installed plugins里面可以看到。
注意:支持JDK8的Jenkins2.346-1版本是在Jenkins->Manage Jenkins->Manage Plugins,点击Available,搜索"Chinese",下载重启即可。
两个版本的操作界面是不一样的,但是原理基本都是大同小异的。所有插件要生效,最好是重启一次jenkins,也可以多个插件批量下载以后,最后再重启Jenkins。
3、低版本Jenkins爆红插件安装
支持JDK8的Jenkins2.346-1版本会发现很多插件爆红,直接在插件管理里面批量勾选大量爆红需要安装的插件即可。因为之前访问页面的时候选择的无(最开始没有选择安装插件),所以很多插件其实都没有安装上。
4、低版本Jenkins插件持续报错解决办法
http://updates.jenkins-ci.org/download/plugins/
这个地址里面 ctrl+f 找一直报错的插件,然后上传插件
下载Jenkins的插件的地址(官方可找低版本插件兼容):https://plugins.jenkins.io/
例如:Credentials插件解决案例,先解决一些重要的插件,有依赖关系。
找差不多版本,可以点到checksums这个单词,可以参考,不能太老,不能太新。一年一年往下降。
参考版本,注意是Jenkins上传插件,不是直接从xftp拖过去的哈
下面是笔者总结的 支持JDK8的Jenkins2.346-1版本对应插件的一些版本
查找顺序
Trilead API
版本1.57.v6e90e07157e1
SSH Credentials (多个)
版本1.19
Mina SSHD API :: Core
版本2.8.0-21.v493b_6b_db_22c6
Mailer
版本414.vcc4c33714601
JSch dependency
版本0.1.55.2
Git
版本4.11.3
Git server
版本1.9
GitHub
版本1.30.0
低版本Jenkins插件这块配置是非常麻烦的。但是没办法,如果公司是JDK8的项目,只能用低版本Jenkins。高版本Jenkins插件这块都没有这么麻烦了,非常清爽。尤其是最新的LTS版本,不过最新的LTS版本是不支持JDK8项目的。感慨技术的更新呀,以前是JDK版本一更新,大家就是看看,心态就是你发任你发,我用java8。现在随着Spring6、SpringBoot3、Swagger、Jenkins的最新版本都纷纷抛弃java8,JDK8再也不那么受欢迎了。很多新的java项目,优先考虑JDK17了。JDK11在中间才尴尬,建议大家一鼓作气升级到JDK17。JDK17默认的ZGC垃圾回收器实在是太好,性能方面吊打JDK8,新增的很多特性很有优点。
二、Jenkins用户角色
Jenkins默认是有用户的,但是角色没有,还是需要下载插件来支持。插件真的是强大呀。
参考上面中文汉化插件下载,搜索Role
涉及到插件,一定要重启Jenkins,重启才会生效。上面的勾上,会自动重启的。
重启后安全版块还是两个
点击第一个Security进入设置
保存后再看安全版块,会发现多出一个小版块
多了一个版块
Global roles(全局角色):管理员等高级用户可以创建基于全局的角色
Project roles(项目角色):针对某个或者某些项目的角色
Slave roles(节点角色):节点相关的权限
英文版本看着不是那么明确,看下汉化版本(笔者的支持JDK8的Jenkins2.346-1为汉化版本)
测试增加一个zangtie账号,读者可以根据自己需要做具体的测试
三、Jenkins凭证管理(svn/git)
思路依然是下载插件。
第三方交互的时候需要账号密码之类的,下载Credentials Binding插件,svn和git插件分别下载安装重启(不扩展单词,就是subversion和git)
可以添加的凭证有5种:
Username with password:用户名和密码
SSH Username with private key: 使用SSH用户和密钥
Secret file:需要保密的文本文件,使用时Jenkins会将文件复制到一个临时目录中,再将文件路径设置到一个变量中,等构建结束后,所复制的Secret file就会被删除。
Secret text:需要保存的一个加密的文本串,如钉钉机器人或Github的api token
Certificate:通过上传证书文件的方式
我们看到Security版块又新增了两个小版块。先点击前面的小版块如上图
点击global
点击Add Credentials
1、Username with password方式(推荐)
2、SSH Username with private key方式
使用root用户生成公钥和私钥 ssh-keygen -t rsa
在/root/.ssh/目录保存了公钥和私钥
id_rsa:私钥文件
id_rsa.pub:公钥文件
生成的公钥放在Gitlab中
以root账户登录->点击头像->Settings->SSH Keys
复制刚才id_rsa.pub文件的内容到这里,点击"Add Key"
在Jenkins中添加凭证,配置私钥
在Jenkins添加一个新的凭证,类型为"SSH Username with private key",把刚才生成私钥文件内容复制过来
测试凭证是否可用
新建"test02"项目->源码管理->Git,这次要使用Gitlab的SSH连接,并且选择SSH凭证
同样尝试构建项目,如果代码可以正常拉取,代表凭证配置成功!