我们在一台无法访问互联网的服务器上运行Jenkins(即使是通过代理)。安装并保持Jenkins安装的最新状态是一件痛苦的事!
我的想法是通过一个可以访问互联网的Windows工作站,制作一个詹金斯公共更新网站的本地镜像。然后通过NFS共享将此本地镜像提供给Jenkins。
所以我的问题是:如何制作本地镜像?你有更好/更简单的想法来保持詹金斯的安装是最新的吗?
为了生成更新站点(update-center.json),您可以使用https://github.com/jenkins-infra/backend-update-center2项目
我的步骤:
- 生成自签名证书
openssl genrsa-out your-update-center.key 1024openssl req-new-x509-days 1095-键入您的更新中心.key-out your更新中心.crt
- 将所有插件放入您的Nexus 2 maven存储库
- 克隆并回建update-center2项目
- 生成update-center.json
mvn-exec:java-Dexec.args="-id-default-h/dev/null-o更新center.json-存储库ULR_TO_NEXUS_REPO-remoteIndex.index.nextus-maven-repository-index.gz-repositoryName YOUR_REPO_NAME-directLink-peary-nowiki-key your-update-center.key-证书更新中心.crt-根证书您的更新中心.crt"
- 发布您的update-center.json。必须可以通过http/https访问
- 将生成的update-center.crt复制到JENKINS_HOME/update-centerrootCA文件夹
- "詹金斯→插件管理→先进的→更新站点"定义已发布的Update-center.json的链接
PS。不要忘记生成并发布Nexus 2 nextus-maven-repository-index.gz索引文件。为此,请使用"发布索引"任务。
有关更新程序中心的其他信息,请访问https://github.com/ikedam/backend-update-center2/wiki/How-to-create-your-own-Jenkins-Update-Center
手动下载war文件、停止服务器、替换war并重新启动服务器的问题在哪里?插件也是如此。
如果我仔细想想,可能有更好的方法,在一个可以访问互联网的系统上安装一个沙盒詹金斯。您可以使用UI更新服务器,然后可以彻底测试更新后的Jenkins。完成后,您只需要将war和hpi文件复制到您的"生产"Jenkins。现在,您甚至有了一个很好的流程和QA。