如何使用' skip:true'与' with_first_found'?

时间:2016-09-17 01:37:42

标签: ansible ansible-playbook

我想在剧本中使用以下任务:

- include: "{{ prerequisites_file }}"
  with_first_found:
    - "prerequisites-{{ ansible_distribution }}.yml"
    - "prerequisites-{{ ansible_os_family }}.yml"
  loop_control:
    loop_var: prerequisites_file

如果找不到与该架构匹配的文件,我希望它能够通过。

按原样运行时,在这种情况下会产生错误:

  

任务[ansible-playbook:include] ***************************************
  致命:[ansible-playbook]:失败! => {"失败":true," msg":"使用with_first_found时未找到任何文件。使用' skip:true'如果没有找到任何文件,则允许跳过此任务的选项"}

我知道我最后可以添加一个虚拟文件,但如果我按照建议操作,我该如何在这里添加skip: true选项?

它绝对不是include模块的参数,它应该以某种方式绑定到with_first_found子句......

1 个答案:

答案 0 :(得分:10)

with_first_found有很多参数变化 看一下first_found.py - 文件开头有一些例子。

回答你的问题:

- include: "{{ prerequisites_file }}"
  with_first_found:
    - files:
        - "prerequisites-{{ ansible_distribution }}.yml"
        - "prerequisites-{{ ansible_os_family }}.yml"
      skip: true
  loop_control:
    loop_var: prerequisites_file