2012-02-27 59 views
3

我已經在Linux上安裝了Jenkins,而我對這兩者都是新手。我使用自定義工作空間/ root/xxxx(目錄結構已經就位)配置了一個作業。它給了我下面的錯誤:更改jenkins在linux中的工作區

Building in workspace /root/bhanu 
java.io.IOException: Failed to mkdirs: /root/bhanu 
at hudson.FilePath.mkdirs(FilePath.java:847) 

另一個問題:在執行複製命令時,執行shell生成步驟它給了我「權限被拒絕」的錯誤。從控制檯輸出中,copy命令可以正常工作。以下是錯誤:

+ cp /home/user1/victor.war /root/apache-tomcat-6.0.29/webapps/ 
cp: accessing '/root/apache-tomcat-6.0.29/webapps/': Permission denied 

當我嘗試設置在shell腳本的權限詹金斯它給了我「權限被拒絕」的錯誤:

+ chmod a+rwx /root/apache-tomcat-6.0.29/webapps/ 
chmod: cannot access '/root/apache-tomcat-6.0.29/webapps/': Permission denied 
+1

這很可能是因爲jenkins默認在大多數發行版上以用戶'jenkins'運行,並且該用戶對'/ root'沒有寫入權限 - 與'chmod'相同。我建議從官方存儲庫安裝jenkins並使用默認的用戶名。此外,你應該在'_srv/jenkins/workspace'這樣的更多的standard_ location中使用工作空間。在創建後運行chmod作爲'root'(例如'sudo chmod ...' – Kimvais 2012-02-27 07:03:07

+0

我從root安裝了jenkins only.can我們知道從哪個用戶安裝了jenkins – vinod 2012-02-27 07:13:03

+0

當我在jenkins中放置sudo chmod時,它給出了一個錯誤sudo:對不起,你必須有一個tty來運行sudo – vinod 2012-02-27 07:18:37

回答

5

嘗試

ps aux |grep jenkins 

看什麼用戶的過程。在Linux上,jenkins使用JENKINS_USER變量來定義它應該運行的用戶。對於標準的Ubuntu軟件包安裝,/etc/default/jenkins中的配置文件指定JENKINS_USER變量中的用戶。

在同一個配置文件中,您還可以使用JENKINS_HOME指定默認工作空間位置。確保您擁有您在JENKINS_USER中指定的用戶以讓Jenkins訪問文件。

對於從節點,請在管理Jenkins>管理節點>>配置>遠程FS根目錄下的從屬配置中的從屬機器上指定默認工作空間。同樣,這應該對JENKINS_USER用戶具有讀/寫/執行權限。

相關問題