Jenkins插件源使用中國鏡像中心的最新方法

  • 2020 年 2 月 26 日
  • 筆記

各位,Jenkins 在第一次安裝啟動以及後續插件的安裝更新時都非常的慢,之前社區推出的中國鏡像中心也還需要若干個設置步驟,現在在推薦的一個項目不需要做任何設置就可以使用中國鏡像源頭。歡迎大家試用,提出回饋意見。https://github.com/jenkins-zh/docker-zh Jenkins中文社區

先看下配置後下載插件的效果吧(部分失敗是我環境插件版本問題可忽略)



項目分析

這段Dockerfile中可以得知如何進行配置。例如第6行告訴我們要在Jenkins的插件管理更新源改成:

https://updates.jenkins-zh.cn/update-center.json。

FROM jenkins/jenkins:lts  ENV JENKINS_UC https://updates.jenkins-zh.cn  ENV JENKINS_UC_DOWNLOAD https://mirrors.tuna.tsinghua.edu.cn/jenkins  ENV JENKINS_OPTS="-Dhudson.model.UpdateCenter.updateCenterUrl=https://updates.jenkins-zh.cn/update-center.json"  ENV JENKINS_OPTS="-Djenkins.install.runSetupWizard=false"    COPY init.groovy /usr/share/jenkins/ref/init.groovy.d/init.groovy  COPY hudson.model.UpdateCenter.xml /usr/share/jenkins/ref/hudson.model.UpdateCenter.xml  COPY mirror-adapter.crt /usr/share/jenkins/ref/mirror-adapter.crt

第8、9行將更新中心的配置和證書複製到了$JENKINS_HOME目錄。(我們在實際的操作中可以不替換第8行的xml文件,因為在web端配置了更新源後會自動的生成這個配置文件)

第7行運行了一個Jenkins初始化腳本,一起看下文件內容。很明顯15、16行是將證書文件移動到了 /war/WEB-INF/update-center-rootCAs/目錄下。

import java.io.File;  import java.io.FileOutputStream;  import java.io.InputStream;  import java.net.URL;  import hudson.init.InitMilestone;  import jenkins.model.Jenkins;    Thread.start {    while(true) {      Jenkins instance = Jenkins.getInstance();      InitMilestone initLevel = instance.getInitLevel();      Thread.sleep(1500L);      println "Jenkins not ready when handle init config..."      if (initLevel >= InitMilestone.PLUGINS_STARTED) {        InputStream input = new FileInputStream("/usr/share/jenkins/ref/mirror-adapter.crt")        FileOutputStream out = new FileOutputStream(System.getenv("JENKINS_HOME") +  "/war/WEB-INF/update-center-rootCAs/mirror-adapter.crt");        byte[] buf = new byte[1024];        int count = -1;          while((count = input.read(buf)) > 0) {          out.write(buf, 0, count);        }        println "Jenkins init ready..."        break      }    }  }

配置步驟

項目文檔中有說明,如果你是第一次安裝Jenkins(之前沒有部署)的同學可以直接下載Jenkins中國訂製版本,如果之前已經部署了Jenkins,可以參考如下步驟配置。

步驟1: 修改證書文件

獲取證書文件

#進入證書目錄  cd $JENKINS_HOME/war/WEB-INF/update-center-rootCAs    #清理當前證書  rm -fr  jenkins-update-center-root-ca  jenkins-update-center-root-ca.txt    # 複製新證書文件  curl 'https://raw.githubusercontent.com/jenkins-zh/docker-zh/master/mirror-adapter.crt' -o $JENKINS_HOME/war/WEB-INF/update-center-rootCAs/mirror-adapter.crt

步驟2: 更改更新源地址

Tags: