jenkins疑難解答

一、tomcat的啓動,stratup.bat啓動時閃退
解決方案:編輯startup.bat和shutdown.bat,在最開始加入兩行代碼,配置環境變量
SET JAVA_HOME=C:\Program Files (x86)\Java\jdk1.8.0_101(jdk安裝目錄)
SET TOMCAT_HOME=C:\Program Files (x86)\Apache Software Foundation\Tomcat 8.0(Tomcat安裝目錄)

二、Maven的安裝
1)解壓安裝包
2)配置環境變量
添加MAVEN_HOME變量爲解壓的Maven的目錄
追加Path路徑變量爲%MAVEN_HOME%\bin
3)輸入mvn -v驗證是否安裝成功

三、jenkins另一種安裝方式
將下載的war包部署到servlet容器
示例:將jenkins.war包放到節點tomcat節點webapps目錄下,然後通過點擊bin目錄下startup.bat啓動tomcat
注:要更改tomcat端口號通過修改conf目錄下的主配置文件server.xml文件

四、郵件配置的error
1、535 用戶名和密碼不對
2、553 沒有設置jenkins location下系統管理員郵件地址

五、構建觸發器:
build wherever a SNAPSHOT dependency is build :當svn有修改時就構建項目
poll scm(soft config manage):指定一個定時作業表達式來定義jenkins每隔多久檢查一下源代碼倉庫的變化,如果變化,就在執行一次構建
示例:H 12,18 * * *表示每天12點和18點檢查是否source code repository是否發生變化
build periodically:此選項僅僅通知jenkins按照指定的頻率對項目進行構建,而不管是scm是否發生變化
示例:H/30 * * * *表示每30分鐘構建一次項目

六、job的名稱
不要使用中文名稱,創建Job名稱時最好有個規劃,因爲我們最後會通過正則匹配自動將Job歸類
示例: “項目前綴_說明-Job類型”這種方式,tthl_zhuangbei_auto;

七、修改jenkins存放job的位置
Jenkins存放job的默認位置爲:C:\Documents and Settings\Administrator.jenkins
設置環境變量JENKINS_HOME的值即可改變目錄,例如在D盤下建一個jenkins的目錄,修改JENKINS_HOME=d:\jenkins即可

八、修改jenkins端口
在cmd窗口通過java -jar %JENKINS_HOME%\jenkins.war –httpPort=8081在最後面修改參數就ok
如果你是通過tomcat啓動的jenkins,修改tomcat端口的方法就是進入tomcat安裝目錄下的conf目錄裏找到server.xml文件,修改裏面的port即可

九、備份和恢復jenkins
只需要備份JENKINS_HOME下的所有文件和文件夾,恢復的時候需要先停止jenkins。

十、移動,刪除或修改jobs
對於移動或刪除jobs,只需要簡單地移動或刪除%JENKINS_HOEM%\jobs目錄。
對於修改jobs的名字,只需要簡單地修改%JENKINS_HOEM%\jobs下對應job的文件夾的名字。
對於不經常使用的job,只需要對%JENKINS_HOEM%\jobs下對應的jobs的目錄zip或tar後存儲到其他的地方。

十一、可以在jenkins的url中執行一些命令來操作jenkins,如下
http://[jenkins-server]/[command] 命令可以爲:
1)exit shutdown jenkins
2)restart restart jenkins
3)reload to reload the configuration

十二、Jenkins 啓動時的命令行參數
–httpPort=HTTPPORTjenkinswebhttpsPort= HTTP_PORT,表示使用https協議。
–httpListenAddress=$HTTP_HOST,用來指定jenkins監聽的ip範圍,默認爲所有的ip都可以訪問此jenkins server。

十三、修改jenkins的timezone
如果jenkins所在的server的timezone不同於用戶的timezone,這時候需要修改jenkins的timezone,需要在jenkins啓動的時候增加下列參數-Dorg.apache.commons.jelly.tags.fmt.timeZone=TZ

十四、使startjenkins.bat隨Windows的開機自動運行
將startjenkins.bat加入到windows啓動腳本里。
1.打開組策略(命令:gpedit.msc)
2.[計算機配置] –> [Windows 設置] –> [腳本 (啓動/關機)] –> [啓動]
3.在“啓動 屬性”對話框中添加腳本名:D:\jenkins\startjenkins.bat
刪除服務:sc delete jenkins(如果不是刪除不成功,說明不是管理員身份,在開始->附件->命令行->管理員身份運行即可)
以後,每次啓動計算機,輸入http://localhost:8081即可訪問jenkins主頁。

