请求主机的结构代码

2024-04-16 11:09:42 发布

您现在位置:Python中文网/ 问答频道 /正文

from fabric.api import env, sudo
def get_hostname():
    env.hosts = ['user@host_ip']
    env.passwords = {'user@host_ip': 'password'}
    hostname = run_cmd('hostname')
    print hostname


def run_cmd(cmd):
    return sudo(cmd)


if __name__ == '__main__':
    get_hostname()

这个代码不起作用了,它说:

No hosts found. Please specify (single) host string for connection:


Tags: runfromimportipenvcmdapihost
1条回答
网友
1楼 · 发布于 2024-04-16 11:09:42

除非您在fab参数中指定函数get_hostname,否则不会调用该函数,在if __name__ == '__main__'下调用它将不会执行您认为它会做的事情,因为fabfile不像通常的python脚本。在

你要做的是像这样调用你的fabfile:fab get_hostname run_cmd,为了得到更一致的错误,可以使用require函数,如下所示:

from fabric.api import require


def run_cmd():
    require('hosts', provided_by=[get_hostname])

相关问题 更多 >