1

我在织物脚本中有一些任务。我试图弄清楚如何允许将 env.hosts 或 @hosts 装饰器的设置隔离到给定任务。我想在我的 fab 文件中有一些任务来预设主机,同时我可以将一个可以被解析为主机元组的文件提供给其他人。我还想在运行时确定该文件。

我有这个:

def host_list():
    host_file = raw_input("enter the file containing the list of hosts: ")
    host_list = open(host_file, 'r')
    host_list = host_list.read().strip('\n')
    host_list = host_list.split(',')

    return host_list

我有一个任务:

@task
def hostname():
    run('hostname')

当我将 host_list 函数分成命令时,我可以正确设置 env.hosts,但是我还有其他任务我不想让结构提示来设置 env.hosts。我尝试在任务函数中添加步骤,但每次迭代都会提示我。我试图用 host_list 函数来提供 #hosts 装饰器,但它给了我一个关于函数对象不可迭代的错误。有没有办法将 host_list 函数隔离到某些任务?

4

1 回答 1

0

这个答案有很多堆栈溢出问题。但是为了给你一个想法,你可以将文件作为参数发送给 host_list(),然后读取它,并将它的结果传递给execute()

于 2014-01-14T04:07:29.223 回答