Fabric 并行任务未绑定到特定集合
我正在寻找一种使用多运行定义任务的方法,该任务将在命令行中定义的一组服务器上运行(通过角色或主机)。
到目前为止我见过的所有示例都尝试执行以下操作:
env('app-nodes').multirun('some command')
但我不想对角色进行硬编码。我想用 fab -R ... 来定义它。我在这里有什么选择?
我希望这能起作用:
@task
def some_task():
env().multirun('some command')
但这会抛出 TypeError: '_AttributeDict' object is not callable
I'm looking for a way to define a task with multirun, which will run on a set of servers defined in the commandline (via roles or hosts).
All examples I've seen so far, try to do something like:
env('app-nodes').multirun('some command')
But I don't want to hardcode the role. I'd like to define it with fab -R ...
instead. What are my options here?
I'd expect this to work:
@task
def some_task():
env().multirun('some command')
but that throws TypeError: '_AttributeDict' object is not callable
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可能会想要使用任务参数并将其输入到 tav 的 env() 中:
http://docs.fabfile.org/en /1.1.1/usage/fab.html#per-task-arguments
另外,为什么您会期望主机有一个空集来工作?
You'll prolly want to use task args and feed it into tav's env() that way:
http://docs.fabfile.org/en/1.1.1/usage/fab.html#per-task-arguments
Also why would you expect an empty set for hosts to work?