站點設置
剛搭建好 Jenkins 環境,你還需要做一些簡單設置,讓我們的 Jenkins 看起來是這么一回事,特別是你要用於生產環境的時候。首先就是域名配置,如果你為 Jenkins 服務分配了一個域名,通過 Nginx 反向代理的方式來訪問 Jenkins 服務的話,當你訪問 Jenkins 的【系統管理】界面時就會看到如下警告,提示反向代理設置有誤,當前安裝的下列組件已有警告發布:
我們需要去到【系統配置】里面做下設置,將 Jenkins URL 由之前默認的 IP 修改成域名:
還是在 Jenkins 的【系統管理】面板中,點擊【配置顯示哪些警告】,或者去到【全局安全配置】設置里面,找到【隱藏的安全警告】這個地方,在【安全警告...】里面將這些警告隱藏掉:
對於安全警告最好的做法是升級 Jenkins 版本,但是新版 Jenkins 界面管理差異較大,我們暫時就先將這些警告隱藏掉吧,玩透了 Jenkins 后面我們就可以使用新版的 Jenkins。
工具配置
我們利用 Jenkins 構建我們的項目時可能還需要一些其他工具,例如構建 Java 項目需要 JDK,Ant 管理的項目需要 Ant 工具,Maven 管理的項目需要 Maven 工具,Gradle 管理的項目需要 Gradle,nodeJs 項目需要 Node 和 Npm 等。我們要先將這些需要的工具下載離線安裝包,解壓到 Jenkins 可以訪問的目錄,特別強調下,不推薦采用系統全局安裝我們需要的工具,否則某些項目需要不同的工具版本,那會搞得比較麻煩。采用離線安裝包放在不同的目錄,對於工具版本的切換非常方便。另外對於 Maven 或者 Gradle 項目,推薦使用 Maven Wrapper 或者 Gradle Wrapper,這樣就可以讓項目自己決定使用什么版本的工具。
Jenkins 默認運行環境是 OpenJDK,如果我們的項目構建需要用 OracleJDK,那我們就去 Oracle 官網下載具體的 JDK 版本。例如,我這里下載了一個 OracleJDK 1.8.0_241,把它放在了 /var/jenkins_home/software/jdk1.8.0_241
目錄,還准備了一個 Maven,在 /var/jenkins_home/software/apache-maven-3.6.3
目錄。
如果你不想自己去下載離線包安裝,也不想在系統里面全局安裝這些工具,還可以選擇去到 Jenkins 的【系統管理】中的【全局工具配置】里面,這個界面可以設置需要的軟件,目前支持配置安裝 JDK、Git、Gradle、Ant、Maven 等工具。例如我這里配置了一個 JDK 的安裝,點擊【新增 JDK 】按鈕,填寫好 JDK 別名,選擇好 JDK 版本,目前支持的 JDK 版本從 1.4 到 JDK 9 都有,我這里選最新的一個 JDK 8,使用 JDK 需要同意 Oracle 的許可協議,同意許可協議要求登錄 Oracle 賬號,目前在 Oracle 官網下載 JDK 也都是需要登錄的,沒有 Oracle 賬號就去注冊一個,有賬號就直接登錄,Jenkins 也集成了登錄功能。
【全局工具配置】里面可以支持添加以下工具:
添加一個 JDK,選擇 JDK 8:
登錄 Oracle 賬號,同意 JDK 的許可協議:
環境變量
通過【全局工具配置】添加的工具可以在 Jenkins 的任務里面直接使用,不用專門設置環境變量。如果是自己通過離線包解壓的方式安裝的工具,為了讓 Jenkins 能夠知道我們的工具在哪里,這就需要用到環境變量。還是在 Jenkins【系統配置】里面的【全局屬性】下面,有個【環境變量】復選框,勾選上,增加環境變量鍵值對,例如我這里就設置了 JDK 和 Maven 的環境變量:
在進行 Maven 構建打包的時候就可以使用 $MAVEN_HOME/bin/mvn clean package
進行 Maven 打包,也可以用 export
命令臨時調整環境變量:
[jenkins@asus-centos ~]$ export MAVEN_HOME=/var/jenkins_home/software/apache-maven-3.6.3
[jenkins@asus-centos ~]$ $MAVEN_HOME/bin/mvn -version
注意事項
在 Jenkins 上用到的工具可以是 【全局工具配置】或者自己離線安裝然后配置環境變量,但是這兩種方式請二選一,如果你既設置了【全局工具配置】又自己添加了環境變量,可能會產生奇怪問題。
我們的 Maven 和 Gradle 的設置訪問一些私有制品倉庫時需要配置賬號密碼,當在 Jenkins 節點上執行打包時 Jenkins 會在配置該節點的系統賬號下的 .m2
或者 .gradle
目錄去尋找,所以也需要將 Jenkins 主節點的 Maven settings.xml
或者 Gradle init.gradle
配置文件弄一份到其他節點的用戶目錄下的 .m2
或者 .gradle
目錄中。