我有几个shell命令需要在构建准备就绪时执行。在jenkins中,我创建了一个带有execute shell选项的freestyle项目,如下所示:
# !/bin/sh
cd /path to kafka folder
bin/zookeeper-server-start.sh config/zookeeper.properties &
bin/kafka-server-start.sh config/server.properties &
cd /path to elasticsearch
bin/elasticsearch
我可以从本地文件执行这个shell命令,但不能通过jenkins执行。
以下是我在jenkins中看到的控制台输出:
/Users/Shared/Jenkins/tmp/hudson2342342342342357656.sh: line 2: cd: /path to kafka folder: Not a directory
Build step 'Execute shell' marked build as failure
Finished: FAILURE
有什么能帮我解决的吗?谢谢。
2条答案
按热度按时间zdwk9cvp1#
这是一个权限问题。请检查您的jenkins用户是否有足够的权限运行此shell命令
k4ymrczo2#
找出问题的最佳方法(例如权限问题;文件夹不存在;等等),这样做:
登录执行此作业的从属节点(如果没有定义,则可能是jenkins服务器本身(“master”)
如果在“master”上:成为jenkins运行的用户(很可能是“jenkins”):
sudo su - jenkins
(如果您有sudo/root访问权限),或者su - jenkins
(如果你知道Jenkins的密码)如果作业在另一个从属服务器上运行,请找出jenkins服务器连接的用户。成为从属节点上的用户。
cd /path/to/workspace
(通过查看作业运行的控制台,可以找到作业的工作区)现在从shell中运行您的命令,因为它们在构建步骤中-它们失败的原因可能会变得更加明显。