【发布时间】:2018-12-19 09:45:16
【问题描述】:
需要在多台服务器上运行任务:这将是相同的管道,但在eatch服务器上的数据不同。
所以,我有文件列表。它必须被分割成服务器编号部分,每个子列表传递给任务的单个服务器副本,而不是独立运行。
我不知道该怎么做:
- 将输入列表分开
- 在服务器实例任务中传递切片
- 组织任务 - 它包括几个步骤(复制到服务器 /tmp 文件夹,从服务器复制到本地,删除 /tmp 以释放磁盘空间)。它必须是另一个剧本,包含在我的剧本中?不知道如何在一个循环中设置几个子任务。
所有的例子和问题都在谈论并行运行不同的任务。但我有同样的任务,但参数化。 如果没有文件列表作为参数,它会简单地运行:只需设置主机,然后设置任务。
【问题讨论】:
-
欢迎来到 SO。 Stack Overflow 是一个面向专业和狂热程序员的问答网站。目标是您将一些自己的代码添加到您的问题中,以至少显示您为解决这个问题所做的研究工作。
-
真的吗?什么代码?我不知道任何算法来分离列表和运行任务。如果我有它 - 没有问题要问。
-
如果您想使用不同的输入为每个服务器运行任务,请使用主机变量指定每个主机的输入。如果每台服务器的任务数量是动态的并且涉及一些工作管理,那么这不是 ansible 的工作。编写您自己的脚本来处理它。 Ansible 用于服务器 管理,而不是用于工作负载管理 - 为此使用类似 docker 的东西,kubernetes 或 docker 等等。
-
为每个服务器创建一个文件,并在每个服务器上读取具有适当名称的文件。文件名成为参数,或者由远程服务器动态选择。尝试一下,我们将能够扩展您选择的任何一个。
标签: bash parameters ansible