startjenkins.bat
set JENKINS_HOME=D:\Jenkins_WorkSpace
cd /d %JENKINS_HOME%
java -jar jenkins.war --httpPort=8081

注:要讓.bat文件運行後cmd窗口不關閉的三種方法:
方法1:假設你的bat名字叫aaa.bat你可以新開一個bat,內容是start aaa.bat,然後這個新的bat是不會自動關閉的
方法2:要執行bat後不退出,可以在bat裏的最後添加pause命令,暫停等你^^(不過再按鍵盤就沒了)
方法3(推薦) :只要在bat文件最後運行個cmd.exe就行了。。。

十五、jenkins內置的環境變量

BUILD_NUMBER, 唯一標識一次build,例如23;
BUILD_ID,基本上等同於BUILD_NUMBER,但是是字符串,例如2011-11-15_16-06-21;
JOB_NAME, job的名字,例如JavaHelloWorld;
BUILD_TAG, 作用同BUILD_ID,BUILD_NUMBER,用來全局地唯一標識一此build,例如jenkins-JavaHelloWorld-23;
EXECUTOR_NUMBER, 例如0;
NODE_NAME,slave的名字,例如MyServer01;
NODE_LABELS,slave的label,標識slave的用處,例如JavaHelloWorld MyServer01;
JAVA_HOME, java的home目錄,例如C:\Program Files (x86)\Java\jdk1.7.0_01;
WORKSPACE,job的當前工作目錄,例如c:\jenkins\workspace\JavaHelloWorld;
HUDSON_URL = JENKINS_URL, jenkins的url,例如http://localhost:8000/
BUILD_URL,build的url 例如http://localhost:8000/job/JavaHelloWorld/23/
JOB_URL, job的url,例如http://localhost:8000/job/JavaHelloWorld/
SVN_REVISION,svn 的revison;
SVN_URL:check out到工作目錄的svn的url

十五、cmd啓動tomcat
進入tomcat安裝目錄下的bin目錄(binURL)
binURL>server.bat install tomcat
binURL>net start tomcat

十六、slave配置的好的建議
1、每個slave的用戶jenkins,所有的機器使用相同的UID和GID,使得slave的管理更加簡單;
2、每個機器上jenkins用戶的home目錄都相同/home/jenkins,擁有相同的目錄結構使得維護更簡單;
3、所有的slave運行sshd,windows運行cygwin,sshd;
4、所有的slave安裝ntp client,用來與相同的ntp server同步;
5、使用腳本sh來自動配置slave的環境,例如創建jenkins用戶,安裝sshd,安裝java,ant,maven等
6、使用腳本來啓動slave,保證slave總是運行在相同的參數下:
示例:

#!/bin/bash
JAVA_HOME=/opt/SUN/yourJDKVision
PATH=$PATH:$JAVA_HOME/bin
export PATH
java -jar /var/jenkins/bin/slave.jar

十七、Jenkins插件

  • Perforce Plugin.再說jenkins的管理頁面的插件下面安裝perforce插件,然後重啓jenkins
  • cmakebuilder Plugin :支持cmake的構建
  • Job Artifact Plugin :拷貝當前依賴的組件
  • MSBuild Plugin :使用MSBuild來構建.NET工程
  • NAnt Plugin :用來支持UAnt
  • Python Plugin :用來支持python
  • Rake plugin :用來支持rake構建
  • SCons plugin :用來支持Scons構建
  • Xconde Plugin :用來支持MAC。iphone的構建
  • Simple Theme : 修改jenkins界面

十八、Jenkins忘記管理員密碼
找到config.xml文件
刪除下面部分,重新登錄

<useSecurity>true</useSecurity>
<authorizationStategy class="hudson.sucrity.FullControlOnceLoggedInAuthorizationStrategy">
    ......
</authorizationStategy>
<securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
   <disableSignup>false</disableSignup>
    .. 
</securityRealm>

十九、插件升級站點
系統管理->插件管理->高級->升級站點
https://wiki.jenkins-ci.org/display/JENKINS/Plugins

二十、郵件通知模板
參考網站:http://www.cppblog.com/fwxjj/archive/2012/10/04/192809.html(郵件通知令牌意義)
Default Subject:
構建通知:BUILDSTATUS {PROJECT_NAME} - Build # ${BUILD_NUMBER} !

Default Content:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次構建日誌</title>
</head>

