首页 > 解决方案 > 在 Jenkins 中通过 shell 执行命令运行 python 脚本

问题描述

Jenkins 作业已设置,以便它检查执行某些 python 代码的最新版本的 git repo。git repo 被签出到我们的 linux 实验室 pc 并在那里运行。

在脚本中,我们正在检查一些 labpc 网络接口的状态。我制作了一个小脚本,它执行以下几行,但它会抛出类似“没有文件或目录”的错误。该命令没问题,但它失败了,因为 linux env 不可见。奇怪的是,我们有 10 个测试用例,其中 6 个运行良好,有 4 个失败,而且总是失败。所有测试用例中的事件顺序完全相同......

res = subprocess.check_output(['ip', 'link', 'show', 'dev', '<interface name>'])
logger.info(res)

脚本在本地执行时有效,因此这背后存在詹金斯问题。有没有人有任何提示来解决这个问题?

标签: pythonjenkins

解决方案


通过在命令前加上“sudo”来解决问题。尽管该命令不需要 sudo 权限,但在使用 jenkins 运行时需要它。

您可以在 jenkins 中打开节点,您可以在其中对服务器执行 groovy 命令并测试它是否有效。


推荐阅读