Jenkins 2.164.3安装插件
- 1. 安装jenkins
- 1.1 宿主机安装
- 1.2 docker安装(linux)
- 2. 登录jenkins
- 3. 修改配置文件
这篇文章如果放在5、6年前写出来毫无意义,因为安装2.164.3
之后,推荐的插件即可自动安装。但是在2024年,当前正式版本是2.440.3 LTS
,您会发现如果安装2.164版本的jenkins无法更新插件,或者提示升级本地jenkins。但笔者的服务器只能安装java8,所以只能使用java8支持的最后版本2.164.3
。
笔者尝试过手动安装插件,但是因为各种依赖,各种插件版本不匹配,被折磨的死去活来,也尝试更新源,但是java -jar jenkins.war
这种方式未起作用。最后笔者整理了一套插件安装方法,欢迎使用及指摘。
1. 安装jenkins
1.1 宿主机安装
这里系统不区分windows还是linux
前往https://get.jenkins.io/war-stable/2.164.3/进行下载war包
运行java -Dhudson.model.DownloadService.noSignatureCheck=true -jar jenkins.war --httpPort=8081
,
其中-Dhudson.model.DownloadService.noSignatureCheck=true
是跳过网站认证,--httpPort=8081
修改端口
1.2 docker安装(linux)
前往 https://hub.docker.com/r/jenkins/jenkins/tags 挑选版本,用docker pull jenkins/jenkins:2.164.3
下载镜像
运行容器
docker run -itd -p 8080:8080 -p 50000:50000 jenkins/jenkins:2.164.3
2. 登录jenkins
不同的安装方式,根据不同的提示寻找密码
整活的地方来了,输入密码会提示安装插件,由于jenkins版本太旧,所以一个插件也安装不了,即使是推荐的
跳过插件安装,设置登录用户,这里笔者设置的是admin
登录完成,看起来很正常,但要创建任务会发现
是的,只能创建最基本的任务,而且进入之后很多功能都没有
3. 修改配置文件
由于笔者服务器环境安装的是java8,并且无法升级,所以笔者只能使用java8支持的最新版本jenkins2.163,所以常规操作需要更新Update Site
,Submit
这里整活的地方来了,像一些知名网站里面的2.164
的插件更新文件对应的并不是正确的版本,并且错的内容也相同,也不知道谁snyc的谁
https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/
http://mirror.esuni.jp/jenkins/updates/
所以怎么办呢,碰碰运气,笔者又翻了几个文件,发现stable-2.107
更新文件对应的是2.164.3
版本,还好还好,如果找不到那真的会很糟糕
http://mirror.esuni.jp/jenkins/updates/stable-2.107/update-center.json
以为这就解决了?这里把这个文件配上,仍然无法安装插件
java.io.IOException: Downloaded file /root/.jenkins/plugins/powershell.jpi.tmp does not match expected SHA-256, expected 'Qvw4t26HeGBJjh+BdpoubJc1acASVQAkB9FQtA4kxdw=', actual 'FYwl/yh2jivRErMn+VPX5douxVJGy8Tn0K6LFw0eTLc='
at hudson.model.UpdateCenter.throwVerificationFailure(UpdateCenter.java:2025)
at hudson.model.UpdateCenter.verifyChecksums(UpdateCenter.java:2060)
at hudson.model.UpdateCenter$InstallationJob.replace(UpdateCenter.java:2239)
at hudson.model.UpdateCenter$UpdateCenterConfiguration.install(UpdateCenter.java:1343)
at hudson.model.UpdateCenter$DownloadJob._run(UpdateCenter.java:1872)
at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:2153)
at hudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:1843)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at hudson.remoting.AtmostOneThreadExecutor$Worker.run(AtmostOneThreadExecutor.java:118)
at java.lang.Thread.run(Thread.java:748)
什么原因呢?
大概是官网插件的SHA-256
码和清华源的不一致,至于为什么不一致,笔者也无从得知了
接下来,需要将环境中的default.json
中的官网网址改为清华源的,笔者这里以docker为例
/var/jenkins_home/updates/default.json
修改updates文件夹中的 default.json
文件
- 替换文件中所有http://updates.jenkins-ci.org/download
为 https://mirrors.tuna.tsinghua.edu.cn/jenkins
- 替换http://www.google.com
为http://www.baidu.com
注意前面在
Update Site
中点了Submit
后,会在updates
目录中生成default.json
,也可以把 jenkins 数据目录中的hudson.model.UpdateCenter.xml
值为:http://mirror.esuni.jp/jenkins/updates/stable-2.107/update-center.json
到这里重启下jenkins或者http:localhost:8080/reload
都可以了,再更新插件就可以了