簡體   English   中英

結構代碼要求主機

[英]Fabric code asking for hosts

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

該代碼不起作用,它說:

找不到主機。 請指定連接字符串(單個):

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM