下面的结构脚本是我需要使用的开源代码,不幸的是我对这个东西并不熟悉。结构文件开头为:旁路错误
from fabric.api import *
import time
env.user = 'aegir'
env.shell = '/bin/bash -c'
# Download and import a platform using Drush Make
def build_platform(site, profile, webserver, dbserver, makefile, build):
print "===> Building the platform..."
run("drush make %s /var/aegir/platforms/%s" % (makefile, build))
当Git push触发新构建时,构造文件由Jenkins服务器运行。当执行这个文件时,第一个远程动作(最后一行)会导致以下错误。
/usr/lib/python2.6/getpass.py:83: GetPassWarning: Can not control echo on the terminal.
passwd = fallback_getpass(prompt, stream)
Warning: Password input may be echoed.
Password for [email protected]: ===> Building the platform...
[o1.sub.aegir.local] run: drush make https://raw.github.com/mig5/builds/master/mig5_platform.build /var/aegir/platforms/20121011010955
Traceback (most recent call last):
File "/usr/lib/pymodules/python2.6/fabric/main.py", line 435, in main
commands[name](*args, **kwargs)
File "/usr/local/bin/fabfile.py", line 11, in build_platform
run("drush make %s /var/aegir/platforms/%s" % (makefile, build))
File "/usr/lib/pymodules/python2.6/fabric/network.py", line 390, in host_prompting_wrapper
return func(*args, **kwargs)
File "/usr/lib/pymodules/python2.6/fabric/operations.py", line 414, in run
channel = connections[env.host_string]._transport.open_session()
File "/usr/lib/pymodules/python2.6/fabric/network.py", line 65, in __getitem__
self[real_key] = connect(user, host, port)
File "/usr/lib/pymodules/python2.6/fabric/network.py", line 219, in connect
password = prompt_for_password(password, text)
File "/usr/lib/pymodules/python2.6/fabric/network.py", line 279, in prompt_for_password
new_password = getpass.getpass(password_prompt)
File "/usr/lib/python2.6/getpass.py", line 83, in unix_getpass
passwd = fallback_getpass(prompt, stream)
File "/usr/lib/python2.6/getpass.py", line 118, in fallback_getpass
return _raw_input(prompt, stream)
File "/usr/lib/python2.6/getpass.py", line 135, in _raw_input
raise EOFError
EOFError
Build step 'Execute shell' marked build as failure
Finished: FAILURE
我需要为aegir用户指定一个密码吗?我试图在env.user = 'aegir'
下包含env.password = ''
(我在远程计算机上删除了Aegir的用户密码passwd --delete aegir
),但这并没有解决任何问题。
好的,那确实是问题所在。愚蠢的我没有尝试。谢谢! – jroeleveld