我已经很努力地找到了这个但没有运气 - 我确信我可能无法找到并为自己找到示例或弄清楚语法
所以我认为我需要:
from fabric.api import execute, run, env
NODES = ['192.168.56.141','192.168.56.152']
env.roledefs = {'head':['localhost'], 'nodes':NODES}
env.user('r4space')
def testfunc ():
run('touch ./fred.txt')
execute(testfunc(),<somehow specific 'head' or 'nodes' as my hosts list and user >)
我尝试了一系列语法// hosts = NODES,-H NODES,user ='r4space'....更多但我得到语法错误或“host_string = raw_input(”找不到主机请注明(单)“”
如果它有所不同,最终我的函数defs将在一个单独的文件中导入到main中,其中定义了hosts等,并调用execute。
感谢您的帮助!
答案 0 :(得分:1)
您的代码中存在一些错误。
env.user('r4space')
错了。应该是env.user = 'r4space'
execute
时,第一个参数应该是可调用的。您已使用函数testfunc
的返回值。我认为如果您修复最后一行,它将起作用:
execute(testfunc, hosts = NODES)