[英]Fabric is asking for password at the prompt even though password is specified in code
[英]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.