ubuntu 安裝配置 Jenkins

一、 安裝 JDK 和 JRE

        1、首先用下面的命令檢查是否已經安裝了 java

java -version

        如果顯示如下內容說明已經安裝好了

        2、否則需執行下面的命令進行安裝 ( openjdk 即可 )

sudo apt-get install openjdk-7-jre
sudo apt-get install openjdk-7-jkd

        3、配置環境變數,將下面的內容加至檔案 /etc/profile 中

#set jdk environment
export JAVA_HOME=/usr/lib/jvm/Java-7-openjdk-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

        注:其中 JAVA_HOME 的路徑可由 whereis java 命令檢視 ( 需要找到軟連結對應的路徑 )

        4、配置好後需要用下面的命令或者重啟使其生效

source /etc/profile

二、 安裝 Jenkins

        1、執行以下命令進行安裝

wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins

        2、安裝完成後便會自動建立一個名為 jenkins 的新使用者,jenkins 日誌檔案路徑為 /var/log/jenkins/jenkins.log, 遇到問題可以在這裡檢視問題所在;檔案 etc/default/jenkins 為相關的各種配置引數,包括預設埠為8080,埠有衝突時可以在這裡以及指令碼 /etc/init.d/jenkins 中進行相應的修改;此時就可以通過 your_IP:8080 (如:192.168.54.108:8080) 的 形式來訪問Jenkins了。

        3、第一次登陸時會提示需要管理員密碼,密碼檔案的位置在 /var/lib/jenkins/secrets/initialAdminPassword ,然後根據提示安裝所需要的各種外掛,並建立 Jenkins 賬戶即可。

        4、Jenkins 版本更新比較快,需要更新時,可以用以下命令

sudo apt-get update
sudo apt-get install jenkins

三、相關配置 (ver.2.32.3)

        1、Jenkins 系統配置,”Manage Jenkins”  >> “Configure System” >> “Global properties” 下。首先可以勾選 “Environment variables” 後會有 “Add” 可以新增一些全域性的環境變數;然後 “Git plugin” 中的 user.name 和 user.email 設定成和 ~/.config 中的使用者名稱和郵件一致;另外,在 “E-mail Notification” 下可以配置郵件提醒。

        2、配置 Jenkins 相關的工具,”Manage Jenkins” >> “Global Tool Configuration”,有包括 Maven, JDK, Git, Gradle, Ant, Docker 的設定項。

        3、安全配置,”Manage Jenkins” >> “Configure Global Security”,勾選 “Enable security”,在 “Access Control” 下進行配置。其中 “Security Realm” 下選擇 “Jenkins’ own user database”,然後勾選下勾選 “Allow users to sign up” 就可以註冊使用者,並用新使用者登入;至於具體的許可權可以在 “Authorization” 下進行配置。選擇 “Project-based
Matrix Authorization Strategy”,輸入已有的使用者名稱並點選 “Add” ,然後針對不同的使用者根據情況勾選不同的許可權。

        4、實際上對於每一個 Job, 還可以單獨的進行許可權設定,進入特定的 Job, 然後點選 “Configure”,在 “General” 下勾選 “Enable project-base security” 即可進行單獨的許可權設定,當然同樣需要將已有的使用者名稱新增進來。

        5、新增 slave ,”Manage Jenkins”  >> “Manage Nodes” >> “New Node”, 輸入 Node name,選擇 “Permanent Agent” 或者 “Copy Existing Node” ( 需要有現有的 node 存在 ),然後點選 “OK” 進入具體配置頁面。其中 “# of executors” 為最大的可同時 build 的數量(根據機子效能而定);”Remote root directory” 為 slave 的工作目錄(需要注意
該路徑必須要有許可權訪問);”Launch method” 為執行方式,一般 linux 選擇 “Use slave agents via SSH” 而 windows 選擇 “Launch slave agents via Java Web Start”,這裡選擇了 via SSH,需要配置 “Host” ( 即 slave 的 IP ) 和 “Credentials” ( 即認證資訊 ),對於認證資訊可以選擇 “Username with password” 或者 “SSH Username with private
key” 的方式新增;另外可以勾選 ‘Environment variables” 和 “Tool Locations” 新增 slave 的環境變數和各種工具。 配置好 slave 後,就可以針對具體的 Job 指定到不同的 slave 上 build 了,點選具體的 Job 進入其中,在 “Configure” >> “General” 下勾選 “Restrict where this project can be run” 後將 Node name 填入 “Label Expression” 即可。

    

        ### 新版本(2.46.2)會有新的配置項“Host Key Verification Strategy”,選擇“Non verifying Verification Strategy”即可順利連線slave。

        6、注:事實上有部分配置在實際使用中並不是必須的,可以根據情況而進行相關的配置。

四、 解除安裝 Jenkins

        1、先解除安裝移除 jenkins 和依賴關係

sudo apt-get remove jenkins
sudo apt-get remove --auto-remove jenkins

        2、然後清除各種相關配置和資料

sudo apt-get purge jenkins
sudo apt-get purge --auto-remove jenkins

五、 管理 Jenkins 服務的常用命令

        1、檢視 Jenkins 的執行狀態

sudo service jenkins status

        2、啟動 Jenkins 服務

sudo service jenkins start

        3、重啟 Jenkins 服務

sudo service jenkins restart

        4、停止 Jenkins 服務

sudo service jenkins stop

六、 使用注意事項

        1、前面提到過 jenkins 安裝完成後會在 server 上建立一個名為 jenkins 的新賬戶,而所有的 job 執行在目錄 /var/lib/jenkins/workspace 下,對於需要從 github 或者 gerrit 獲取程式碼的情況,需要重新生成 public key, 並在相應的位置新增, 或者複製原 public key 至當前使用者環境。

               或者我們可以直接將 jenkins 賬戶加入到主賬戶或者root賬戶組中,這樣還可以避免一些許可權問題的出現,修改方法如下:

        a. 將 jenkins 賬戶加入到其他組(以root為例)

gpasswd -a root jenkins

        b. 修改 /etc/default/jenkins 檔案的內容

# user and group to be invoked as (default to jenkins)
#JENKINS_USER=jenkins
#JENKINS_GROUP=jenkins
JENKINS_USER=root
JENKINS_GROUP=root

        c. 重啟 jenkins 服務 

sudo service jenkins restart

        2、在建立 Job 後,往往需要其做定時的build,此時我們可以在對應 Job 的 “Configure” 中的 “Build Triggers” 下勾選 “Build periodically” 再在 “Schedule” 中進行配置。其有一定的語法,共有5個引數,引數間由空格分隔(形如:* * * * * )。其中第一個引數代表分鐘,取值範圍 0 ~ 59;第二個引數代表小時,取值範圍 0~23;第三個引數代表日,取值範圍 1~31;第四個引數為月,取值範圍 1~12,最後一個則為周幾,取值
0~7。以下列出了一些配置例項:(其中 H 的使用會自動提前一段時間,這樣可以避免 build 高併發的問題)

                0 * * * *                  代表每小時的第0分鐘 build 一次

                H/30 * * * *             代表每 30 分鐘 build 一次

                5 6 * * *                  代表每天的 6:05 build 一次 

                H 8,9 * * 1-3           代表每週一至週三的 8:00 和 9:00 都進行 build

                H (0-29)/15 * * *     代表每前半小時中每隔15分鐘 build 一次

七、 Reference

       
https://wiki.jenkins-ci.org/display/JENKINS/Installing Jenkins on Ubuntu

       
http://installion.co.uk/ubuntu/precise/universe/j/jenkins/uninstall/index.html