Fabric2-如何获取sudo的密码

时间:2018-07-19 18:28:23

标签: python paramiko invoke fabric

我正在运行一个fabfile,其中包含以下内容:

def stop_service(service_name):
    execute_sudo_command(c,"service %s stop" % service_name)

@task
def execute_sudo_command(c,command):
    c.sudo(command)

我运行fabfile,如“ fab --- sudo-password任务提示”。

运行此命令时,系统会提示我输入sudo密码,然后输入该密码。问题是,当它实际运行时,我总是得到:

[sudo]密码:对不起,请重试。

如果我直接进入该服务器并输入sudo su,则输入相同的密码即可。

我还修改了任务以尝试以下操作:

@task
def execute_sudo_command(c,command):
    c.run('sudo ' + command)

我以相同的方式运行fabfile,并输入相同的sudo密码。

我得到:

sudo:不存在tty且未指定AskPass程序

如果我执行像ls这样的非sudo命令,它会正常工作:

@task
def execute_sudo_command(c,command):
    c.run('ls -l')

total 4
drwxr-xr-x 2 buser users 4096 Mar 13  2017 bin/

我不确定这是否相关,但这是我进行连接的方式:

for host in ('buser@10.x.x.xx:22','buser@10.x.x.xx:22'):
    c = Connection(host, connect_kwargs={'key_filename': 'C:/Users/buser/openssh'})

0 个答案:

没有答案