要求主机的结构代码

时间:2012-01-31 12:32:22

标签: python django fabric

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()

此代码无法正常说:

  

找不到主机。请指定(单个)主机字符串以进行连接:

1 个答案:

答案 0 :(得分:1)

除非你在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])