Ansible 循环项目列表并将项目作为变量传递给具有“何时”条件的“包含”任务

问题描述

我尝试了以下各种形式的任务:

- include: patch.yml application="{{ item }}"
  loop: "{{ all_web_apps }}"
  when: >
    (ansible_hostname in groups['internal'] and 
     item in web_apps)

没有 loop 语句的任务工作正常;手动定义应用程序时。 使用 loop 语句运行任务时,每次迭代都会返回以下输出,但不会运行任何内容

included: /tmp/awx_1675_1sa7cu1q/project/roles/webapps/tasks/patch.yml for <some-host>

即使将输出设置为 verbose,也会显示相同的输出

在没有 when 条件的情况下运行相同的任务时(见下面的代码),我得到完全相同的结果。

- include: patch-copy.yml 
  vars:
    application: "{{ item }}"
  loop: "{{ all_web_apps }}"

所以它似乎包含了剧本,但没有运行它。

值得一提的是,这是在 AWX 中运行的,而不是直接通过命令行运行。

任何帮助将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)