<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
    offset="0">
    <table width="95%" cellpadding="0" cellspacing="0"
        style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
        <tr>
            <td>(本郵件是程序自動下發的,請勿回覆!)</td>
        </tr>
        <tr>
            <td><h2>
                    <font color="#0000FF">構建結果 - ${BUILD_STATUS}</font>
                </h2></td>
        </tr>
        <tr>
            <td><br />
            <b><font color="#0B610B">構建信息</font></b>
            <hr size="2" width="100%" align="center" /></td>
        </tr>
        <tr>
            <td>
                <ul>
                    <li>項目名稱&nbsp;:&nbsp;${PROJECT_NAME}</li>
                    <li>構建編號&nbsp;:&nbsp;第${BUILD_NUMBER}次構建</li>
                    <li>SVN&nbsp;版本:&nbsp;${SVN_REVISION}</li>
                    <li>觸發原因:&nbsp;${CAUSE}</li>
                    <li>構建日誌:&nbsp;<a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
                    <li>構建&nbsp;&nbsp;Url&nbsp;:&nbsp;<a href="${BUILD_URL}">${BUILD_URL}</a></li>
                    <li>工作目錄&nbsp;:&nbsp;<a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
                    <li>項目&nbsp;&nbsp;Url&nbsp;:&nbsp;<a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
                </ul>
            </td>
        </tr>
        <tr>
            <td><b><font color="#0B610B">Changes Since Last
                        Successful Build:</font></b>
            <hr size="2" width="100%" align="center" /></td>
        </tr>
        <tr>
            <td>
                <ul>
                    <li>歷史變更記錄 : <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a></li>
                </ul> ${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format="Changes for Build #%n:<br />%c<br />",showPaths=true,changesFormat="<pre>[%a]<br />%m</pre>",pathFormat="&nbsp;&nbsp;&nbsp;&nbsp;%p"}
            </td>
        </tr>
        <tr>
            <td><b><font color="#0B610B">Failed Test Results</font></b>
            <hr size="2" width="100%" align="center" /></td>
        </tr>
        <tr>
            <td><pre
                    style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">$FAILED_TESTS</pre>
                <br /></td>
        </tr>
        <tr>
            <td><b><font color="#0B610B">構建日誌 (最後 100行):</font></b>
            <hr size="2" width="100%" align="center" /></td>
        </tr>
        <!-- <tr>
            <td>Test Logs (if test has ran): <a
                href="${PROJECT_URL}ws/TestResult/archive_logs/Log-Build-${BUILD_NUMBER}.zip">${PROJECT_URL}/ws/TestResult/archive_logs/Log-Build-${BUILD_NUMBER}.zip</a>
                <br />
            <br />
            </td>
        </tr> -->
        <tr>
            <td><textarea cols="80" rows="30" readonly="readonly"
                    style="font-family: Courier New">${BUILD_LOG, maxLines=100}</textarea>
            </td>
        </tr>
    </table>
</body>
</html>

二十一、獲取svn報錯:
Jenkins org.tmatesoft.svn.core.SVNException: svn: E175002: Processing REPORT request response failed
可能問題:訪問的svn地址爲公司的內網地址
解決方法:將svn地址改爲外網ip地址

二十二、執行.sh時 Permission denied
如果你是root登陸的話(不是的話,切換到root用戶,對*.sh賦可執行的權限)
chmod 777 *.sh
or
chmod +x *.sh

二十三、多個有依賴關係job的執行

二十四、Jenkins cannot restart itself as currently configured
解決辦法:Go to Manage Jenkins links.
Find the option “Install as Windows service”. Click on install.
Now (jenkins_url)/restart option will work. I faced this same issue now
(系統管理->設置爲Windows服務)

二十五、插件安裝失敗
一、在提示下載錯誤的地方把網站粘貼複製出來,進去那個網站,然後下載.hpi文件
二、在插件管理->高級裏手動安裝
如還是安裝失敗,執行步驟三
三、關閉jenkins,然後找到jenkins目錄下的plugin目錄下剛纔安裝失敗的.hpi,刪除,直接將下載的.hpi文件放進去,重啓jenkins即可

二十六、多個job之間傳遞參數
參考網址:http://blog.csdn.net/itfootball/article/details/45060331

二十七、Pipeline多個job之間的串聯
綠色是表示執行通過的,黃色是正在執行的,藍色是未執行的,還有紅色是執行失敗的。

二十八、Windows環境變量的引用格式爲%environment_var%,linux爲$environment_var

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章