【问题标题】:Ansible: run task with individual parameters for each serverAnsible:使用每个服务器的单独参数运行任务
【发布时间】:2018-12-19 09:45:16
【问题描述】:

需要在多台服务器上运行任务:这将是相同的管道,但在eatch服务器上的数据不同。

所以,我有文件列表。它必须被分割成服务器编号部分,每个子列表传递给任务的单个服务器副本,而不是独立运行。

我不知道该怎么做:

  1. 将输入列表分开
  2. 在服务器实例任务中传递切片
  3. 组织任务 - 它包括几个步骤(复制到服务器 /tmp 文件夹,从服务器复制到本地,删除 /tmp 以释放磁盘空间)。它必须是另一个剧本,包含在我的剧本中?不知道如何在一个循环中设置几个子任务。

所有的例子和问题都在谈论并行运行不同的任务。但我有同样的任务,但参数化。 如果没有文件列表作为参数,它会简单地运行:只需设置主机,然后设置任务。

【问题讨论】:

  • 欢迎来到 SO。 Stack Overflow 是一个面向专业和狂热程序员的问答网站。目标是您将一些自己的代码添加到您的问题中,以至少显示您为解决这个问题所做的研究工作。
  • 真的吗?什么代码?我不知道任何算法来分离列表和运行任务。如果我有它 - 没有问题要问。
  • 如果您想使用不同的输入为每个服务器运行任务,请使用主机变量指定每个主机的输入。如果每台服务器的任务数量是动态的并且涉及一些工作管理,那么这不是 ansible 的工作。编写您自己的脚本来处理它。 Ansible 用于服务器 管理,而不是用于工作负载管理 - 为此使用类似 docker 的东西,kubernetes 或 docker 等等。
  • 为每个服务器创建一个文件,并在每个服务器上读取具有适当名称的文件。文件名成为参数,或者由远程服务器动态选择。尝试一下,我们将能够扩展您选择的任何一个。

标签: bash parameters ansible


【解决方案1】:

一个选项

“在多台服务器上运行任务...,但每台服务器上的数据不同”

将是 include 每个服务器具有不同数据的文件。

- include_vars: "{{ ansible_hostname }}.yaml"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2011-06-08
    相关资源
    最近更新 更多