来自 Jenkins 执行 Shell 的命令未找到

6

您好,Jenkins和AWS专家们:

我已经在网上寻找了可能的解决方案,但是没有找到我的问题的解决方案。我在测试项目的Jenkins执行shell下发出了“eb --version”命令,但在执行过程中出现“eb:命令未找到”的错误。

奇怪的是,如果我在Jenkins框架上通过CLI发出相同的命令,我会得到一个良好的响应。请问有什么建议可以修复这个问题吗?谢谢。

2个回答

13

您的Jenkins设置与您登录的用户路径不同。

有两种解决方案:

  1. 在PATH环境变量中添加可执行文件的路径。使用where eb查找正确的路径。然后在Jenkins中,单击 管理Jenkins -> 配置系统,全局属性。检查环境变量。将名称设置为PATH。将设置为$PATH:/path/to/eb。然后重新启动Jenkins。

  2. 使用完全限定路径调用eb命令。

编辑:添加了更新Jenkins路径的步骤。


感谢您的输入,Rodrigo。但是我的Jenkins在Linux环境下运行。我不太确定发生了什么变化,但之前当我从Jenkins执行shell时发出“eb --version”命令时,它会正确地回应。我希望能够在Jenkins执行shell上执行“eb --version”命令(不需要绝对路径格式),就像在Linux系统上执行它一样。 - Seth Sam
是的,我明白。请尝试上述第二种方法。在您的登录 shell 中键入“where eb”,然后传递完整路径以确认。如果这样可以运行,那么您可以确定这是一个路径问题。然后您可以在 Jenkins 中修复路径。我会尝试找到适用于 Linux 的 Jenkins 路径更改方法。 - Rodrigo Murillo
嗨,Rodrigo,当在Linux shell上发出“eb --version”命令时,它已经可以工作了,我遇到的问题是在Jenkins UI(Pre Build Step Execute Shell)中发出相同命令时无法正常工作。 - Seth Sam
是的,我理解这个问题。我的解决方案将解决这个问题,使您可以像在登录 shell 中一样在 Jenkins shell 中运行 eb 命令。请遵循建议并告诉我。 - Rodrigo Murillo
我忘记刷新页面了,在Linux上执行“which eb”命令时,eb路径为“/usr/local/bin/eb”。我尝试了以下操作并重新启动了Jenkins,但仍然遇到相同的问题。名称:PATH 值:$PATH:/usr/local/bin/eb - Seth Sam
显示剩余13条评论

0

现在已经修复,需要创建一个属性文件,该文件基本上是/var/lib/jenkins/.bash_profile文件的副本,其中包含正确的路径,并将其添加到Jenkins设置中。这样可以获取所需的路径。创建属性文件后,您需要在Jenkins-Configure部分设置它,在Prepare jobs environment上放置一个勾选,然后在Properties File Path上设置属性文件的完整路径(/var/lib/jenkins/environment_variables.properties),并重新启动Jenkins。


在 Jenkins 的设置中,文件添加在哪里? - fuzzi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接