避免在 Ansible Tower 或 AWX 中为工作流程制作大量模板

Avoid making a lot of templates for a workflow in Ansible Tower or AWX

我正在使用 AWX 更新我的 Windows 服务器。我有一个包含组和主机的清单文件。例如:

[WWW]
foo.example.com
bar.example.com
foo1.example.com
bar1.example.com

[SQL]
one.example.com
two.example.com
three.example.com

在我的工作流程中,我希望服务器一次启动一个。现在我有两个模板。每组一个。是否可以在我的工作流程中使用一个模板并将主机变量替换为组名?

Screenshot Current Workflow

我使用相同的剧本进行更新,但variable_host。

variable_host: SQL
variable_serial: 1

在我的剧本中,我位于顶部:

hosts: "{{ variable_host | default('WWW') }}"
serial: "{{ variable_serial | default(1) | int }}"

我正在寻找一种解决方案,我不必为我拥有的每个组制作新模板。谢谢!

您可以通过在主修补模板上设置限制和额外变量的提示,然后在将模板添加到工作流程时使用提示选项来实现这一点,这样您就可以设置每个限制和序列值模板实例已添加到工作流中。

  • 创建用于修补的主模板。

  • 确保将主机过滤器设置为“全部”(或匹配剧本中所有组的限制),并为串行设置变量。

      host: all
      serial: "{{ variable_serial }}"
    
  • 现在为主模板设置额外变量和限制的“PROMPT ON LAUNCH”选项并保存。

  • 将模板添加到工作流程时,单击“提示”选项并将每个 limit/template 设置为一个 group/serial 设置。

  • 然后继续使用不同的设置向工作流中添加模板。