【发布时间】:2018-07-27 00:27:17
【问题描述】:
我有一个运行 fabfile 的 python 脚本。我的问题是,每当我从脚本运行 fabfile 时,都会要求我输入密码。但是,即使我使用相同的 fab 参数,当我从命令行手动运行 fabfile 时,登录也可以使用指定的密钥正常工作。这是我的 fabfile 的内容:
[root@ip-10-10-20-82 bakery]# cat fabfile.py
from fabric.api import run
def deploy():
run('wget -P /tmp https://s3.amazonaws.com/LinuxBakery/httpd-2.2.26-1.1.amzn1.x86_64.rpm')
run('sudo yum localinstall /tmp/httpd-2.2.26-1.1.amzn1.x86_64.rpm')
这是我在命令行上成功使用的语法:
fab -u ec2-user -i id_rsa -H 10.10.15.185 deploy
这是一段 python 代码,由于某种原因提示输入密码而不是使用密钥:
import subprocess
subprocess.call(['fab', '-f', '/home/myhome/scripts/bakery/fabfile.py', '-u ec2-user', '-i', '/home/myhome/scripts/bakery/id_rsa', '-H', bakery_internalip, 'deploy'])
这是我运行它时发生的情况:
[10.10.15.185] Executing task 'deploy'
[10.10.15.185] run: wget -P /tmp https://s3.amazonaws.com/LinuxBakery/httpd-2.2.26-1.1.amzn1.x86_64.rpm
[10.10.15.185] Login password for ' ec2-user':
【问题讨论】: