CentOS 6.4上Fabric和Jenkins /bin/bash找不到可执行文件

0 投票
1 回答
549 浏览
提问于 2025-04-17 23:01

我在工作中有一个在CentOS 6上运行的Jenkins安装。我创建了一个任务,用来执行一个shell命令,内容是:

$ fab deploy

这个fabric脚本会连接到一个远程的CentOS主机,并运行一些程序,比如:

/usr/local/bin/python2.7 setup.py develop

我遇到了以下错误:

/bin/bash: /usr/local/bin/python2.7: No such file or directory

奇怪的是,当我在本地机器(Mac OS X)上运行这个脚本时,完全没有问题。

我以root身份连接到远程CentOS服务器,使用的是:

env.user = 'root'
env.hosts = [REMOTE_HOST]

经过一些研究,我尝试了:

env.bash = '/bin/sh -c'

但还是出现同样的错误。我还尝试把命令用bash包裹起来,像这样:

run("/bin/bash -l -c '/usr/local/bin/python2.7 setup.py develop'")

但是当Jenkins任务运行时,我还是得到了同样的错误。python的可执行文件是存在的!而且从本地运行fab deploy命令是可以的,只是在Jenkins上不行。

1 个回答

0

原来是VPN访问的问题。我的本地电脑无法通过代理服务器,所以当我设置python2.7的时候,实际上是在代理服务器上设置的,而不是在Jenkins实际使用的那台机器上。一旦这个问题解决了,其他的事情就都正常了。

撰写回答