在部署Python应用程序时,Windows上的Jenkins卡在Fabric远程命令上

时间:2015-08-13 14:44:41

标签: python windows ssh jenkins fabric

我的Django应用程序的这个Jenkins构建配置在"执行Windows批处理命令"字段:

// Code is downloaded using Git plugin 
virtualenv data/.venv
call data/.venv/Scripts/activate.bat
pip install -r requirements/local.txt

cd src/
python .\manage.py test

cd ..
fabric dev deploy // Build job get stuck here

除最后一步外,所有步骤都正常。 Jenkins在第一次尝试连接到远程服务器时遇到困难。在"控制台输出"是旋转器继续旋转,我需要手动杀死构建。

当我从CLI手动运行Fabric任务时,它可以工作。我读到了Jenkins + known_hosts的一些问题,所以我在fabfile中尝试了env.reject_unknown_hosts = True以查看是否有"添加到授权密钥"问题

Fabfile很标准,没什么特别的:

@task
def dev():
    env.user = "..."
    env.hosts = "..."
    env.key_filename = "..."
    nv.reject_unknown_hosts = True


@task
def deploy():
    local("python src/manage.py check") # <---- OK, output is in Jenkins

    run('git reset --hard') # <---- Jenkins will freeze
    run('git pull --no-edit origin master')

    # etc ....

    print("Done.")

1 个答案:

答案 0 :(得分:0)

这些需要密码,这个过程可能会被问到用户的密码。

--no-pty添加到命令中,以确保它不会阻止并报告错误。 它是基于您的特定远程/ ssh / tty设置解决的。