我正在运行一个来自Jenkins的python脚本,它正在运行一个shell脚本,该脚本因Permission denied
错误而失败,我尝试以下方法调试问题...
1.我正在打印运行Jenkins作业的userid
并且它是正确的用户
2.我在Jenkins节点上使用相同的用户ID手动运行pre_audit
命令,它运行正常,没有权限被拒绝错误
这个错误只发生在Jenkins运行时,为什么会发生这种情况一无所知?关于为什么会发生这种情况的指示或者如果使用具有权限的正确用户,如何进一步调试?
2018-05-04 22:09:39 script.py submit_to_techteamweb 469 INFO : userid:username
2018-05-04 22:09:39 script.py submit_to_techteamweb 471 INFO : ./pre_audit --version 9.130.63.0.32.6.27 --chip 4364 --file /Users/username/FWintegration/techteam-automation/integration/release_notes.txt
2018-05-04 22:09:39 script.py submit_to_techteamweb 482 INFO : Printing error...
2018-05-04 22:09:39 script.py submit_to_techteamweb 483 INFO : Traceback (most recent call last):
File "./pre_audit", line 46, in <module>
os.mkdir(submission_directory)
OSError: [Errno 13] Permission denied: '/SWE/Teams/techteam/Firmware/submissions/4364/9.130.63.0.32.6.27
答案 0 :(得分:1)
从jenkins运行shell脚本需要适当的执行权限。在执行script.sh
运行以下命令之前的python脚本中:
sh "chmod 755 script.sh"
答案 1 :(得分:0)
机器上是否启用了SELinux?可能是Jenkins服务受限制(应该是)在$WORKDIR
之外编写文件。在工作目录之外创建文件是Jenkins中的Bad Idea™。