CentOS 6.4上Fabric和Jenkins /bin/bash找不到可执行文件
我在工作中有一个在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实际使用的那台机器上。一旦这个问题解决了,其他的事情就都正常了。