Jenkins 踩過的坑之再總結


在安裝完jenkins后,linux中默認使用的jenkins這個用戶,這時在構建完項目后我們需要執行一些shell命令時會出現沒有權限的情況,導致構建失敗,這里我們需要給jenkins用戶相應的權限以執行相應的命令。


如在構建完項目后我們需要修改項目文件的屬性:

chown -R www /home/wwwroot/www.test.com/

如果是jenkins用戶,這時就是出現沒有權限執行chown命令的情況。

為了解決這個問題,我們采用的是更改jenkins默認用戶的方式來實現相應命令的執行。

1、修改jenkins執行用戶

vi /etc/sysconfig/jenkins

修改JENKINS_USER值:

## Type:        string

## Default:     "jenkins"

## ServiceRestart: jenkins

#

# Unix user account that runs the Jenkins daemon

# Be careful when you change this, as you need to update

# permissions of $JENKINS_HOME and /var/log/jenkins.

#

JENKINS_USER="root"

這里我們把JENKINS_USER值改為root用戶。

注意:這里不一定就要修改為root用戶,可以根據實際情況分配一個可執行相應命令的用戶即可。

2、修改目錄的相應權限:

sudo chown -R root /var/log/jenkins

sudo chgrp -R root /var/log/jenkins

sudo chown -R root /var/lib/jenkins 

sudo chgrp -R root /var/lib/jenkins

sudo chown -R root /var/cache/jenkins

sudo chgrp -R root /var/cache/jenkins

修改完成后,當我們再次構建項目時就會發現相應命令被執行了。

使用service jenkins restart 或瀏覽器  xxxxxx:8080/restart

參考另一篇文章 刪除 ~/.subversion 目錄,並重新輸入credentials ,如出現 authentication cancelled 需要刪除已經拉取的目錄

 

 

1.自定義項目路徑:

進入job-配置-高級項目選項-選擇使用“自定義的工作空間”,配置后項目不用放到jenkins默認的workspace里了。

勾選 Pass all job parameters as System properties

Root Build script 中 填入${workspace}/自定義路徑

2.更改整個jenkins的項目空間

以下為轉載內容-未經過嘗試

 

1. 先設置環境變量,變量名為JENKINS_HOME, 值為你想設置的目錄 (一般情況下這樣就夠了,如果還是不行,就進行第二步)
2. jenkins.war -> WEB-INF -> web.xml,修改此文件 (大概會在165行):4 P; j$ q  V  d; f$ D5 g6 n8 ]0 c
  <!-- if specified, this value is used as the Hudson home directory -->
  <env-entry>
    <env-entry-name>HUDSON_HOME</env-entry-name>; G6 L! Y. `. G" Z2 j8 ]$ G
    <env-entry-type>java.lang.String</env-entry-type>% X. i" I9 ^) @2 r/ }" C
    <env-entry-value></env-entry-value>
  </env-entry>5 e! b) u: C9 Q
4 U9 j3 B. Q( n% h9 f* l
在標簽<env-entry-value></env-entry-value>中添加你的路徑,就ok了。。。

 

以下為轉載:

1. Failed to connect to repository

為job設置git repository的時候報Failed to connect to repository
解決辦法:本地安裝git客戶端,或者�在Jenkins全局系統設置那里指定git的執行路徑。

2. No JDK named ?null? found

任務執行失敗的console里面有這樣一句話:No JDK named ?null? found
解決辦法:在Jenkins系統設置中指定有效JAVA_HOME路徑

3. node: command not found

針對command not found 我主要總結兩種解決方案,對於網上說的那些方法我沒看懂

  • 方案一:如果你使用service jenkins start啟動了jenkins進程,那么久有可能出現Jenkins運行環境跟用戶不同。最簡單粗暴的方法是使用 java -jar /usr/lib/jenkins/kenkins.war
  • �方案二:把要用的命令創建一個快捷方式到/usr/bin,如 ln -s /usr/local/bin/node /usr/bin/,這樣在Jenkins shell中就能用到node命令了。當然如果是node命令找不到的話可以直接使用Nodejs Plugin解決

4. 如何設置源碼庫瀏覽器

在Jenkins使用Git SCM的時候有一項源碼庫瀏覽器的設置,起初不知道有何用,只是看了說明大概知道是會對每次build生成changes,然后並沒有告訴怎么設置,選擇一種瀏覽器后要填一個URL,然后就各種百度谷歌沒找到答案。最后自己隨便填了一個,build了一下,點擊changes里面的鏈接,報404,看了一下URL的生成規則,才知道怎么設置。
對於githubweb的URL應該填https://github.com/�your_name/your_repo_name/

5. 單獨發送郵件給對構建造成不良影響的責任人

 
 

勾選了這個選項之后沒什么反應,如果用的是git源碼庫,可以在系統設置中勾選自動創建提交人

6. 設置完權限之后無法登錄怎么辦

sudo vi /var/lib/jenkins/config.xml
將<useSecurity>true</useSecurity>改為false
重啟Jenkins,重新設置權限

7. 為Jenkins配ssh

可以直接將你的密鑰放到/var/lib/jenkins/.ssh/下
也可以使用ssh的插件完成

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM