2012-02-27 110 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用户具有读/写/执行权限。