通过Artifactory更新Jenkins插件

798qvoo8  于 2023-01-12  发布在  Jenkins
关注(0)|答案(2)|浏览(219)

我想通过Artifactory更新Jenkins插件。
1.创建名为Jenkins-update的远程存储库
1.创建一个名为jenkins-update-center的本地存储库
1.从存储库Jenkins-update获取update-center.json到本地,并在update-center.json中将URL从“http://updates.jenkins-ci.org/”修改为我自己的URL“https://artifacts.xxx.com/artifactory/Jenkins-update/”,然后将update-center.json放入本地存储库。

#!/bin/sh
curl -L -o /tmp/update-center.json http://localhost:8081/artifactory/Jenkins-update-cache/update-center.json
sed -i 's#http://updates.jenkins-ci.org/#https://artifacts.xxx.com/artifactory/Jenkins-update/#g' /tmp/update-center.json
curl -L -uuser:pass -T /tmp/update-center.json "http://localhost:8081/artifactory/jenkins-update-center/update-center.json"

1.在Jenkins中将默认更新站点从“http://updates.jenkins-ci.org/”更改为“https://artifacts.xxx.com/artifactory/jenkins-update-center/update-center.json
出现错误“SHA-512摘要不匹配:当我单击“立即检查”按钮时,在“更新站点”默认值“中,预期值= 49 a22 dc 23 f739 a76623 d10128 b6803 f79 e0489 de 3ded 0 f1 d 01 f3 dfba 4557136 c7 f318 baaf 4749 a7713 ec 4 b3 f56633 f2 ac 3afc 4703 e87 d423 ed 029 d 68 f84 c74 d。
我应该怎么做才能让Jenkins从Artifactory更新插件?
Tkx

7ajki6be

7ajki6be1#

一旦update-center.json的内容发生变化,您需要重新生成该文件的“signature”部分。为此,您需要生成您的密钥对(请参阅How to create a local mirror of public Jenkins update site?中的更多细节)
您还可以使用以下建议的方法:
也许有一个更好的方法,在一个可以访问互联网的系统上安装一个沙盒Jenkins。2你用UI更新服务器,然后你可以彻底测试更新的Jenkins。3完成后,你只需要把war和hpi文件复制到你的“生产”Jenkins中。4现在你甚至有了一个很好的过程和QA。
另一种方法是在Jenkins和Artifactory服务器之间设置一个透明的https代理-在这种情况下update-center.json不会改变,签名验证应该可以正常工作。
谨致问候,
德米特罗·戈尔布诺夫

rryofs0p

rryofs0p2#

截至2023年1月10日,在artifactory上制作jenkins插件的镜像存在问题。
Artifactory文档仅描述了如何创建镜像:https://jfrog.com/knowledge-base/how-to-configure-artifactory-as-a-mirror-for-jenkins-plugins/
但这并不是一个完整的解决方案。因为这会导致每个插件都要手动更新的情况。拥有一堆依赖项的插件是巨大的努力。
需要生成一个文件:update-center.json
有一个内部Jenkins工具可以做到这一点:https://github.com/jenkins-infra/update-center2,但文档很差,并且包含模糊的语句,如:
经过一些修改,它也可以很容易地用于生成您的公司更新中心。
没有明确的描述,应该做什么。我试图按照步骤和完全失败。工具需要一些特殊的环境变量,这也没有文件等。
因此,根据我的经验,在artifactory上镜像jenkins插件实际上是不可能的。老实说,我希望在这里是错误的。

相关问题