Ansible Tower / AWX错误?作业任务串行而不是并行运行

问题描述

我有一本非常普通的剧本,没有任何硬编码的信息。剧本中的所有内容都是变量,并通过提供额外的变量(包括连接的主机名)进行填充。没有清单文件正在使用,因为运行该清单的主机通常是随机的。

在Linux的命令行上,我可以通过传递不同的变量来多次运行ansible剧本,它们都将同时运行。

ansible-playbook cluster_check_build.yml -e {"host": "host1"...}

ansible-playbook cluster_check_build.yml -e {"host": "host2"...}

但是,在塔楼中,如果我创建作业模板并使用相同的剧本,那么事情将依次运行。我使用API​​多次调用该作业模板,并将数据作为JSON传递。每次我调用API启动作业任务时,我都会提供新的extra_vars,因此作业任务针对不同的主机运行。我看到作业是串行运行的,而不是像从命令行并行运行的。

我有 400 + 个主机,这些主机需要随机运行相同的剧本。这本剧本可能需要一个小时左右才能完成。有时,剧本需要针对20或30个随机主机运行。时间很关键,而串行作业的处理是没有开始的。

是否可以针对不同的主机并行运行相同的作业模板?如果答案是否定的,那么我有什么选择?希望不要创建 400 + 个工作模板。看来这违背了非常通用的剧本的目的。

解决方法

是的,您可以在Tower / AWX中针对多个主机并行运行模板/剧本。

在以下情况下,模板将顺序运行:

  • “叉子”在模板中设置为1
  • 您的剧本中的
  • SERIAL = 1
  • 您的Tower / AWX实例仅用1个分叉进行设置
  • 您的实例设置有> 1个分叉,但其他作业正在同时运行。
,

我真是个傻瓜。我的工作模板的右下角有一个很小的复选框,上面写着“启用并发作业”